diff options
author | Dan Timoney <dtimoney@att.com> | 2020-02-19 14:21:59 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2020-02-19 14:21:59 +0000 |
commit | d20a9b57c30bb74f1485354bba85740a3ffad702 (patch) | |
tree | 51123b9faf22b52fa43c4ca953ecb5d1a9867326 | |
parent | ce964fd1a1bc139bad6548ba79a0ac84190af598 (diff) | |
parent | 0b526c76d3bcdf793726be9e797151d585fedc2f (diff) |
Merge "JUNIT tests for SDNR OOFPCIPOC"
3 files changed, 232 insertions, 56 deletions
diff --git a/sdnr/northbound/oofpcipoc/provider/pom.xml b/sdnr/northbound/oofpcipoc/provider/pom.xml index c9ad66f63..f3ac13e30 100644 --- a/sdnr/northbound/oofpcipoc/provider/pom.xml +++ b/sdnr/northbound/oofpcipoc/provider/pom.xml @@ -39,18 +39,12 @@ <properties> <ccsdk.sli.core.version>${project.version}</ccsdk.sli.core.version> + <ccsdk.sli.northbound.version>${project.version}</ccsdk.sli.northbound.version> </properties> <dependencyManagement> <dependencies> <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>mdsal-artifacts</artifactId> - <version>1.6.1</version> - <type>pom</type> - <scope>import</scope> - </dependency> - <dependency> <groupId>org.onap.ccsdk.sli.core</groupId> <artifactId>sli-core-artifacts</artifactId> <version>${ccsdk.sli.core.version}</version> @@ -59,33 +53,43 @@ </dependency> </dependencies> </dependencyManagement> + <dependencies> <dependency> <groupId>org.onap.ccsdk.features.sdnr.northbound</groupId> <artifactId>oofpcipoc-model</artifactId> <version>${project.version}</version> </dependency> - <!-- - <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-binding-config</artifactId> - </dependency> - --> + <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>sal-binding-api</artifactId> </dependency> + + <dependency> + <groupId>org.onap.ccsdk.sli.core</groupId> + <artifactId>sli-common</artifactId> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.core</groupId> + <artifactId>sli-provider</artifactId> + </dependency> <dependency> <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-common-util</artifactId> + <artifactId>sal-test-model</artifactId> + <scope>test</scope> </dependency> <dependency> <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-core-api</artifactId> + <artifactId>sal-binding-broker-impl</artifactId> + <scope>test</scope> </dependency> <dependency> - <groupId>org.opendaylight.yangtools</groupId> - <artifactId>yang-data-impl</artifactId> + <groupId>org.opendaylight.controller</groupId> + <artifactId>sal-binding-broker-impl</artifactId> + <type>test-jar</type> + <classifier>tests</classifier> + <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> @@ -97,52 +101,35 @@ <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + <scope>test</scope> + </dependency> <dependency> - <groupId>org.onap.ccsdk.sli.core</groupId> - <artifactId>sli-common</artifactId> - <scope>provided</scope> + <groupId>org.opendaylight.controller</groupId> + <artifactId>sal-common-util</artifactId> </dependency> <dependency> - <groupId>org.onap.ccsdk.sli.core</groupId> - <artifactId>sli-provider</artifactId> - <scope>provided</scope> + <groupId>org.opendaylight.controller</groupId> + <artifactId>sal-core-api</artifactId> </dependency> + <dependency> - <groupId>org.onap.ccsdk.sli.core</groupId> - <artifactId>utils-provider</artifactId> - <!-- <version>${sdnctl.sli.version}</version> --> + <groupId>org.opendaylight.yangtools</groupId> + <artifactId>yang-data-impl</artifactId> </dependency> + + <dependency> + <groupId>org.opendaylight.controller</groupId> + <artifactId>sal-binding-broker-impl</artifactId> + <type>test-jar</type> + <classifier>tests</classifier> + <scope>test</scope> + </dependency> + </dependencies> - <build> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>1.0.0</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId>org.codehaus.mojo</groupId> - <artifactId>properties-maven-plugin</artifactId> - <versionRange>[1.0.0,)</versionRange> - <goals> - <goal>set-system-properties</goal> - </goals> - </pluginExecutionFilter> - <action> - <execute/> - </action> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> - </plugin> - </plugins> - </pluginManagement> - </build> + </project> diff --git a/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocClientTest.java b/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocClientTest.java new file mode 100644 index 000000000..01fa23fbe --- /dev/null +++ b/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocClientTest.java @@ -0,0 +1,85 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +import java.util.Properties; + +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper; +import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService; + +import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocClient; + +import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.GreetingOutputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdOutputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.AddNeighborOutputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.DeleteNeighborOutputBuilder; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class OofpcipocClientTest { + + SvcLogicService mockSvcLogicService; + String module = "test-module"; + String rpc = "test-rpc"; + String version = "test-version"; + String mode = "test-mode"; + Properties localProp = new Properties(); + + @Before + public void setUp() throws Exception { + mockSvcLogicService = mock(SvcLogicService.class); + when(mockSvcLogicService.hasGraph(module, rpc, version, mode)).thenReturn(true); + } + + @Test + public void testOofpcipocClientConstructor() { + OofpcipocClient oofpcipocClient = new OofpcipocClient(mockSvcLogicService); + assertNotNull(oofpcipocClient); + } + + @Test + public void testHasGraph() throws SvcLogicException { + OofpcipocClient oofpcipocClient = new OofpcipocClient(mockSvcLogicService); + boolean result = oofpcipocClient.hasGraph(module, rpc, version, mode); + assertTrue(result); + } + + @Test + public void testExecuteSvcLogicStatusFailure() throws SvcLogicException { + ConfigurationPhyCellIdOutputBuilder serviceData = mock(ConfigurationPhyCellIdOutputBuilder.class); + Properties parms = mock(Properties.class); + SvcLogicService svcLogicService = mock(SvcLogicService.class); + Properties properties = new Properties(); + properties.setProperty("SvcLogic.status", "failure"); + when(svcLogicService.execute(module, rpc, version, mode, properties)).thenReturn(properties); + OofpcipocClient sliClient = new OofpcipocClient(svcLogicService); + Properties prop = sliClient.execute(module, rpc, version, mode, serviceData, properties); + assertTrue(prop != null); + } +} diff --git a/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java b/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java new file mode 100644 index 000000000..daa210e4b --- /dev/null +++ b/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java @@ -0,0 +1,104 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2017 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc; + +import org.junit.Before; +import org.junit.Test; + +import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocClient; +import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider; + +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest; +import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; + +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; + +import java.math.*; + +import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdInput; +import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdInputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdOutput; +import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdOutputBuilder; +import com.google.common.util.concurrent.ListenableFuture; + + + +public class TestOofpcipoc extends AbstractConcurrentDataBrokerTest { + + private OofpcipocProvider oofpcipocProvider; + private static final Logger LOG = LoggerFactory.getLogger(OofpcipocProvider.class); + + @Before + public void setUp() throws Exception { + if (null == oofpcipocProvider) { + DataBroker dataBroker = getDataBroker(); + NotificationPublishService mockNotification = mock(NotificationPublishService.class); + RpcProviderRegistry mockRpcRegistry = mock(RpcProviderRegistry.class); + OofpcipocClient mockSliClient = mock(OofpcipocClient.class); + oofpcipocProvider = new OofpcipocProvider(dataBroker, mockNotification, mockRpcRegistry, mockSliClient); + } + } + + //Testcase should return error 503 when No service logic active for ConfigurationPhyCellId + @Test + public void testConfigurationPhyCellId() { + + ConfigurationPhyCellIdInputBuilder inputBuilder = new ConfigurationPhyCellIdInputBuilder(); + + inputBuilder.setFapServiceNumberOfEntries(new BigInteger("1")); + + // TODO: currently initialize SvcLogicServiceClient is failing, need to fix + ListenableFuture<RpcResult<ConfigurationPhyCellIdOutput>> future = oofpcipocProvider + .configurationPhyCellId(inputBuilder.build()); + RpcResult<ConfigurationPhyCellIdOutput> rpcResult = null; + try { + rpcResult = future.get(); + } catch (Exception e) { + fail("Error : " + e); + } + LOG.info("result: {}", rpcResult); + assertEquals("503", rpcResult.getResult().getResponseCode()); + } + + //Input parameter validation + @Test + public void testConfigurationPhyCellIdValidation() { + + ListenableFuture<RpcResult<ConfigurationPhyCellIdOutput>> future = oofpcipocProvider + .configurationPhyCellId(null); + RpcResult<ConfigurationPhyCellIdOutput> rpcResult = null; + try { + rpcResult = future.get(); + } catch (Exception e) { + fail("Error : " + e); + } + LOG.info("result: {}", rpcResult); + assertEquals("Input is null", rpcResult.getResult().getResponseCode()); + } +} |