Junit tests for config/flowController 49/56749/8
authorDilip kumar Pampana <dilip.kumar.pampana@ibm.com>
Wed, 18 Jul 2018 15:23:24 +0000 (11:23 -0400)
committerDilip kumar Pampana <dilip.kumar.pampana@ibm.com>
Thu, 19 Jul 2018 14:12:02 +0000 (14:12 +0000)
Junit Tests for code coverage in config/flow-controller, added a
constructor in FlowControlDBService.java file to get the code coverage.

Issue-ID: APPC-1090
Change-Id: If1c33d1bfde58fc5f22ef2faa50380e71f2fdac4
Signed-off-by: Dilip kumar Pampana <dilip.kumar.pampana@ibm.com>
appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/dbervices/FlowControlDBService.java
appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/FlowControlDBServiceTest.java
appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockDBService.java [new file with mode: 0644]
appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockSvcLogicResource.java [new file with mode: 0644]

index 7ef232f..733d03b 100644 (file)
@@ -57,7 +57,11 @@ public class FlowControlDBService {
             serviceLogic = new SqlResource();
         }
     }
-    
+
+    protected FlowControlDBService(SqlResource svcLogic) {
+            serviceLogic = svcLogic;
+    }
+
     public static FlowControlDBService initialise() {
         if (dgGeneralDBService == null) {
             dgGeneralDBService = new FlowControlDBService();
index aee03d8..d1edf54 100644 (file)
 
 package org.onap.appc.flow.executor.node;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Matchers.anyString;
+import static org.junit.Assert.*;
 
 import java.util.Map;
 
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
 import org.onap.appc.flow.controller.data.Transaction;
-import org.onap.appc.flow.controller.dbervices.FlowControlDBService;
 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.core.sli.SvcLogicResource.QueryStatus;
-import org.onap.ccsdk.sli.core.dblib.DbLibService;
-import org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource;
-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 org.powermock.modules.junit4.PowerMockRunner;
-
-@PrepareForTest({ SqlResource.class, SvcLogicResource.class })
-@RunWith(PowerMockRunner.class)
-public class FlowControlDBServiceTest {
 
-@Mock
-     SvcLogicResource serviceLogic;
-@Mock
-SqlResource sqlrs;
-@Mock
-QueryStatus dblibSvc ;
+import org.powermock.reflect.Whitebox;
 
-    private static FlowControlDBService dgGeneralDBService = FlowControlDBService.initialise();
 
-    private Transaction transaction;;
+//@PrepareForTest({ SqlResource.class, SvcLogicResource.class })
+//@RunWith(PowerMockRunner.class)
+public class FlowControlDBServiceTest {
+    
+//     @Mock
+//    SvcLogicResource serviceLogic;
+//@Mock
+//SqlResource sqlrs;
+//@Mock
+//QueryStatus dblibSvc ;
+//
+//   private static FlowControlDBService dgGeneralDBService = FlowControlDBService.initialise();
+//
+//   private Transaction transaction;;
+//
+//   @Before
+//   public void setUp() throws Exception {
+//       serviceLogic = new SqlResource();
+//   }
+//
+//
+//   /*public final void testGetFlowReferenceData() throws Exception {
+//
+//       SvcLogicContext localContext = new SvcLogicContext();
+//       FlowControlDBService dgGeneralDBService = FlowControlDBService.initialise();
+//       PowerMockito.spy(SqlResource.class);
+//
+//       Map<String, String> inParams = null;
+//       //PowerMockito.doReturn(dblibSvc).when(SqlResource.class, "query");
+//       Whitebox.invokeMethod(SqlResource.class, "query",anyString(), anyBoolean(), anyString(), anyString(), anyString(), anyString(), any(SvcLogicContext.class));
+//
+//       dgGeneralDBService.getFlowReferenceData(localContext, inParams, localContext);
+//       //Assert.assertEquals("SUCCESS", status);
+//       //Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
+//
+//   }*/
+//
+//   @Test(expected=Exception.class)
+//   public final void testGetFlowReferenceData() throws Exception {
+//
+//       SvcLogicContext localContext = new SvcLogicContext();
+//       FlowControlDBService dgGeneralDBService = FlowControlDBService.initialise();
+//       PowerMockito.spy(FlowControlDBService.class);
+//
+//
+//       PowerMockito.doReturn(dgGeneralDBService).when(SqlResource.class, "query");
+//       String status = dgGeneralDBService.getDesignTimeFlowModel(localContext);
+//       Assert.assertEquals("SUCCESS", status);
+//       Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
+//
+//   }
+//
+//
+//   @Ignore("Test is taking 60 seconds")
+//   @Test(expected=Exception.class)
+//   public final void testGetDesignTimeFlowModel() throws Exception {
+//       SvcLogicContext localContext = new SvcLogicContext();
+//       String status = dgGeneralDBService.getDesignTimeFlowModel(localContext) ;
+//       Assert.assertEquals("SUCCESS", status);
+//       Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
+//
+//
+//
+//
+//   }
+//
+//   @Ignore("Test is taking 60 seconds")
+//   @Test(expected=Exception.class)
+//   public final void testLoadSequenceIntoDB() throws SvcLogicException {
+//
+//
+//       SvcLogicContext localContext = new SvcLogicContext();
+//       QueryStatus status = dgGeneralDBService.loadSequenceIntoDB(localContext) ;
+//       Assert.assertEquals("SUCCESS", status);
+//       Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
+//       /*SvcLogicContext ctx = new SvcLogicContext();
+//
+//       if (serviceLogic != null && localContext != null) {
+//           String queryString = "INSERT INTO " + FlowControllerConstants.DB_REQUEST_ARTIFACTS
+//                   + " set request_id =  ' kusuma_test' , action = 'Configure', action_level =  'VNF' , vnf_type = 'vComp' , category = 'config_Template'  , artifact_content = '', updated_date = sysdate() ";
+//           Mockito.when(serviceLogic.save("SQL", false, false, queryString, null, null, localContext))
+//                   .thenReturn(status);
+//           Assert.assertEquals("SUCCESS", status);
+//           Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);*/
+//
+//
+//
+//   }
+//
+//   @Ignore
+//   @Test(expected=Exception.class)
+//   public final void testPopulateModuleAndRPC() throws Exception {
+//       SvcLogicContext localContext = new SvcLogicContext();
+//       SvcLogicContext ctx = new SvcLogicContext();
+//       String vnf_type = "test";
+//    dgGeneralDBService.populateModuleAndRPC(transaction, vnf_type);;
+//
+//
+//   }
+//
+//   @Ignore("Test is taking 60 seconds")
+//   @Test(expected=Exception.class)
+//   public final void testGetDependencyInfo() throws SvcLogicException {
+//       SvcLogicContext localContext = new SvcLogicContext();
+//        String status = dgGeneralDBService.getDependencyInfo(localContext);
+//           Assert.assertEquals("SUCCESS", status);
+//           Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
+//
+//   }
+//
+//   @Ignore("Test is taking 60 seconds")
+//   @Test(expected=Exception.class)
+//   public final void testGetCapabilitiesData() throws SvcLogicException {
+//       SvcLogicContext localContext = new SvcLogicContext();
+//       String status = dgGeneralDBService.getCapabilitiesData(localContext);
+//           Assert.assertEquals("SUCCESS", status);
+//           Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
+//
+//   }
+
+     
+    @Test
+    public final void testGetCapabilitiesData1() throws Exception {
+        MockDBService dbService = MockDBService.initialise();
+        SvcLogicContext ctx = new SvcLogicContext();
+        ctx.setAttribute("test", "test");
+        String status = dbService.getCapabilitiesData(ctx);
+        assertEquals("TestArtifactContent", status);
 
-    @Before
-    public void setUp() throws Exception {
-        serviceLogic = new SqlResource();
     }
 
-
-    /*public final void testGetFlowReferenceData() throws Exception {
-
-        SvcLogicContext localContext = new SvcLogicContext();
-        FlowControlDBService dgGeneralDBService = FlowControlDBService.initialise();
-        PowerMockito.spy(SqlResource.class);
-
-        Map<String, String> inParams = null;
-        //PowerMockito.doReturn(dblibSvc).when(SqlResource.class, "query");
-        Whitebox.invokeMethod(SqlResource.class, "query",anyString(), anyBoolean(), anyString(), anyString(), anyString(), anyString(), any(SvcLogicContext.class));
-
-        dgGeneralDBService.getFlowReferenceData(localContext, inParams, localContext);
-        //Assert.assertEquals("SUCCESS", status);
-        //Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
-
-    }*/
-
-    @Test(expected=Exception.class)
-    public final void testGetFlowReferenceData() throws Exception {
-
-        SvcLogicContext localContext = new SvcLogicContext();
-        FlowControlDBService dgGeneralDBService = FlowControlDBService.initialise();
-        PowerMockito.spy(FlowControlDBService.class);
-
-
-        PowerMockito.doReturn(dgGeneralDBService).when(SqlResource.class, "query");
-        String status = dgGeneralDBService.getDesignTimeFlowModel(localContext);
-        Assert.assertEquals("SUCCESS", status);
-        Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
-
+    @Test
+    public final void testGetDependencyInfo() throws Exception {
+        MockDBService dbService = MockDBService.initialise();
+        SvcLogicContext ctx = new SvcLogicContext();
+        String status = dbService.getDependencyInfo(ctx);
+        assertEquals("TestArtifactContent", status);
     }
 
-
-    @Ignore("Test is taking 60 seconds")
-    @Test(expected=Exception.class)
+    @Test
     public final void testGetDesignTimeFlowModel() throws Exception {
-        SvcLogicContext localContext = new SvcLogicContext();
-        String status = dgGeneralDBService.getDesignTimeFlowModel(localContext) ;
-        Assert.assertEquals("SUCCESS", status);
-        Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
-
-
-
-
+        MockDBService dbService = MockDBService.initialise();
+        SvcLogicContext ctx = new SvcLogicContext();
+        String status = dbService.getDesignTimeFlowModel(ctx);
+        assertEquals("TestArtifactContent", status);
     }
 
-    @Ignore("Test is taking 60 seconds")
-    @Test(expected=Exception.class)
-    public final void testLoadSequenceIntoDB() throws SvcLogicException {
-
-
-        SvcLogicContext localContext = new SvcLogicContext();
-        QueryStatus status = dgGeneralDBService.loadSequenceIntoDB(localContext) ;
-        Assert.assertEquals("SUCCESS", status);
-        Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
-        /*SvcLogicContext ctx = new SvcLogicContext();
-
-        if (serviceLogic != null && localContext != null) {
-            String queryString = "INSERT INTO " + FlowControllerConstants.DB_REQUEST_ARTIFACTS
-                    + " set request_id =  ' kusuma_test' , action = 'Configure', action_level =  'VNF' , vnf_type = 'vComp' , category = 'config_Template'  , artifact_content = '', updated_date = sysdate() ";
-            Mockito.when(serviceLogic.save("SQL", false, false, queryString, null, null, localContext))
-                    .thenReturn(status);
-            Assert.assertEquals("SUCCESS", status);
-            Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);*/
-
-
-
+    @Test
+    public final void testGetFlowReferenceData() throws Exception {
+        MockDBService dbService = MockDBService.initialise();
+        SvcLogicContext ctx = new SvcLogicContext();
+        Map<String, String> inParams = null;
+        dbService.getFlowReferenceData(ctx, inParams, ctx);
+        assertEquals("TestSequence", ctx.getAttribute("SEQUENCE_TYPE"));
     }
 
-    @Ignore
-    @Test(expected=Exception.class)
-    public final void testPopulateModuleAndRPC() throws Exception {
-        SvcLogicContext localContext = new SvcLogicContext();
+    @Test
+    public final void testLoadSequenceIntoDB1() throws Exception {
+        MockDBService dbService = MockDBService.initialise();
         SvcLogicContext ctx = new SvcLogicContext();
-        String vnf_type = "test";
-     dgGeneralDBService.populateModuleAndRPC(transaction, vnf_type);;
-
-
+        QueryStatus result = dbService.loadSequenceIntoDB(ctx);
+        assertEquals("SUCCESS", result.toString());
     }
 
-    @Ignore("Test is taking 60 seconds")
-    @Test(expected=Exception.class)
-    public final void testGetDependencyInfo() throws SvcLogicException {
-        SvcLogicContext localContext = new SvcLogicContext();
-         String status = dgGeneralDBService.getDependencyInfo(localContext);
-            Assert.assertEquals("SUCCESS", status);
-            Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
-
+    @Test
+    public final void testPopulateModuleAndRPC() throws Exception {
+        MockDBService dbService = MockDBService.initialise();
+        Transaction transaction = new Transaction();
+        String vnfType = "TestVNF";
+        dbService.populateModuleAndRPC(transaction, vnfType);
+        assertEquals("TestModule", transaction.getExecutionModule());
     }
 
-    @Ignore("Test is taking 60 seconds")
-    @Test(expected=Exception.class)
-    public final void testGetCapabilitiesData() throws SvcLogicException {
-        SvcLogicContext localContext = new SvcLogicContext();
-        String status = dgGeneralDBService.getCapabilitiesData(localContext);
-            Assert.assertEquals("SUCCESS", status);
-            Assert.assertNotEquals("Error - while getting FlowReferenceData", "FAILURE", status);
-
+    @Test
+    public void testHasSingleProtocol() throws Exception {
+        MockDBService dbService = MockDBService.initialise();
+        SvcLogicContext ctx = new SvcLogicContext();
+        String vnfTType = "TestVNF";
+        String fn = "test";
+        Transaction transaction = new Transaction();
+        boolean result = Whitebox.invokeMethod(dbService, "hasSingleProtocol", transaction, vnfTType, fn, ctx);
+        assertEquals(true, result);
     }
-
 }
diff --git a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockDBService.java b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockDBService.java
new file mode 100644 (file)
index 0000000..cd11dbf
--- /dev/null
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 IBM
+ * ================================================================================
+ * 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.flow.executor.node;
+
+
+import org.onap.appc.flow.controller.dbervices.FlowControlDBService;
+
+public class MockDBService extends FlowControlDBService {
+     private static MockDBService mockDgGeneralDBService = null;
+        private static MockSvcLogicResource serviceLogic = new MockSvcLogicResource();
+
+        public MockDBService() {
+            super(serviceLogic);
+            if (mockDgGeneralDBService != null) {
+                mockDgGeneralDBService = new MockDBService(serviceLogic);
+            }
+
+        }
+
+        public MockDBService(MockSvcLogicResource serviceLogic2) {
+            super(serviceLogic);
+        }
+
+        public static MockDBService initialise() {
+            if (mockDgGeneralDBService == null) {
+                mockDgGeneralDBService = new MockDBService(serviceLogic);
+            }
+            return mockDgGeneralDBService;
+        }
+}
diff --git a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockSvcLogicResource.java b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockSvcLogicResource.java
new file mode 100644 (file)
index 0000000..15dcd2b
--- /dev/null
@@ -0,0 +1,53 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 IBM
+ * ================================================================================
+ * 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.flow.executor.node;
+
+import java.util.Map;
+
+import org.onap.appc.flow.controller.utils.FlowControllerConstants;
+import org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus;
+
+public class MockSvcLogicResource extends SqlResource {
+
+    @Override
+    public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix,
+            String orderBy, SvcLogicContext ctx) throws SvcLogicException {
+        ctx.setAttribute("artifact-content", "TestArtifactContent");
+        ctx.setAttribute(FlowControllerConstants.EXECUTION_TYPE,"TestRPC");
+        ctx.setAttribute(FlowControllerConstants.EXECUTTION_MODULE,"TestModule");
+        ctx.setAttribute(FlowControllerConstants.EXECUTION_RPC,"TestRPC");
+        ctx.setAttribute("count(protocol)", "1");
+        ctx.setAttribute("protocol", "TestProtocol");
+        ctx.setAttribute("SEQUENCE_TYPE", "TestSequence");
+        return QueryStatus.SUCCESS;
+    }
+
+
+    @Override
+    public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map<String, String> parms,
+            String prefix, SvcLogicContext ctx) throws SvcLogicException {
+        return QueryStatus.SUCCESS;
+    }
+}