From 4a12f557c13ee03831bf4aa5c3a02eb482998eba Mon Sep 17 00:00:00 2001 From: kurczews Date: Tue, 30 Jan 2018 10:32:23 +0100 Subject: Add coverage for ConfigResourceNode Change-Id: Ida31164383c01340d47b85d59034882c9206b9a2 Issue-ID: APPC-441 Signed-off-by: kurczews --- .../data/services/db/TestConfigResourceNode.java | 91 ++++------ .../data/services/node/ConfigResourceNodeTest.java | 188 +++++++++++++++++++++ .../data/services/node/MockDbServiceBuilder.java | 36 ++++ 3 files changed, 259 insertions(+), 56 deletions(-) create mode 100644 appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/node/ConfigResourceNodeTest.java create mode 100644 appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/node/MockDbServiceBuilder.java (limited to 'appc-config/appc-data-services/provider/src/test') diff --git a/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/db/TestConfigResourceNode.java b/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/db/TestConfigResourceNode.java index 76ddbdcdf..e264ed5ad 100644 --- a/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/db/TestConfigResourceNode.java +++ b/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/db/TestConfigResourceNode.java @@ -24,9 +24,12 @@ package org.onap.appc.data.services.db; -import java.util.ArrayList; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; import java.util.HashMap; import java.util.Map; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import org.junit.Ignore; import org.junit.Test; @@ -35,25 +38,21 @@ import org.onap.appc.data.services.node.ConfigResourceNode; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import com.fasterxml.jackson.databind.node.ObjectNode; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; - +@Deprecated // class must be rewritten public class TestConfigResourceNode { + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testgetConfigFileReferenc() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); ctx.setAttribute("test", "test"); - ConfigResourceNode dbService = new ConfigResourceNode(); - Map map = new HashMap(); + ConfigResourceNode dbService = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map map = new HashMap<>(); dbService.getConfigFileReference(map, ctx); } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testgetTemplate() throws SvcLogicException { @@ -63,75 +62,81 @@ public class TestConfigResourceNode { ctx.setAttribute(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "tmp.test"); ctx.setAttribute("template-name", "test.json"); - ConfigResourceNode dbService = new ConfigResourceNode(); - Map map = new HashMap(); + ConfigResourceNode dbService = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map map = new HashMap<>(); dbService.getTemplate(map, ctx); } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testgetVnfcReference() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); ctx.setAttribute("test", "test"); - ConfigResourceNode dbService = new ConfigResourceNode(); - Map map = new HashMap(); + ConfigResourceNode dbService = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map map = new HashMap<>(); map.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "tmp.test"); dbService.getVnfcReference(map, ctx); } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testgetSmmChainKeyFiles() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); ctx.setAttribute("test", "test"); ctx.setAttribute("site-location","test/location"); - ConfigResourceNode dbService = new ConfigResourceNode(); - Map map = new HashMap(); + ConfigResourceNode dbService = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map map = new HashMap<>(); map.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "tmp.test"); dbService.getSmmChainKeyFiles(map, ctx); } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testgetDownloadConfigTemplateByVnf() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); ctx.setAttribute("test", "test"); - ConfigResourceNode dbService = new ConfigResourceNode(); - Map map = new HashMap(); + ConfigResourceNode dbService = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map map = new HashMap<>(); map.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "tmp.test"); dbService.getDownloadConfigTemplateByVnf(map, ctx); } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testgetCommonConfigInfo() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); ctx.setAttribute("test", "test"); - ConfigResourceNode dbService = new ConfigResourceNode(); - Map map = new HashMap(); + ConfigResourceNode dbService = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map map = new HashMap<>(); dbService.getCommonConfigInfo(map, ctx); } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testupdateUploadConfigss() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); ctx.setAttribute("test", "test"); - ConfigResourceNode dbService = new ConfigResourceNode(); - Map map = new HashMap(); + ConfigResourceNode dbService = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map map = new HashMap<>(); dbService.updateUploadConfig(map, ctx); } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testgetConfigFilesByVnfVmNCategory() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); - ConfigResourceNode node = new ConfigResourceNode(); - Map inParams = new HashMap(); + ConfigResourceNode node = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map inParams = new HashMap<>(); inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "response-prefix"); inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, "config_template"); inParams.put((String) AppcDataServiceConstant.INPUT_PARAM_VNF_ID, "test"); @@ -139,12 +144,13 @@ public class TestConfigResourceNode { node.getConfigFilesByVnfVmNCategory(inParams, ctx); } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testsaveConfigTransactionLog() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); - ConfigResourceNode node = new ConfigResourceNode(); - Map inParams = new HashMap(); + ConfigResourceNode node = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map inParams = new HashMap<>(); inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE, "testMessage"); inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "response-prefix"); inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE_TYPE, "testmessage"); @@ -153,12 +159,13 @@ public class TestConfigResourceNode { } + @Deprecated // timeout due NPE @Ignore("Test is taking 60 seconds") @Test(expected = Exception.class) public void testsaveConfigBlock() throws SvcLogicException { SvcLogicContext ctx = new SvcLogicContext(); - ConfigResourceNode node = new ConfigResourceNode(); - Map inParams = new HashMap(); + ConfigResourceNode node = new ConfigResourceNode(DGGeneralDBService.initialise()); + Map inParams = new HashMap<>(); inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "tmp"); ctx.setAttribute("configuration", "test"); ctx.setAttribute("tmp.convertconfig.escapeData", "test"); @@ -166,32 +173,4 @@ public class TestConfigResourceNode { node.saveConfigBlock(inParams, ctx); } - @Test - public void testProcessCapabilitiesForVMLevel () throws Exception { - //{"capabilities":{"vnfc":[],"vm":[{"ConfigureTest":["SSC","MMSC"]}],"vf-module":[],"vnf":["ConfigModify","HealthCheck"]}} - SvcLogicContext ctx = new SvcLogicContext(); - ConfigResourceNode node = new ConfigResourceNode(); - String findCapability="Restart"; - JsonNode subCapabilities = JsonNodeFactory.instance.objectNode(); - String subCaps= "[{\"Restart\":[\"SSC\",\"MMC\"]},{\"Rebuild\":[\"SSC\"]},{\"Migrate\":[\"SSC\"]},{\"Snapshot\":[\"SSC\"]},{\"Start\":[\"SSC\"]},{\"Stop\":[\"SSC\"]}]"; - ObjectMapper m = new ObjectMapper(); - subCapabilities = m.readTree(subCaps); - String vServerId="testServer"; - ctx.setAttribute("tmp.vnfInfo.vm.vnfc.vnfc-function-code", "MMC"); - ctx.setAttribute("tmp.vnfInfo.vm.vnfc.vnfc-name","testVnfc") ; - node.processCapabilitiesForVMLevel( vServerId, ctx, - findCapability, subCapabilities); - String result=ctx.getAttribute("capabilities"); - assertEquals(result,"Supported"); - } - - @Test - public void testcheckIfCapabilityCheckNeeded () throws Exception { - ConfigResourceNode node = new ConfigResourceNode(); - String findCapability="Start"; - String capLevel="vnf"; - boolean result=node.checkIfCapabilityCheckNeeded(capLevel,findCapability); - assertFalse(result); - } - } diff --git a/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/node/ConfigResourceNodeTest.java b/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/node/ConfigResourceNodeTest.java new file mode 100644 index 000000000..6ee7a9da7 --- /dev/null +++ b/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/node/ConfigResourceNodeTest.java @@ -0,0 +1,188 @@ +package org.onap.appc.data.services.node; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import java.util.HashMap; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import static org.mockito.Mockito.mock; +import org.onap.appc.data.services.db.DGGeneralDBService; +import static org.onap.appc.data.services.node.ConfigResourceNode.DEVICE_CONF_FILE_TYPE; +import static org.onap.appc.data.services.node.ConfigResourceNode.DEVICE_CONF_PREFIX; +import static org.onap.appc.data.services.node.ConfigResourceNode.FAILURE_FILE_TYPE; +import static org.onap.appc.data.services.node.ConfigResourceNode.FAILURE_PREFIX; +import static org.onap.appc.data.services.node.ConfigResourceNode.LOG_FILE_TYPE; +import static org.onap.appc.data.services.node.ConfigResourceNode.LOG_PREFIX; +import static org.onap.appc.data.services.node.ConfigResourceNode.SUCCESS_FILE_TYPE; +import static org.onap.appc.data.services.node.ConfigResourceNode.SUCCESS_PREFIX; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; + +public class ConfigResourceNodeTest { + + private HashMap inParams; + private SvcLogicContext contextMock; + + @Rule + public ExpectedException expectedException = ExpectedException.none(); + + @Before + public void setUp() { + contextMock = mock(SvcLogicContext.class); + inParams = new HashMap<>(); + } + + /** + * Example data: + * + * {"capabilities":{"vnfc":[],"vm":[{"ConfigureTest":["SSC","MMSC"]}],"vf-module":[],"vnf":["ConfigModify","HealthCheck"]}} + * + */ + @Test + public void shouldProcessCapabilitiesForVMLevel() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + ConfigResourceNode node = new ConfigResourceNode(DGGeneralDBService.initialise()); + String findCapability = "Restart"; + JsonNodeFactory.instance.objectNode(); + String subCaps = "[{\"Restart\":[\"SSC\",\"MMC\"]},{\"Rebuild\":[\"SSC\"]},{\"Migrate\":[\"SSC\"]},{\"Snapshot\":[\"SSC\"]},{\"Start\":[\"SSC\"]},{\"Stop\":[\"SSC\"]}]"; + ObjectMapper m = new ObjectMapper(); + JsonNode subCapabilities = m.readTree(subCaps); + String vServerId = "testServer"; + ctx.setAttribute("tmp.vnfInfo.vm.vnfc.vnfc-function-code", "MMC"); + ctx.setAttribute("tmp.vnfInfo.vm.vnfc.vnfc-name", "testVnfc"); + node.processCapabilitiesForVMLevel(vServerId, ctx, findCapability, subCapabilities); + String result = ctx.getAttribute("capabilities"); + assertEquals(result, "Supported"); + } + + @Test + public void shouldCheckIfCapabilityCheckNeeded() { + ConfigResourceNode node = new ConfigResourceNode(DGGeneralDBService.initialise()); + String findCapability = "Start"; + String capLevel = "vnf"; + boolean result = node.checkIfCapabilityCheckNeeded(capLevel, findCapability); + assertFalse(result); + } + + @Test + public void should_not_throw_if_all_db_params_return_success() throws SvcLogicException { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + + @Test + public void should_throw_exception_on_device_config_missing() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .configFileReference(DEVICE_CONF_PREFIX, DEVICE_CONF_FILE_TYPE, SvcLogicResource.QueryStatus.NOT_FOUND) + .build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read ConfigFileReference:device-configuration"); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + + @Test + public void should_throw_exception_on_device_config_failure() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .configFileReference(DEVICE_CONF_PREFIX, DEVICE_CONF_FILE_TYPE, SvcLogicResource.QueryStatus.FAILURE) + .build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read ConfigFileReference:device-configuration"); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + + @Test + public void should_throw_exception_on_success_param_missing() throws Exception { + + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .configFileReference(SUCCESS_PREFIX, SUCCESS_FILE_TYPE, SvcLogicResource.QueryStatus.NOT_FOUND) + .build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read ConfigFileReference:configuration_success"); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + + @Test + public void should_throw_exception_on_success_param_failure() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .configFileReference(SUCCESS_PREFIX, SUCCESS_FILE_TYPE, SvcLogicResource.QueryStatus.FAILURE) + .build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read ConfigFileReference:configuration_success"); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + + @Test + public void should_throw_exception_on_failure_param_missing() throws Exception { + + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .configFileReference(FAILURE_PREFIX, FAILURE_FILE_TYPE, SvcLogicResource.QueryStatus.NOT_FOUND) + .build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read ConfigFileReference:configuration_error"); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + + @Test + public void should_throw_exception_on_failure_param_failure() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .configFileReference(FAILURE_PREFIX, FAILURE_FILE_TYPE, SvcLogicResource.QueryStatus.FAILURE) + .build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read ConfigFileReference:configuration_error"); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + + @Test + public void should_throw_exception_on_log_param_missing() throws Exception { + + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .configFileReference(LOG_PREFIX, LOG_FILE_TYPE, SvcLogicResource.QueryStatus.NOT_FOUND) + .build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read ConfigFileReference:configuration_log"); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + + @Test + public void should_throw_exception_on_log_param_failure() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .configFileReference(LOG_PREFIX, LOG_FILE_TYPE, SvcLogicResource.QueryStatus.FAILURE) + .build(); + + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read ConfigFileReference:configuration_log"); + configResourceNode.getConfigFileReference(inParams, contextMock); + } + +} \ No newline at end of file diff --git a/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/node/MockDbServiceBuilder.java b/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/node/MockDbServiceBuilder.java new file mode 100644 index 000000000..04379e5dc --- /dev/null +++ b/appc-config/appc-data-services/provider/src/test/java/org/onap/appc/data/services/node/MockDbServiceBuilder.java @@ -0,0 +1,36 @@ +package org.onap.appc.data.services.node; + +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import org.onap.appc.data.services.db.DGGeneralDBService; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.SvcLogicResource; + +class MockDbServiceBuilder { + + private final DGGeneralDBService dbServiceMock; + + MockDbServiceBuilder() throws SvcLogicException { + dbServiceMock = mock(DGGeneralDBService.class); + + doReturn(SvcLogicResource.QueryStatus.SUCCESS) + .when(dbServiceMock) + .getConfigFileReferenceByFileTypeNVnfType(any(SvcLogicContext.class), anyString(), anyString()); + } + + MockDbServiceBuilder configFileReference(String prefix, String fileType, SvcLogicResource.QueryStatus status) throws SvcLogicException { + doReturn(status) + .when(dbServiceMock) + .getConfigFileReferenceByFileTypeNVnfType(any(SvcLogicContext.class), eq(prefix), eq(fileType)); + + return this; + } + + DGGeneralDBService build() { + return dbServiceMock; + } +} -- cgit 1.2.3-korg