From bbda29c7e9f4960c65b6fe0b8cc2b266ba3d5dd0 Mon Sep 17 00:00:00 2001 From: Taka Date: Sun, 11 Feb 2018 19:29:18 -0500 Subject: [PATCH] Unit Test for ansibleActivator Change-Id: I56279239cdae934116e4d3ac8d257f593e641064 Issue-ID: APPC-600 Signed-off-by: Taka --- .../appc-ansible-adapter-bundle/pom.xml | 348 +++++++++++---------- .../ansible/model/AnsibleMessageParser.java | 15 - .../appc/adapter/ansible/AnsibleActivatorTest.java | 114 +++++++ .../adapter/ansible/model/TestAnsibleAdapter.java | 8 +- 4 files changed, 291 insertions(+), 194 deletions(-) create mode 100644 appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/test/java/org/onap/appc/adapter/ansible/AnsibleActivatorTest.java diff --git a/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/pom.xml b/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/pom.xml index e65afa908..e38a803a0 100644 --- a/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/pom.xml +++ b/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/pom.xml @@ -3,7 +3,7 @@ ============LICENSE_START======================================================= ONAP : APPC ================================================================================ - Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. ================================================================================ Copyright (C) 2017 Amdocs ============================================================================= @@ -23,186 +23,188 @@ ============LICENSE_END========================================================= --> - 4.0.0 - - org.onap.appc - appc-ansible-adapter - 1.3.0-SNAPSHOT - - - appc-ansible-adapter-bundle - bundle - APPC Ansible Service Adapter - bundle - - - - commons-codec - commons-codec - 1.9 - - - commons-logging - commons-logging - 1.2 - - - - org.apache.httpcomponents - httpclient - 4.5.2 - - - - - org.onap.appc - appc-common - ${project.version} - - - - javax - javaee-api - 7.0 - - - + + org.onap.appc + appc-common + ${project.version} + + + + javax + javaee-api + 7.0 + + + - - - - org.glassfish.jersey.core - jersey-common - 2.9.1 - - - - org.codehaus.jackson - jackson-jaxrs - 1.9.12 - - - - junit - junit - test - - - - - org.onap.ccsdk.sli.core - sli-common - compile - - - - org.onap.ccsdk.sli.core - dblib-provider - - - - - - org.onap.ccsdk.sli.core - sli-provider - compile - - - - org.onap.ccsdk.sli.core - dblib-provider - - - - - - equinoxSDK381 - org.eclipse.osgi - - - - org.slf4j - slf4j-api - - - - org.slf4j - jcl-over-slf4j - - - - org.mariadb.jdbc - mariadb-java-client - - - - org.json - json - 20160212 - + jce + jce + 1_2-do + compile + + + + + javax.ws.rs + javax.ws.rs-api + 2.0 + + + javax.xml.bind + jaxb-api + 2.2.3 + + + + javax.xml + jaxp-api + 1.4.2 + + + ######### + --> + + + + org.glassfish.jersey.core + jersey-common + 2.9.1 + + + + org.codehaus.jackson + jackson-jaxrs + 1.9.12 + + + + junit + junit + test + + + org.mockito + mockito-core + + + org.onap.ccsdk.sli.core + sli-common + compile + + + + org.onap.ccsdk.sli.core + dblib-provider + + + + + + org.onap.ccsdk.sli.core + sli-provider + compile + + + + org.onap.ccsdk.sli.core + dblib-provider + + + + + + equinoxSDK381 + org.eclipse.osgi + + + + org.slf4j + slf4j-api + + + + org.slf4j + jcl-over-slf4j + + + + org.mariadb.jdbc + mariadb-java-client + + + + org.json + json + 20160212 + - com.google.guava - guava - 20.0 - + com.google.guava + guava + 20.0 + - - - - - - - org.apache.felix - maven-bundle-plugin - true - - - appc-ansible-adapter - org.onap.appc.adapter.ansible.AnsibleActivator - org.onap.appc.adapter.ansible - org.onap.ccsdk.sli.core.sli.*,org.osgi.framework.*,org.slf4j.*, javax.net.*,javax.net.ssl.*,org.xml.sax.*,javax.xml.bind.*,javax.naming.*, javax.security.* - *;scope=compile|runtime;artifactId=!sli-common|org.eclipse.osgi|slf4j-api|jcl-over-slf4j|mariadb-java-client|xml-apis - true - - - - - + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + appc-ansible-adapter + org.onap.appc.adapter.ansible.AnsibleActivator + org.onap.appc.adapter.ansible + org.onap.ccsdk.sli.core.sli.*,org.osgi.framework.*,org.slf4j.*, javax.net.*,javax.net.ssl.*,org.xml.sax.*,javax.xml.bind.*,javax.naming.*, javax.security.* + *;scope=compile|runtime;artifactId=!sli-common|org.eclipse.osgi|slf4j-api|jcl-over-slf4j|mariadb-java-client|xml-apis + true + + + + + diff --git a/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/main/java/org/onap/appc/adapter/ansible/model/AnsibleMessageParser.java b/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/main/java/org/onap/appc/adapter/ansible/model/AnsibleMessageParser.java index 0e19384e6..5207df2c2 100644 --- a/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/main/java/org/onap/appc/adapter/ansible/model/AnsibleMessageParser.java +++ b/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/main/java/org/onap/appc/adapter/ansible/model/AnsibleMessageParser.java @@ -114,21 +114,6 @@ public class AnsibleMessageParser { return params.get(AGENT_URL_KEY) + "?Id=" + params.get(ID_KEY) + "&Type=GetResult"; } - /** - * Method that validates that the Map has enough information - * to query Ansible server for logs. If so, it populates the - * appropriate returns the appropriate url, else an empty string. - */ - public String reqUriOutput(Map params) throws APPCException { - - final String[] mandatoryTestParams = {AGENT_URL_KEY, ID_KEY, USER_KEY, PASS_KEY}; - - for (String mandatoryParam : mandatoryTestParams) { - throwIfMissingMandatoryParam(params, mandatoryParam); - } - return params.get(AGENT_URL_KEY) + "?Id=" + params.get(ID_KEY) + "&Type=GetOutput"; - } - /** * Method that validates that the Map has enough information * to query Ansible server for logs. If so, it populates the appropriate diff --git a/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/test/java/org/onap/appc/adapter/ansible/AnsibleActivatorTest.java b/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/test/java/org/onap/appc/adapter/ansible/AnsibleActivatorTest.java new file mode 100644 index 000000000..2eb1a781b --- /dev/null +++ b/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/test/java/org/onap/appc/adapter/ansible/AnsibleActivatorTest.java @@ -0,0 +1,114 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2018 AT&T Intellectual Property. 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. + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * ============LICENSE_END========================================================= + */ + +package org.onap.appc.adapter.ansible; + +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.ansible.impl.AnsibleAdapterImpl; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; + +@RunWith(MockitoJUnitRunner.class) + +public class AnsibleActivatorTest { + + @Mock + private ServiceRegistration serviceRegistration; + @Mock + private BundleContext bundleContext; + + private AnsibleActivator ansibleActivator = new AnsibleActivator(); + + @Before + public void setUp() { + given(bundleContext.registerService(eq(AnsibleAdapter.class), isA(AnsibleAdapterImpl.class), isNull( + Dictionary.class))).willReturn(serviceRegistration); + } + + @Test + public void start_shouldRegisterService_whenRegistrationOccursForTheFirstTime() throws Exception { + registerService(); + + then(bundleContext).should(only()) + .registerService(eq(AnsibleAdapter.class), isA(AnsibleAdapterImpl.class), isNull( + Dictionary.class)); + } + + @Test + public void start_shouldRegisterServiceOnlyOnce_whenServiceRegistrationIsNotNull() throws Exception { + // GIVEN + registerService(); + + // WHEN + registerService(); + + // THEN + then(bundleContext).should(only()).registerService(eq(AnsibleAdapter.class), isA(AnsibleAdapterImpl.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 { + ansibleActivator.start(bundleContext); + } + + private void unregisterService() throws Exception { + ansibleActivator.stop(bundleContext); + } +} diff --git a/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/test/java/org/onap/appc/adapter/ansible/model/TestAnsibleAdapter.java b/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/test/java/org/onap/appc/adapter/ansible/model/TestAnsibleAdapter.java index 9641d1986..34953d437 100644 --- a/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/test/java/org/onap/appc/adapter/ansible/model/TestAnsibleAdapter.java +++ b/appc-adapters/appc-ansible-adapter/appc-ansible-adapter-bundle/src/test/java/org/onap/appc/adapter/ansible/model/TestAnsibleAdapter.java @@ -42,13 +42,11 @@ public class TestAnsibleAdapter { @Test public void callPrivateConstructorsMethodsForCodeCoverage() throws SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException { - /* test constructors */ Class[] classesOne = {AnsibleMessageParser.class}; for(Class clazz : classesOne) { Constructor constructor = clazz.getDeclaredConstructor(); name = constructor.getName(); - System.out.println("the constructor name is" + name); constructor.setAccessible(true); assertNotNull(constructor.newInstance()); } @@ -56,7 +54,6 @@ public class TestAnsibleAdapter { for(Class clazz : classesTwo) { Constructor constructor = clazz.getDeclaredConstructor(); name = constructor.getName(); - System.out.println("the constructor name is" + name); constructor.setAccessible(true); assertNotNull(constructor.newInstance()); } @@ -64,17 +61,16 @@ public class TestAnsibleAdapter { for(Class clazz : classesThree) { Constructor constructor = clazz.getDeclaredConstructor(); name = constructor.getName(); - System.out.println("the constructor name is" + name); constructor.setAccessible(true); assertNotNull(constructor.newInstance()); } /* test methods */ - ansibleMessageParser = new AnsibleMessageParser(); + ansibleMessageParser = new AnsibleMessageParser(); parameterTypes = new Class[1]; parameterTypes[0] = java.lang.String.class; + m = ansibleMessageParser.getClass().getDeclaredMethod("getFilePayload", parameterTypes); - System.out.println("method name is getFilePayload"); m.setAccessible(true); assertNotNull(m.invoke(ansibleMessageParser,"{\"test\": test}")); -- 2.16.6