UnitTest for Rest Healthcheck activator 39/31639/3
authorTaka <tc012c@att.com>
Tue, 13 Feb 2018 21:02:05 +0000 (16:02 -0500)
committerPatrick Brady <pb071s@att.com>
Wed, 14 Feb 2018 20:21:59 +0000 (20:21 +0000)
Change-Id: I214f14cc0dbc735d87bcbf5b59cf286d41dc826b
Issue-ID: APPC-624
Signed-off-by: Taka <tc012c@att.com>
appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/pom.xml
appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/main/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivator.java
appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/test/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivatorTest.java [new file with mode: 0644]

index c0a7f9f..3a5f3cd 100644 (file)
   ECOMP is a trademark and service mark of AT&T Intellectual Property.
   -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-       <modelVersion>4.0.0</modelVersion>
-       <parent>
-               <groupId>org.onap.appc</groupId>
-               <artifactId>appc-rest-healthcheck-adapter</artifactId>
-               <version>1.3.0-SNAPSHOT</version>
-       </parent>
-
-       <artifactId>appc-rest-healthcheck-adapter-bundle</artifactId>
-       <packaging>bundle</packaging>
-       <name>rest healthcheck Adapter - bundle</name>
-
-       <dependencies>
-               <dependency>
-                       <groupId>commons-codec</groupId>
-                       <artifactId>commons-codec</artifactId>
-               </dependency>
-               <!-- http://mvnrepository.com/artifact/commons-logging/commons-logging -->
-               <dependency>
-                       <groupId>commons-logging</groupId>
-                       <artifactId>commons-logging</artifactId>
-                       <version>1.2</version>
-               </dependency>
-               <!-- http://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
-               <dependency>
-                       <groupId>org.apache.httpcomponents</groupId>
-                       <artifactId>httpcore</artifactId>
-                       <version>4.4.4</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.httpcomponents</groupId>
-                       <artifactId>httpclient</artifactId>
-                       <version>4.5.1</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.bouncycastle</groupId>
-                       <artifactId>bcpkix-jdk15on</artifactId>
-                       <version>1.47</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.bouncycastle</groupId>
-                       <artifactId>bcprov-jdk15on</artifactId>
-                       <version>1.47</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.onap.appc</groupId>
-                       <artifactId>appc-common</artifactId>
-                       <version>${project.version}</version>
-                       <scope>compile</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>javax</groupId>
-                       <artifactId>javaee-api</artifactId>
-                       <version>7.0</version>
-               </dependency>
-
-
-               <dependency>
-                       <groupId>com.att.cdp</groupId>
-                       <artifactId>cdp-pal-common</artifactId>
-                       <scope>compile</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>com.att.cdp</groupId>
-                       <artifactId>cdp-pal-openstack</artifactId>
-                       <scope>compile</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>javax.ws.rs</groupId>
-                       <artifactId>javax.ws.rs-api</artifactId>
-               </dependency>
-
-               <!-- Jersey support needed for OpenStack connector and API version logic -->
-               <dependency>
-                       <groupId>com.sun.jersey</groupId>
-                       <artifactId>jersey-client</artifactId>
-               </dependency>
-
-               <dependency>
-                       <groupId>com.sun.jersey</groupId>
-                       <artifactId>jersey-json</artifactId>
-               </dependency>
-
-               <dependency>
-                       <groupId>javax.xml.bind</groupId>
-                       <artifactId>jaxb-api</artifactId>
-                       <version>2.2.3</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>javax.xml</groupId>
-                       <artifactId>jaxp-api</artifactId>
-                       <version>1.4.2</version>
-               </dependency>
-
-               <!-- Needed to run test cases -->
-               <dependency>
-                       <groupId>org.glassfish.jersey.core</groupId>
-                       <artifactId>jersey-common</artifactId>
-                       <version>2.9.1</version>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.onap.appc</groupId>
+        <artifactId>appc-rest-healthcheck-adapter</artifactId>
+        <version>1.3.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>appc-rest-healthcheck-adapter-bundle</artifactId>
+    <packaging>bundle</packaging>
+    <name>rest healthcheck Adapter - bundle</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+        </dependency>
+        <!-- http://mvnrepository.com/artifact/commons-logging/commons-logging -->
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+            <version>1.2</version>
+        </dependency>
+        <!-- http://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpcore</artifactId>
+            <version>4.4.4</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+            <version>4.5.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcpkix-jdk15on</artifactId>
+            <version>1.47</version>
+        </dependency>
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk15on</artifactId>
+            <version>1.47</version>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.appc</groupId>
+            <artifactId>appc-common</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax</groupId>
+            <artifactId>javaee-api</artifactId>
+            <version>7.0</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.att.cdp</groupId>
+            <artifactId>cdp-pal-common</artifactId>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>com.att.cdp</groupId>
+            <artifactId>cdp-pal-openstack</artifactId>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.ws.rs</groupId>
+            <artifactId>javax.ws.rs-api</artifactId>
+        </dependency>
+
+        <!-- Jersey support needed for OpenStack connector and API version logic -->
+        <dependency>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.sun.jersey</groupId>
+            <artifactId>jersey-json</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.2.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.xml</groupId>
+            <artifactId>jaxp-api</artifactId>
+            <version>1.4.2</version>
+        </dependency>
+
+        <!-- Needed to run test cases -->
+        <dependency>
+            <groupId>org.glassfish.jersey.core</groupId>
+            <artifactId>jersey-common</artifactId>
+            <version>2.9.1</version>
             <scope>test</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.codehaus.jackson</groupId>
