Test coverage for CCAActivator 60/79160/3
authorJoss Armstrong <joss.armstrong@ericsson.com>
Tue, 26 Feb 2019 09:05:11 +0000 (09:05 +0000)
committerTakamune Cho <takamune.cho@att.com>
Tue, 26 Feb 2019 15:33:03 +0000 (15:33 +0000)
Increased coverage from 0% to 93%

Issue-ID: APPC-1497
Change-Id: Ie78ac50a08b47cac9bedb9d34b089ac3ad23ab22
Signed-off-by: Joss Armstrong <joss.armstrong@ericsson.com>
appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CCAActivator.java
appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CcAdaptorConstants.java [new file with mode: 0644]
appc-config/appc-config-adaptor/provider/src/test/java/org/onap/appc/ccadaptor/CCAActivatorTest.java [new file with mode: 0644]
appc-config/appc-config-adaptor/provider/src/test/resources/appc-config-adaptor.properties [new file with mode: 0644]

index 6815b4c..6cb72b6 100644 (file)
@@ -5,6 +5,8 @@
  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Copyright (C) 2017 Amdocs
+ * ================================================================================
+ * Modifications Copyright (C) 2019 Ericsson
  * =============================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -37,9 +39,6 @@ import org.osgi.framework.ServiceRegistration;
 public class CCAActivator implements BundleActivator
 {
 
-  private static final String CCA_PROP_FILE_VAR = "SDNC_CCA_PROPERTIES";
-  private static final String APPC_CONFIG_DIR_VAR = "APPC_CONFIG_DIR";
-
   @SuppressWarnings("rawtypes")
   private ServiceRegistration registration = null;
 
@@ -52,16 +51,18 @@ public class CCAActivator implements BundleActivator
     Properties props = new Properties();
 
     // Read properties from appc-config-adaptor.properties
-    String propFileName = System.getenv(CCA_PROP_FILE_VAR);
+    String propFileName = CcAdaptorConstants.getEnvironmentVariable(CcAdaptorConstants.CCA_PROP_FILE_VAR);
     if (propFileName == null)
     {
-      String propDir = System.getenv(APPC_CONFIG_DIR_VAR);
+      String propDir = CcAdaptorConstants.getEnvironmentVariable(CcAdaptorConstants.APPC_CONFIG_DIR_VAR);
       if (propDir == null)
         throw new ConfigurationException(
-          "Cannot find config file - " + CCA_PROP_FILE_VAR + " and " + APPC_CONFIG_DIR_VAR + " unset");
+          "Cannot find config file - " + CcAdaptorConstants.CCA_PROP_FILE_VAR + " and " +
+          CcAdaptorConstants.APPC_CONFIG_DIR_VAR + " unset");
 
       propFileName = propDir + "/appc-config-adaptor.properties";
-      log.warn("Environment variable " + CCA_PROP_FILE_VAR + " unset - defaulting to " + propFileName);
+      log.warn("Environment variable " + CcAdaptorConstants.CCA_PROP_FILE_VAR + " unset - defaulting to "
+              + propFileName);
     }
 
     File propFile = new File(propFileName);
diff --git a/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CcAdaptorConstants.java b/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CcAdaptorConstants.java
new file mode 100644 (file)
index 0000000..af6dede
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2019 Ericsson
+ * ================================================================================
+ * Licensed 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.
+ *
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.appc.ccadaptor;
+
+public class CcAdaptorConstants {
+
+    public static final String CCA_PROP_FILE_VAR = "SDNC_CCA_PROPERTIES";
+    public static final String APPC_CONFIG_DIR_VAR = "APPC_CONFIG_DIR";
+
+    private CcAdaptorConstants() {}
+
+    public static String getEnvironmentVariable(String env) {
+        return System.getenv(env);
+    }
+}
diff --git a/appc-config/appc-config-adaptor/provider/src/test/java/org/onap/appc/ccadaptor/CCAActivatorTest.java b/appc-config/appc-config-adaptor/provider/src/test/java/org/onap/appc/ccadaptor/CCAActivatorTest.java
new file mode 100644 (file)
index 0000000..f383050
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2019 Ericsson
+ * ================================================================================
+ * Licensed 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.
+ *
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.appc.ccadaptor;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.onap.ccsdk.sli.core.sli.ConfigurationException;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.reflect.Whitebox;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({CcAdaptorConstants.class})
+public class CCAActivatorTest {
+
+    @Rule
+    public ExpectedException expectedEx = ExpectedException.none();
+
+    @Test
+    public void testStartNoConfigFile() throws Exception {
+        CCAActivator activator = new CCAActivator();
+        BundleContext context = Mockito.mock(BundleContext.class);
+        expectedEx.expect(ConfigurationException.class);
+        expectedEx.expectMessage( "Cannot find config file - " + CcAdaptorConstants.CCA_PROP_FILE_VAR + " and " +
+                CcAdaptorConstants.APPC_CONFIG_DIR_VAR + " unset");
+        activator.start(context);
+    }
+
+    @Test
+    public void testStart() throws Exception {
+        PowerMockito.mockStatic(CcAdaptorConstants.class);
+        PowerMockito.when(CcAdaptorConstants.getEnvironmentVariable(CcAdaptorConstants.APPC_CONFIG_DIR_VAR))
+            .thenReturn("src/test/resources");
+        CCAActivator activator = new CCAActivator();
+        BundleContext context = Mockito.mock(BundleContext.class);
+        activator.start(context);
+        Mockito.verify(context).registerService(Mockito.anyString(), Mockito.any(), Mockito.any());
+    }
+
+    @Test
+    public void testStartInvalidFile() throws Exception {
+        PowerMockito.mockStatic(CcAdaptorConstants.class);
+        PowerMockito.when(CcAdaptorConstants.getEnvironmentVariable(CcAdaptorConstants.APPC_CONFIG_DIR_VAR))
+            .thenReturn("INVALID_DIRECTORY");
+        CCAActivator activator = new CCAActivator();
+        BundleContext context = Mockito.mock(BundleContext.class);
+        expectedEx.expect(ConfigurationException.class);
+        expectedEx.expectMessage("Missing configuration properties file: ");
+        activator.start(context);
+    }
+
+    @Test
+    public void testStop() throws Exception {
+        CCAActivator activator = new CCAActivator();
+        ServiceRegistration registration = Mockito.mock(ServiceRegistration.class);
+        Whitebox.setInternalState(activator, "registration", registration);
+        activator.stop(Mockito.mock(BundleContext.class));
+        Mockito.verify(registration).unregister();
+    }
+
+}
diff --git a/appc-config/appc-config-adaptor/provider/src/test/resources/appc-config-adaptor.properties b/appc-config/appc-config-adaptor/provider/src/test/resources/appc-config-adaptor.properties
new file mode 100644 (file)
index 0000000..e2212ec
--- /dev/null
@@ -0,0 +1,25 @@
+###
+# ============LICENSE_START=======================================================
+# ONAP : APP-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property.  All rights reserved.
+# ================================================================================
+# Modifications Copyright (C) 2019 Ericsson
+# ================================================================================
+# Licensed 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.
+# ============LICENSE_END=========================================================
+###
+
+configComponent.url=
+configComponent.user=
+configComponent.passwd=