From 679dbdae2e7bf948de10031619ba65f573ba0267 Mon Sep 17 00:00:00 2001 From: Hao Kuang Date: Mon, 25 Sep 2017 22:19:44 +0000 Subject: Add junits for dg-util to increase test coverage Issue-Id: APPC-228 Change-Id: I805127d7b57bc88e97151e9a4e217fe384a33ffb Signed-off-by: Hao Kuang --- appc-dg-util/appc-dg-util-bundle/pom.xml | 425 +++++++++++---------- .../appc/dg/util/AppcDgUtilActivatorTest.java | 59 +++ .../dg/util/impl/ExecuteNodeActionImplTest.java | 236 ++++++++++++ .../impl/InputParameterValidationImplTest.java | 165 ++++++++ .../appc/dg/util/impl/UpgradeStubNodeImplTest.java | 63 +++ 5 files changed, 743 insertions(+), 205 deletions(-) create mode 100644 appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/AppcDgUtilActivatorTest.java create mode 100644 appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/ExecuteNodeActionImplTest.java create mode 100644 appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/InputParameterValidationImplTest.java create mode 100644 appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/UpgradeStubNodeImplTest.java diff --git a/appc-dg-util/appc-dg-util-bundle/pom.xml b/appc-dg-util/appc-dg-util-bundle/pom.xml index 17e0b5dab..547f84088 100644 --- a/appc-dg-util/appc-dg-util-bundle/pom.xml +++ b/appc-dg-util/appc-dg-util-bundle/pom.xml @@ -1,208 +1,223 @@ - - 4.0.0 - - org.openecomp.appc - appc-dg-util - 1.1.0-SNAPSHOT - - - appc-dg-util-bundle - bundle - appc-dg-util - bundle - - 4.9.1 - 1.6.0 - 1.3.1-Beryllium-SR1 - - - - - org.openecomp.appc - appc-common - ${project.version} - - - javax - javaee-api - 7.0 - - - - org.onap.ccsdk.sli.adaptors - aai-service-provider - - - - javax.ws.rs - javax.ws.rs-api - - - - - com.sun.jersey - jersey-client - - - - com.sun.jersey - jersey-json - - - - javax.xml.bind - jaxb-api - 2.1 - - - - javax.xml - jaxp-api - 1.4.2 - - - - - org.glassfish.jersey.core - jersey-common - 2.9.1 - - - - org.codehaus.jackson - jackson-jaxrs - 1.9.12 - - - - commons-codec - commons-codec - - - - org.apache.httpcomponents - httpclient - 4.5.1 - - - - 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 - - - - com.vmware - vijava - 5.1 - compile - - - - xerces - xerces - 2.4.0 - provided - - - - org.apache.httpcomponents - httpcore - ${apache.httpcomponents.version} - - - - commons-logging - commons-logging - 1.2 - - - - org.json - json - - - - org.openecomp.appc - appc-dmaap-adapter-bundle - ${project.version} - - - org.openecomp.appc - appc-netconf-adapter-bundle - 1.1.0-SNAPSHOT - - - - - - - - org.apache.felix - maven-bundle-plugin - true - - - appc-dg-util - org.openecomp.appc.dg.util.AppcDgUtilActivator - org.openecomp.appc.dg.util.* - - org.openecomp.appc.adapter.netconf,org.openecomp.appc.adapter.netconf.dao,org.openecomp.appc.adapter.netconf.util,com.att.eelf.*, - org.openecomp.appc.adapter.netconf.exception, org.openecomp.appc.adapter.messaging.*,org.onap.ccsdk.sli.core.sli.*, - org.openecomp.appc.exceptions, org.openecomp.appc.i18n, - org.osgi.framework.*,org.slf4j.*,com.vmware.*,org.apache.xerces.*,javax.net.*, - javax.net.ssl.*,org.xml.sax.*,javax.xml.bind.*, - javax.naming.*,com.fasterxml.*,javax.xml.parsers, *;resolution:=optional - - - - - - + + 4.0.0 + + org.openecomp.appc + appc-dg-util + 1.1.0-SNAPSHOT + + + appc-dg-util-bundle + bundle + appc-dg-util - bundle + + 4.9.1 + 1.6.0 + 1.3.1-Beryllium-SR1 + + + + + org.openecomp.appc + appc-common + ${project.version} + + + javax + javaee-api + 7.0 + + + org.onap.ccsdk.sli.adaptors + aai-service-provider + + + javax.ws.rs + javax.ws.rs-api + + + + com.sun.jersey + jersey-client + + + com.sun.jersey + jersey-json + + + javax.xml.bind + jaxb-api + 2.1 + + + javax.xml + jaxp-api + 1.4.2 + + + + org.glassfish.jersey.core + jersey-common + 2.9.1 + + + org.codehaus.jackson + jackson-jaxrs + 1.9.12 + + + commons-codec + commons-codec + + + org.apache.httpcomponents + httpclient + 4.5.1 + + + 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 + + + com.vmware + vijava + 5.1 + compile + + + xerces + xerces + 2.4.0 + provided + + + + org.apache.httpcomponents + httpcore + ${apache.httpcomponents.version} + + + + commons-logging + commons-logging + 1.2 + + + org.json + json + + + org.openecomp.appc + appc-dmaap-adapter-bundle + ${project.version} + + + org.openecomp.appc + appc-netconf-adapter-bundle + 1.1.0-SNAPSHOT + + + junit + junit + test + + + org.mockito + mockito-core + test + + + org.powermock + powermock-api-mockito + test + + + org.powermock + powermock-module-junit4 + test + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + appc-dg-util + org.openecomp.appc.dg.util.AppcDgUtilActivator + org.openecomp.appc.dg.util.* + + org.openecomp.appc.adapter.netconf, + org.openecomp.appc.adapter.netconf.dao, + org.openecomp.appc.adapter.netconf.util,com.att.eelf.*, + org.openecomp.appc.adapter.netconf.exception, + org.openecomp.appc.adapter.messaging.*, + org.onap.ccsdk.sli.core.sli.*, + org.openecomp.appc.exceptions, + org.openecomp.appc.i18n, + org.osgi.framework.*, + org.slf4j.*, + com.vmware.*, + org.apache.xerces.*, + javax.net.*, + javax.net.ssl.*, + org.xml.sax.*, + javax.xml.bind.*, + javax.naming.*, + com.fasterxml.*, + javax.xml.parsers, + *;resolution:=optional + + + + + + diff --git a/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/AppcDgUtilActivatorTest.java b/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/AppcDgUtilActivatorTest.java new file mode 100644 index 000000000..4aec25004 --- /dev/null +++ b/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/AppcDgUtilActivatorTest.java @@ -0,0 +1,59 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * 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.openecomp.appc.dg.util; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.osgi.framework.BundleContext; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.modules.junit4.PowerMockRunner; + +@RunWith(PowerMockRunner.class) +public class AppcDgUtilActivatorTest { + + @Mock + private BundleContext bundleContext; + + private AppcDgUtilActivator appcDgUtilActivator; + + @Before + public void setUp() throws Exception { + appcDgUtilActivator = new AppcDgUtilActivator(); + } + + @Test + public void start() { + appcDgUtilActivator.start(bundleContext); + PowerMockito.verifyStatic(); + } + + @Test + public void stop() { + appcDgUtilActivator.stop(bundleContext); + PowerMockito.verifyStatic(); + } +} \ No newline at end of file diff --git a/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/ExecuteNodeActionImplTest.java b/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/ExecuteNodeActionImplTest.java new file mode 100644 index 000000000..3bf369e85 --- /dev/null +++ b/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/ExecuteNodeActionImplTest.java @@ -0,0 +1,236 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * 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.openecomp.appc.dg.util.impl; + +import com.att.eelf.configuration.EELFLogger; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Spy; +import org.onap.ccsdk.sli.adaptors.aai.AAIService; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; +import org.openecomp.appc.exceptions.APPCException; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.FrameworkUtil; +import org.osgi.framework.ServiceReference; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyMap; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.powermock.api.mockito.PowerMockito.mockStatic; +import static org.powermock.api.mockito.PowerMockito.verifyPrivate; +import static org.powermock.api.mockito.PowerMockito.verifyStatic; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({ExecuteNodeActionImpl.class, FrameworkUtil.class, Thread.class}) +public class ExecuteNodeActionImplTest { + @Spy + private ExecuteNodeActionImpl mockedExecuteNodeActionImpl = new ExecuteNodeActionImpl(); + @Mock + private EELFLogger eelfLogger; + @Mock + private AAIService aaiService; + + private final String resourceType = "resourceType"; + private final String prefix = "prefix"; + private final String resourceKey = "resourceKey"; + private final String attributeName = "attributeName"; + private final String attributeValue = "attributeValue"; + + private Map params = new HashMap<>(); + private SvcLogicContext svcLogicContext = new SvcLogicContext(); + private SvcLogicResource.QueryStatus queryStatus = SvcLogicResource.QueryStatus.SUCCESS; + + + @Before + public void setUp() throws Exception { + Whitebox.setInternalState(mockedExecuteNodeActionImpl, "logger", eelfLogger); + Whitebox.setInternalState(mockedExecuteNodeActionImpl, "aaiService", aaiService); + + params.put("resourceType", resourceType); + params.put("prefix", prefix); + params.put("resourceKey", resourceKey); + params.put("attributeName", attributeName); + params.put("attributeValue", attributeValue); + } + + @Test + public void testInitialize() throws Exception { + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "getAAIservice"); + Whitebox.invokeMethod(mockedExecuteNodeActionImpl, "initialize"); + verifyPrivate(mockedExecuteNodeActionImpl, times(1)).invoke("getAAIservice"); + } + + @Test + public void testGetAAIservice() throws Exception { + // sref is not null + mockStatic(FrameworkUtil.class); + Bundle mockedBundle = mock(Bundle.class); + BundleContext mockedBundleContext = mock(BundleContext.class); + ServiceReference mockedServiceReference = mock(ServiceReference.class); + PowerMockito.when(FrameworkUtil.getBundle(AAIService.class)).thenReturn(mockedBundle); + PowerMockito.doReturn(mockedBundleContext).when(mockedBundle).getBundleContext(); + PowerMockito.doReturn(mockedServiceReference).when(mockedBundleContext) + .getServiceReference(AAIService.class.getName()); + + Whitebox.invokeMethod(mockedExecuteNodeActionImpl, "getAAIservice"); + verify(mockedBundleContext, times(1)).getService(mockedServiceReference); + + // sref is null + PowerMockito.doReturn(null).when(mockedBundleContext) + .getServiceReference(AAIService.class.getName()); + Whitebox.invokeMethod(mockedExecuteNodeActionImpl, "getAAIservice"); + verify(mockedBundleContext, times(1)).getService(mockedServiceReference); + } + + @Test + public void testWaitMethod() throws Exception { + mockStatic(Thread.class); + params.put("waitTime", "1"); + mockedExecuteNodeActionImpl.waitMethod(params, svcLogicContext); + verifyStatic(times(1)); + } + + @Test + public void testGetResource() throws Exception { + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "initialize"); + PowerMockito.doReturn(queryStatus).when(aaiService).query(resourceType, false, null, + resourceKey, prefix, null, svcLogicContext); + + mockedExecuteNodeActionImpl.getResource(params, svcLogicContext); + + verifyPrivate(mockedExecuteNodeActionImpl, times(1)).invoke("initialize"); + verify(aaiService, times(1)).query(resourceType, false, null, + resourceKey, prefix, null, svcLogicContext); + assertEquals(queryStatus.toString(), svcLogicContext.getAttribute("getResource_result")); + } + + @Test + public void testPostResource() throws Exception { + + + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "initialize"); + PowerMockito.doReturn(queryStatus).when(aaiService).update(eq(resourceType), eq(resourceKey), anyMap(), + eq(prefix), eq(svcLogicContext)); + + mockedExecuteNodeActionImpl.postResource(params, svcLogicContext); + + verifyPrivate(mockedExecuteNodeActionImpl, times(1)).invoke("initialize"); + verify(aaiService, times(1)).update(eq(resourceType), eq(resourceKey), anyMap(), + eq(prefix), eq(svcLogicContext)); + assertEquals(svcLogicContext.getAttribute("postResource_result"), queryStatus.toString()); + } + + @Test + public void testDeleteResource() throws Exception { + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "initialize"); + + PowerMockito.doReturn(queryStatus).when(aaiService).delete(eq(resourceType), eq(resourceKey), + eq(svcLogicContext)); + + mockedExecuteNodeActionImpl.deleteResource(params, svcLogicContext); + + verifyPrivate(mockedExecuteNodeActionImpl, times(1)).invoke("initialize"); + verify(aaiService, times(1)).delete(eq(resourceType), eq(resourceKey), + eq(svcLogicContext)); + assertEquals(svcLogicContext.getAttribute("deleteResource_result"), queryStatus.toString()); + } + + @Test + public void testGetVnfHierarchySuccess() throws Exception { + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "initialize"); + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "populateVnfcsDetailsinContext", anyMap(), eq + (svcLogicContext)); + PowerMockito.when(aaiService.query(any(), eq(false), anyString(), any(), any(), anyString(), + any(SvcLogicContext.class))).thenReturn(queryStatus); + + mockedExecuteNodeActionImpl.getVnfHierarchy(params, svcLogicContext); + + verifyPrivate(mockedExecuteNodeActionImpl, times(1)).invoke("initialize"); + assertEquals("0", svcLogicContext.getAttribute("VNF.VNFCCount")); + assertEquals("SUCCESS", svcLogicContext.getAttribute("getVnfHierarchy_result")); + } + + @Test(expected = APPCException.class) + public void testGetVnfHierarchyFailure() throws Exception { + queryStatus = SvcLogicResource.QueryStatus.FAILURE; + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "initialize"); + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "populateVnfcsDetailsinContext", anyMap(), + eq(svcLogicContext)); + PowerMockito.when(aaiService.query(any(), eq(false), anyString(), any(), any(), anyString(), + any(SvcLogicContext.class))).thenReturn(queryStatus); + + mockedExecuteNodeActionImpl.getVnfHierarchy(params, svcLogicContext); + + verifyPrivate(mockedExecuteNodeActionImpl, times(1)).invoke("initialize"); + assertEquals("0", svcLogicContext.getAttribute("VNF.VNFCCount")); + assertEquals("FAILURE", svcLogicContext.getAttribute("getVnfHierarchy_result")); + assertTrue(svcLogicContext.getAttribute("output.status.message") != null); + } + + @Test + public void testPopulateVnfcsDetailsinContext() throws Exception { + Map> vnfcHierarchyMap = new HashMap<>(); + Set vServersList = new HashSet<>(); + vnfcHierarchyMap.put("SMP", vServersList); + vServersList.add("smp-0-url"); + vServersList.add("smp-1-url"); + + PowerMockito.doNothing().when(mockedExecuteNodeActionImpl, "initialize"); + PowerMockito.when(aaiService.query(eq("vnfc"), eq(false), anyString(), + eq("vnfc-name = 'SMP'"), eq("vnfcRetrived"), anyString(), any(SvcLogicContext.class))) + .thenReturn(queryStatus); + + Whitebox.invokeMethod(mockedExecuteNodeActionImpl, "populateVnfcsDetailsinContext", + vnfcHierarchyMap, svcLogicContext); + + verify(mockedExecuteNodeActionImpl, times(1)).getResource(anyMap(), + any(SvcLogicContext.class)); + verifyPrivate(mockedExecuteNodeActionImpl, times(1)).invoke("initialize"); + assertEquals(null, svcLogicContext.getAttribute("VNF.VNFC[0].TYPE")); + assertEquals(null, svcLogicContext.getAttribute("VNF.VNFC[0].NAME")); + assertEquals("2", svcLogicContext.getAttribute("VNF.VNFC[0].VM_COUNT")); + assertTrue(vServersList.contains(svcLogicContext.getAttribute("VNF.VNFC[0].VM[0].URL"))); + assertTrue(vServersList.contains(svcLogicContext.getAttribute("VNF.VNFC[0].VM[1].URL"))); + } +} \ No newline at end of file diff --git a/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/InputParameterValidationImplTest.java b/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/InputParameterValidationImplTest.java new file mode 100644 index 000000000..23e1f52c5 --- /dev/null +++ b/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/InputParameterValidationImplTest.java @@ -0,0 +1,165 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * 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.openecomp.appc.dg.util.impl; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; +import org.onap.ccsdk.sli.adaptors.aai.AAIClient; +import org.onap.ccsdk.sli.adaptors.aai.AAIService; +import org.powermock.reflect.Whitebox; + +import java.util.HashMap; +import java.util.Map; + +public class InputParameterValidationImplTest { + private SvcLogicContext svcLogicContext; + + private InputParameterValidationImpl inputParameterValidation; + + @Before + public void setUp() throws Exception { + inputParameterValidation = new InputParameterValidationImpl(); + svcLogicContext = new SvcLogicContext(); + svcLogicContext.setAttribute("a", "b"); + svcLogicContext.setAttribute("b", "c"); + } + + @Test + public void validateAttributeSuccess() throws Exception { + Map params = new HashMap<>(); + params.put("a", "b"); + params.put("b", "c"); + + inputParameterValidation.validateAttribute(params, svcLogicContext); + + Assert.assertEquals("true", svcLogicContext.getAttribute("validateAttribute")); + } + + @Test + public void validateAttributeFailure() throws Exception { + // wrong value + Map params = new HashMap<>(); + params.put("e", "f"); + + inputParameterValidation.validateAttribute(params, svcLogicContext); + + Assert.assertEquals("false", svcLogicContext.getAttribute("validateAttribute")); + + // null value + params = new HashMap<>(); + params.put("e", null); + + inputParameterValidation.validateAttribute(params, svcLogicContext); + + Assert.assertEquals("false", svcLogicContext.getAttribute("validateAttribute")); + } + + @Test + public void validateAttributeNull() throws Exception { + inputParameterValidation.validateAttribute(null, svcLogicContext); + + Assert.assertEquals("false", svcLogicContext.getAttribute("validateAttribute")); + } + + @Test + public void validateAttributeLengthSuccess() throws Exception { + Map params = new HashMap<>(); + params.put("maximum_length_param", "2"); + params.put("a", "1"); + + inputParameterValidation.validateAttributeLength(params, svcLogicContext); + + Assert.assertEquals("true", svcLogicContext.getAttribute("validateAttributeLength")); + } + + @Test + public void validateAttributeLengthFailure() throws Exception { + // wrong key + Map params = new HashMap<>(); + params.put("maximum_length_param", "2"); + params.put("e", "1"); + + inputParameterValidation.validateAttributeLength(params, svcLogicContext); + + Assert.assertEquals("false", svcLogicContext.getAttribute("validateAttributeLength")); + + //over length + params = new HashMap<>(); + params.put("maximum_length_param", "2"); + params.put("c", "3"); + + inputParameterValidation.validateAttributeLength(params, svcLogicContext); + + Assert.assertEquals("false", svcLogicContext.getAttribute("validateAttributeLength")); + } + + @Test + public void validateAttributeLengthNull() throws Exception { + inputParameterValidation.validateAttributeLength(null, svcLogicContext); + + Assert.assertEquals("false", svcLogicContext.getAttribute("validateAttributeLength")); + } + + @Test + public void validateAttributeCharacterSuccess() throws Exception { + Map params = new HashMap<>(); + params.put("special_characters", "z"); + params.put("a", "1"); + + inputParameterValidation.validateAttributeCharacter(params, svcLogicContext); + + Assert.assertEquals("true", svcLogicContext.getAttribute("validateAttributeCharacter")); + } + + @Test + public void validateAttributeCharacterFailure() throws Exception { + Map params = new HashMap<>(); + params.put("special_characters", "z"); + params.put("d", "1"); + + inputParameterValidation.validateAttributeCharacter(params, svcLogicContext); + + Assert.assertEquals("false", svcLogicContext.getAttribute("validateAttributeCharacter")); + } + + @Test + public void validateAttributeCharacterNull() throws Exception { + inputParameterValidation.validateAttributeCharacter(null, svcLogicContext); + + Assert.assertEquals("false", svcLogicContext.getAttribute("validateAttributeCharacter")); + } + + @Test + public void testGetValueFromContext() throws Exception { + Map result = Whitebox.invokeMethod(inputParameterValidation, "getValueFromContext", + svcLogicContext); + Assert.assertEquals("b", result.get("a")); + Assert.assertEquals("c", result.get("b")); + } +} \ No newline at end of file diff --git a/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/UpgradeStubNodeImplTest.java b/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/UpgradeStubNodeImplTest.java new file mode 100644 index 000000000..d652eb906 --- /dev/null +++ b/appc-dg-util/appc-dg-util-bundle/src/test/org/openecomp/appc/dg/util/impl/UpgradeStubNodeImplTest.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * 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.openecomp.appc.dg.util.impl; + +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.openecomp.appc.exceptions.APPCException; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; +import org.onap.ccsdk.sli.adaptors.aai.AAIClient; +import org.onap.ccsdk.sli.adaptors.aai.AAIService; + +import java.util.HashMap; +import java.util.Map; + +public class UpgradeStubNodeImplTest { + @Mock + private SvcLogicContext svcLogicContext; + + private UpgradeStubNodeImpl upgradeStubNode; + + @Before + public void setUp() throws Exception { + upgradeStubNode = new UpgradeStubNodeImpl(); + } + + @Test + public void testHandleUpgradeStubSuccess() throws APPCException { + Map params = new HashMap<>(); + upgradeStubNode.handleUpgradeStub(params, svcLogicContext); + } + + @Test(expected = APPCException.class) + public void testHandleUpgradeStubException() throws APPCException { + Map params = new HashMap<>(); + params.put("failureIndicator", "true"); + upgradeStubNode.handleUpgradeStub(params, svcLogicContext); + } +} \ No newline at end of file -- cgit 1.2.3-korg