-                       <artifactId>jackson-jaxrs</artifactId>
-                       <version>1.9.12</version>
-               </dependency>
-
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-                       <scope>test</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.onap.ccsdk.sli.core</groupId>
-                       <artifactId>sli-common</artifactId>
-                       <scope>provided</scope>
-                       <!-- Added exclusion to prevent missing dependency issue on dblib -->
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>org.onap.ccsdk.sli.core</groupId>
-                                       <artifactId>dblib-provider</artifactId>
-                               </exclusion>
-                       </exclusions>
-               </dependency>
-               
-               <dependency>
-                       <groupId>org.onap.ccsdk.sli.core</groupId>
-                       <artifactId>sli-provider</artifactId>
-                       <scope>provided</scope>
-                       <!-- Added exclusion to prevent missing dependency issue on dblib -->
-                       <exclusions>
-                               <exclusion>
-                                       <groupId>org.onap.ccsdk.sli.core</groupId>
-                                       <artifactId>dblib-provider</artifactId>
-                               </exclusion>
-                       </exclusions>
-               </dependency>
-
-               <dependency>
-                       <groupId>equinoxSDK381</groupId>
-                       <artifactId>org.eclipse.osgi</artifactId>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.slf4j</groupId>
-                       <artifactId>slf4j-api</artifactId>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.slf4j</groupId>
-                       <artifactId>jcl-over-slf4j</artifactId>
-               </dependency>
-
-               <dependency>
+        </dependency>
+
+        <dependency>
+            <groupId>org.codehaus.jackson</groupId>
+            <artifactId>jackson-jaxrs</artifactId>
+            <version>1.9.12</version>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.ccsdk.sli.core</groupId>
+            <artifactId>sli-common</artifactId>
+            <scope>provided</scope>
+            <!-- Added exclusion to prevent missing dependency issue on dblib -->
+            <exclusions>
+                <exclusion>
+                    <groupId>org.onap.ccsdk.sli.core</groupId>
+                    <artifactId>dblib-provider</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.onap.ccsdk.sli.core</groupId>
+            <artifactId>sli-provider</artifactId>
+            <scope>provided</scope>
+            <!-- Added exclusion to prevent missing dependency issue on dblib -->
+            <exclusions>
+                <exclusion>
+                    <groupId>org.onap.ccsdk.sli.core</groupId>
+                    <artifactId>dblib-provider</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>equinoxSDK381</groupId>
+            <artifactId>org.eclipse.osgi</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+        </dependency>
+
+        <dependency>
             <groupId>org.mariadb.jdbc</groupId>
-                       <artifactId>mariadb-java-client</artifactId>
-               </dependency>
-
-               <dependency>
-                       <groupId>com.vmware</groupId>
-                       <artifactId>vijava</artifactId>
-                       <version>5.1</version>
-                       <scope>compile</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>xerces</groupId>
-                       <artifactId>xerces</artifactId>
-                       <version>2.4.0</version>
-                       <scope>provided</scope>
-               </dependency>
-
-       </dependencies>
-
-       <build>
-               <plugins>
-                       <plugin>
-                               <groupId>org.apache.felix</groupId>
-                               <artifactId>maven-bundle-plugin</artifactId>
-                               <extensions>true</extensions>
-                               <configuration>
-                                       <instructions>
-                                               <Bundle-SymbolicName>appc-rest-healthcheck-adapter</Bundle-SymbolicName>
-                                               <Bundle-Activator>org.onap.appc.adapter.restHealthcheck.RestHealthcheckActivator</Bundle-Activator>
-                                               <Export-Package>org.onap.appc.adapter.restHealthcheck</Export-Package>
-                                               <Import-Package>org.onap.ccsdk.sli.core.sli.*,org.osgi.framework.*,org.slf4j.*,com.vmware.*,org.apache.xerces.*,javax.net.*,javax.net.ssl.*,org.xml.sax.*,javax.xml.bind.*,javax.naming.*,javax.security.auth.*
-                                               </Import-Package>
-                                               <Embed-Dependency>
-                                                       *;scope=compile|runtime;artifactId=!sli-common|!appc-common|org.eclipse.osgi|slf4j-api|jcl-over-slf4j|xml-apis
-                                               </Embed-Dependency>
-                                               <Embed-Transitive>true</Embed-Transitive>
-                                       </instructions>
-
-                                       <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
-                               </configuration>
-                       </plugin>
-               </plugins>
-       </build>
+            <artifactId>mariadb-java-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.vmware</groupId>
+            <artifactId>vijava</artifactId>
+            <version>5.1</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>xerces</groupId>
+            <artifactId>xerces</artifactId>
+            <version>2.4.0</version>
+            <scope>provided</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>appc-rest-healthcheck-adapter</Bundle-SymbolicName>
+                        <Bundle-Activator>org.onap.appc.adapter.restHealthcheck.RestHealthcheckActivator</Bundle-Activator>
+                        <Export-Package>org.onap.appc.adapter.restHealthcheck</Export-Package>
+                        <Import-Package>org.onap.ccsdk.sli.core.sli.*,org.osgi.framework.*,org.slf4j.*,com.vmware.*,org.apache.xerces.*,javax.net.*,javax.net.ssl.*,org.xml.sax.*,javax.xml.bind.*,javax.naming.*,javax.security.auth.*
+                        </Import-Package>
+                        <Embed-Dependency>
+                            *;scope=compile|runtime;artifactId=!sli-common|!appc-common|org.eclipse.osgi|slf4j-api|jcl-over-slf4j|xml-apis
+                        </Embed-Dependency>
+                        <Embed-Transitive>true</Embed-Transitive>
+                    </instructions>
+
+                    <manifestLocation>${project.basedir}/src/main/resources/META-INF</manifestLocation>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>
index 296ef60..7d644a0 100644 (file)
@@ -1,4 +1,3 @@
-
 /*-
  * ============LICENSE_START=======================================================
  * ONAP : APPC
@@ -38,6 +37,7 @@ public class RestHealthcheckActivator implements BundleActivator {
      */
     private ServiceRegistration registration = null;
     private static final EELFLogger logger = EELFManager.getInstance().getLogger(RestHealthcheckActivator.class);
+    private static final String APPNAME = "APPC Rest Healthcheck adapter";
 
     /**
      * Called when this bundle is started so the Framework can perform the bundle-specific activities necessary to start
@@ -94,7 +94,7 @@ public class RestHealthcheckActivator implements BundleActivator {
         }
     }
     public String getName() {
-        return "APPC Rest Healthcheck adapter";
+        return APPNAME;
     }
 
 }
diff --git a/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/test/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivatorTest.java b/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/test/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivatorTest.java
new file mode 100644 (file)
index 0000000..dd5716d
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 AT&T All rights reserved.
+ * =============================================================================
+ * 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.adapter.restHealthcheck;
+
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isA;
+import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.only;
+
+import java.util.Dictionary;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.appc.adapter.restHealthcheck.impl.RestHealthcheckAdapterImpl;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+@RunWith(MockitoJUnitRunner.class)
+public class RestHealthcheckActivatorTest {
+
+    @Mock
+    private ServiceRegistration<RestHealthcheckActivator> serviceRegistration;
+    @Mock
+    private BundleContext bundleContext;
+
+    private RestHealthcheckActivator restHealthcheckActivator = new RestHealthcheckActivator();
+
+    @Before
+    public void setUp() {
+        given(bundleContext.registerService(eq(RestHealthcheckAdapter.class), isA(RestHealthcheckAdapterImpl.class), isNull(
+            Dictionary.class))).willReturn(serviceRegistration);
+    }
+
+    @Test
+    public void start_shouldRegisterService_whenRegistrationOccursForTheFirstTime() throws Exception {
+        registerService();
+
+        then(bundleContext).should(only())
+            .registerService(eq(RestHealthcheckAdapter.class), isA(RestHealthcheckAdapterImpl.class), isNull(
+                Dictionary.class));
+    }
+
+    @Test
+    public void start_shouldRegisterServiceOnlyOnce_whenServiceRegistrationIsNotNull() throws Exception {
+        // GIVEN
+        registerService();
+
+        // WHEN
+        registerService();
+
+        // THEN
+        then(bundleContext).should(only()).registerService(eq(RestHealthcheckAdapter.class), isA(RestHealthcheckAdapterImpl.class), isNull(
+            Dictionary.class));
+    }
+
+    @Test
+    public void stop_shouldUnregisterService_whenServiceRegistrationObjectIsNotNull() throws Exception {
+        // GIVEN
+        registerService();
+
+        // WHEN
+        unregisterService();
+
+        // THEN
+        then(serviceRegistration).should().unregister();
+    }
+
+    @Test
+    public void stop_shouldNotAttemptToUnregisterService_whenServiceHasAlreadyBeenUnregistered()
+        throws Exception {
+        // GIVEN
+        registerService();
+        unregisterService();
+
+        // WHEN
+        unregisterService();
+
+        // THEN
+        then(serviceRegistration).should(only()).unregister();
+    }
+
+    private void registerService() throws Exception {
+        restHealthcheckActivator.start(bundleContext);
+    }
+
+    private void unregisterService() throws Exception {
+        restHealthcheckActivator.stop(bundleContext);
+    }
+}