From 61bd9e88da260a93f66653836bf064ba8cae286d Mon Sep 17 00:00:00 2001 From: Dilip kumar Pampana Date: Wed, 18 Jul 2018 11:23:24 -0400 Subject: Junit tests for config/flowController 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 --- .../controller/dbervices/FlowControlDBService.java | 6 +- .../executor/node/FlowControlDBServiceTest.java | 289 ++++++++++++--------- .../appc/flow/executor/node/MockDBService.java | 49 ++++ .../flow/executor/node/MockSvcLogicResource.java | 53 ++++ 4 files changed, 276 insertions(+), 121 deletions(-) create mode 100644 appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockDBService.java create mode 100644 appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockSvcLogicResource.java diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/dbervices/FlowControlDBService.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/dbervices/FlowControlDBService.java index 7ef232fac..733d03bf6 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/dbervices/FlowControlDBService.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/dbervices/FlowControlDBService.java @@ -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(); diff --git a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/FlowControlDBServiceTest.java b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/FlowControlDBServiceTest.java index aee03d8eb..d1edf544b 100644 --- a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/FlowControlDBServiceTest.java +++ b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/FlowControlDBServiceTest.java @@ -23,150 +23,199 @@ 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 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 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 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 index 000000000..cd11dbf68 --- /dev/null +++ b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockDBService.java @@ -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 index 000000000..15dcd2b0a --- /dev/null +++ b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/executor/node/MockSvcLogicResource.java @@ -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 parms, + String prefix, SvcLogicContext ctx) throws SvcLogicException { + return QueryStatus.SUCCESS; + } +} -- cgit 1.2.3-korg