You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2016/12/29 14:01:53 UTC

svn commit: r1776427 - /felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java

Author: cziegeler
Date: Thu Dec 29 14:01:52 2016
New Revision: 1776427

URL: http://svn.apache.org/viewvc?rev=1776427&view=rev
Log:
Add tests for config util

Added:
    felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java   (with props)

Added: felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java?rev=1776427&view=auto
==============================================================================
--- felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java (added)
+++ felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java Thu Dec 29 14:01:52 2016
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.felix.configurator.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import org.junit.Test;
+import org.osgi.framework.Constants;
+import org.osgi.service.cm.Configuration;
+import org.osgi.service.cm.ConfigurationAdmin;
+
+public class ConfigUtilTest {
+
+    private String getFilterString(final String pid) {
+        return "(" + Constants.SERVICE_PID + "=" + pid + ")";
+    }
+
+    @Test public void testGetNoCreate() throws Exception {
+        final String pid = "a.b";
+        final ConfigurationAdmin ca = mock(ConfigurationAdmin.class);
+        when(ca.listConfigurations(getFilterString(pid))).thenReturn(null);
+        assertNull(ConfigUtil.getOrCreateConfiguration(ca, pid, false));
+        verify(ca).listConfigurations(getFilterString(pid));
+        verifyNoMoreInteractions(ca);
+    }
+
+    @Test public void testGetCreate() throws Exception {
+        final String pid = "a.b";
+        final Configuration cfg = mock(Configuration.class);
+        when(cfg.getPid()).thenReturn(pid);
+
+        final ConfigurationAdmin ca = mock(ConfigurationAdmin.class);
+        when(ca.listConfigurations(getFilterString(pid))).thenReturn(null);
+        when(ca.getConfiguration(pid, "?")).thenReturn(cfg);
+        assertEquals(cfg, ConfigUtil.getOrCreateConfiguration(ca, pid, true));
+        verify(ca).listConfigurations(getFilterString(pid));
+        verify(ca).getConfiguration(pid, "?");
+        verifyNoMoreInteractions(ca);
+    }
+
+    @Test public void testGetAvailable() throws Exception {
+        final String pid = "a.b";
+        final Configuration cfg = mock(Configuration.class);
+        when(cfg.getPid()).thenReturn(pid);
+
+        final ConfigurationAdmin ca = mock(ConfigurationAdmin.class);
+        when(ca.listConfigurations(getFilterString(pid))).thenReturn(new Configuration[] {cfg});
+        assertEquals(cfg, ConfigUtil.getOrCreateConfiguration(ca, pid, true));
+        verify(ca).listConfigurations(getFilterString(pid));
+        verifyNoMoreInteractions(ca);
+    }
+
+    @Test public void testGetFactoryNoCreate() throws Exception {
+        final String pid = "a.b#alias";
+        final ConfigurationAdmin ca = mock(ConfigurationAdmin.class);
+        when(ca.listConfigurations(getFilterString(pid))).thenReturn(null);
+        assertNull(ConfigUtil.getOrCreateConfiguration(ca, pid, false));
+        verify(ca).listConfigurations(getFilterString(pid));
+        verifyNoMoreInteractions(ca);
+    }
+
+    @Test public void testGetFactoryCreate() throws Exception {
+        final String pid = "a.b#alias";
+        final Configuration cfg = mock(Configuration.class);
+        when(cfg.getPid()).thenReturn(pid);
+
+        final ConfigurationAdmin ca = mock(ConfigurationAdmin.class);
+        when(ca.listConfigurations(getFilterString(pid))).thenReturn(null);
+        when(ca.getFactoryConfiguration("a.b", "alias", "?")).thenReturn(cfg);
+        assertEquals(cfg, ConfigUtil.getOrCreateConfiguration(ca, pid, true));
+        verify(ca).listConfigurations(getFilterString(pid));
+        verify(ca).getFactoryConfiguration("a.b", "alias", "?");
+        verifyNoMoreInteractions(ca);
+    }
+
+    @Test public void testGetFactoryAvailable() throws Exception {
+        final String pid = "a.b#alias";
+        final Configuration cfg = mock(Configuration.class);
+        when(cfg.getPid()).thenReturn(pid);
+
+        final ConfigurationAdmin ca = mock(ConfigurationAdmin.class);
+        when(ca.listConfigurations(getFilterString(pid))).thenReturn(new Configuration[] {cfg});
+        assertEquals(cfg, ConfigUtil.getOrCreateConfiguration(ca, pid, true));
+        verify(ca).listConfigurations(getFilterString(pid));
+        verifyNoMoreInteractions(ca);
+    }
+}

Propchange: felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision rev url

Propchange: felix/trunk/configurator/src/test/java/org/apache/felix/configurator/impl/ConfigUtilTest.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain