diff options
author | Taka <tc012c@att.com> | 2018-02-13 16:02:05 -0500 |
---|---|---|
committer | Patrick Brady <pb071s@att.com> | 2018-02-14 20:21:59 +0000 |
commit | 37cbf4c51a143579ab31a4b5ef2ca1e57b26cb1a (patch) | |
tree | 197ff4606969866ca96b811c1b3b0cebbbec6112 | |
parent | 4f5ffd69ed455076c511497c2d91e496bb1fbe59 (diff) |
UnitTest for Rest Healthcheck activator
Change-Id: I214f14cc0dbc735d87bcbf5b59cf286d41dc826b
Issue-ID: APPC-624
Signed-off-by: Taka <tc012c@att.com>
3 files changed, 318 insertions, 204 deletions
diff --git a/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/pom.xml b/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/pom.xml index c0a7f9f66..3a5f3cd5a 100644 --- a/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/pom.xml +++ b/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/pom.xml @@ -21,208 +21,211 @@ 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> diff --git a/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/main/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivator.java b/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/main/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivator.java index 296ef6019..7d644a0f1 100644 --- a/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/main/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivator.java +++ b/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/main/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivator.java @@ -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 index 000000000..dd5716d9c --- /dev/null +++ b/appc-adapters/appc-rest-healthcheck-adapter/appc-rest-healthcheck-adapter-bundle/src/test/java/org/onap/appc/adapter/restHealthcheck/RestHealthcheckActivatorTest.java @@ -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); + } +} |