JUNIT tests for SDNR OOFPCIPOC 43/101943/1
authorSandeep Shah <sandeeplinux1068@gmail.com>
Wed, 19 Feb 2020 03:38:48 +0000 (21:38 -0600)
committerSandeep Shah <sandeeplinux1068@gmail.com>
Wed, 19 Feb 2020 03:38:48 +0000 (21:38 -0600)
JUNIT test cases for provider classes of OOFPCIPOC
SDNR feature

Issue-ID: CCSDK-2105
Signed-off-by: SandeepLinux <Sandeep.Shah@ibm.com>
Change-Id: I6d1e79d47198bf145b5f880a73ea32a5b8b5b23c

sdnr/northbound/oofpcipoc/provider/pom.xml
sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocClientTest.java [new file with mode: 0644]
sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java [new file with mode: 0644]

index c9ad66f..f3ac13e 100644 (file)
 
     <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>
             </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>
             <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 (file)
index 0000000..01fa23f
--- /dev/null
@@ -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 (file)
index 0000000..daa210e
--- /dev/null
@@ -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());
+    }
+}