diff options
author | Joss Armstrong <joss.armstrong@ericsson.com> | 2019-02-27 19:27:19 +0000 |
---|---|---|
committer | Takamune Cho <takamune.cho@att.com> | 2019-02-27 22:48:13 +0000 |
commit | d1a56a7bef30e17462ded7bd9e14449985a32db4 (patch) | |
tree | 158beaca3c074f5cc513b5cc34a74cbe6af4fd22 /appc-config/appc-data-services/provider/src/test | |
parent | de4fcf5171fcc7713b83722906ca4364d253abe8 (diff) |
Test coverage in ConfigResourceNode
Add >100 lines of coverage and increase from 71% to 99%
Increase branch coverage to fix Sonar major issue
Extract repeated strings to constants
Issue-ID: APPC-1504
Change-Id: Ib3b1e83d39f02befaede035b84a0ebef96b36cfd
Signed-off-by: Joss Armstrong <joss.armstrong@ericsson.com>
Diffstat (limited to 'appc-config/appc-data-services/provider/src/test')
2 files changed, 493 insertions, 56 deletions
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 index 5ecdbc49c..056adb726 100644 --- 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 @@ -5,6 +5,8 @@ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Modifications Copyright (C) 2018-2019 IBM. + * ================================================================================ + * Modifications Copyright (C) 2019 Ericsson * ============================================================================= * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +27,6 @@ package org.onap.appc.data.services.node; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.atLeastOnce; @@ -57,23 +58,29 @@ import static org.onap.appc.data.services.node.ConfigResourceNode.UNABLE_TO_SAVE import static org.onap.appc.data.services.node.ConfigResourceNode.UPLOAD_CONFIG_ID_PARAM; import static org.onap.appc.data.services.node.ConfigResourceNode.UPLOAD_CONFIG_INFO_PREFIX; import static org.onap.appc.data.services.node.ConfigResourceNode.UPLOAD_CONFIG_PREFIX; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.JsonNodeFactory; import java.util.HashMap; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import org.mockito.Mockito; import org.onap.appc.data.services.AppcDataServiceConstant; 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; import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; public class ConfigResourceNodeTest { + private static final String TEST_MESSAGE = "TEST_MESSAGE"; + private static final String SOME_FILE_CATEGORY = "some file category"; + private static final String SOME_FILE_ID = "some file id"; + private static final String SOME_PREFIX = "some prefix"; + private static final String TEST = "test"; private HashMap<String, String> inParams; private SvcLogicContext contextMock; @@ -110,6 +117,40 @@ public class ConfigResourceNodeTest { } @Test + public void shouldProcessCapabilitiesForVMLevelNoSubCapabilities() throws Exception { + SvcLogicContext ctx = new SvcLogicContext(); + ConfigResourceNode node = new ConfigResourceNode(DGGeneralDBService.initialise()); + String findCapability = "Restart"; + JsonNodeFactory.instance.objectNode(); + String subCaps = "{}"; + 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); + assertEquals("None", ctx.getAttribute(ConfigResourceNode.CAPABILITIES)); + } + + @Test + public void shouldProcessCapabilitiesForVMLevelBlankVnfcFunctionCode() 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", ""); + ctx.setAttribute("tmp.vnfInfo.vm.vnfc.vnfc-name", "testVnfc"); + node.processCapabilitiesForVMLevel(vServerId, ctx, findCapability, subCapabilities); + assertEquals(ConfigResourceNode.NOT_SUPPORTED, ctx.getAttribute(ConfigResourceNode.CAPABILITIES)); + } + + @Test public void shouldCheckIfCapabilityCheckNeeded() { ConfigResourceNode node = new ConfigResourceNode(DGGeneralDBService.initialise()); String findCapability = "Start"; @@ -146,7 +187,7 @@ public class ConfigResourceNodeTest { configResourceNode.getTemplate(inParams, contextMock); verify(contextMock).setAttribute(anyString(), eq(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS)); } - + @Test public void testGetVnfcReference() throws Exception { DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().build(); @@ -156,7 +197,54 @@ public class ConfigResourceNodeTest { configResourceNode.getVnfcReference(inParams, contextMock); verify(contextMock).setAttribute(anyString(), eq(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS)); } - + + @Test + public void testGetVnfcReferenceWithVnfcType() throws Exception { + SvcLogicContext context = new SvcLogicContext(); + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .getVnfcReferenceByVnfcTypeNAction(TEST, SvcLogicResource.QueryStatus.FAILURE).build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + context.setAttribute("vnfc-type", "testVnfcType"); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read vnfc-reference"); + configResourceNode.getVnfcReference(inParams, context); + } + + @Test + public void testGetVnfcReferenceWithVnfcTypeAndTemplateModelId() throws Exception { + SvcLogicContext context = new SvcLogicContext(); + context.setAttribute(AppcDataServiceConstant.TEMPLATE_MODEL_ID, TEST); + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .getVnfcReferenceByVnfcTypeNAction(TEST, SvcLogicResource.QueryStatus.SUCCESS) + .getVnfcReferenceByVnfTypeNActionWithTemplateModelId(TEST, TEST, + SvcLogicResource.QueryStatus.FAILURE).build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + context.setAttribute("vnfc-type", "testVnfcType"); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read vnfc-reference with " + + AppcDataServiceConstant.TEMPLATE_MODEL_ID); + configResourceNode.getVnfcReference(inParams, context); + } + + @Test + public void testGetVnfcReferenceWithVnfcTypeAndTemplateModelIdNotFound() throws Exception { + SvcLogicContext context = new SvcLogicContext(); + context.setAttribute(AppcDataServiceConstant.TEMPLATE_MODEL_ID, TEST); + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() + .getVnfcReferenceByVnfcTypeNAction(TEST, SvcLogicResource.QueryStatus.SUCCESS) + .getVnfcReferenceByVnfTypeNActionWithTemplateModelId(TEST, TEST, + SvcLogicResource.QueryStatus.NOT_FOUND).getVnfcReferenceByVnfTypeNAction(TEST, + SvcLogicResource.QueryStatus.FAILURE).build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + context.setAttribute("vnfc-type", "testVnfcType"); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to Read vnfc reference"); + configResourceNode.getVnfcReference(inParams, context); + } + @Test public void testGetCapability() throws Exception { DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().build(); @@ -169,7 +257,82 @@ public class ConfigResourceNodeTest { configResourceNode.getCapability(inParams, contextMock); verify(contextMock).setAttribute(anyString(), eq(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS)); } - + + @Test + public void testGetCapabilityNoCheckRequired() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + SvcLogicContext context = new SvcLogicContext(); + inParams.put("caplevel", "start"); + inParams.put("checkCapability", "start"); + configResourceNode.getCapability(inParams, context); + assertEquals(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS, + context.getAttribute(AppcDataServiceConstant.OUTPUT_PARAM_STATUS)); + } + + @Test + public void testGetCapabilityWithVnfType() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().getCapability(TEST, + "{\"capabilities\": {\"vm\":\"test\"}}").build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + SvcLogicContext context = new SvcLogicContext(); + inParams.put("vnf-type", TEST); + inParams.put("caplevel", "vm"); + configResourceNode.getCapability(inParams, context); + assertEquals(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS, + context.getAttribute(AppcDataServiceConstant.OUTPUT_PARAM_STATUS)); + } + + @Test + public void testGetCapabilityWithVnfTypeAndSubCapabilities() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().getCapability(TEST, + "{\"capabilities\": {\"vm\": {\"start\":\"test\"}}}").build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + SvcLogicContext context = new SvcLogicContext(); + inParams.put("vnf-type", TEST); + inParams.put("caplevel", "vm"); + inParams.put("checkCapability", "start"); + configResourceNode.getCapability(inParams, context); + assertEquals(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS, + context.getAttribute(AppcDataServiceConstant.OUTPUT_PARAM_STATUS)); + } + + @Test + public void testGetCapabilityNotSupported() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().getCapability(TEST, + "{\"capabilities\": {\"vm\": {\"stop\":\"test\"}}}").build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + SvcLogicContext context = new SvcLogicContext(); + inParams.put("vnf-type", TEST); + inParams.put("caplevel", "vm"); + inParams.put("checkCapability", "start"); + configResourceNode.getCapability(inParams, context); + assertEquals(ConfigResourceNode.NOT_SUPPORTED, context.getAttribute(ConfigResourceNode.CAPABILITIES)); + } + + @Test + public void testGetCapabilityNoFindCapability() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().getCapability(TEST, + "{\"capabilities\": {\"vm\": {\"stop\":\"test\"}}}").build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + SvcLogicContext context = new SvcLogicContext(); + inParams.put("vnf-type", TEST); + inParams.put("caplevel", "vm"); + configResourceNode.getCapability(inParams, context); + assertEquals("{\"stop\":\"test\"}", context.getAttribute("capabilities.vm")); + } + + @Test + public void testGetCapabilityException() throws Exception { + DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().getCapability(TEST, "\\\\").build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + SvcLogicContext context = new SvcLogicContext(); + inParams.put("vnf-type", TEST); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unexpected character"); + configResourceNode.getCapability(inParams, context); + } + @Test public void testGetConfigFilesByVnfVmNCategory() throws Exception { DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().build(); @@ -183,6 +346,23 @@ public class ConfigResourceNodeTest { } @Test + public void testGetConfigFilesByVnfVmNCategoryException() throws SvcLogicException { + SvcLogicContext context = new SvcLogicContext(); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_ID); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_VNF_ID, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_VM_NAME, TEST); + context.setAttribute("fileCategory", TEST); + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().getConfigFilesByVnfVmNCategory(TEST, SOME_FILE_ID, TEST, + TEST, SvcLogicResource.QueryStatus.NOT_FOUND).build(); + ConfigResourceNode configResourceNode = Mockito.spy(new ConfigResourceNode(dbServiceMock)); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to get test from configfiles"); + configResourceNode.getConfigFilesByVnfVmNCategory(inParams, context); + } + + @Test public void should_add_attribute_with_success_if_save_config_files_succeed() throws SvcLogicException { DGGeneralDBService dbServiceMock = new MockDbServiceBuilder().build(); @@ -406,11 +586,11 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_db_template_failure() throws SvcLogicException { - inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "some prefix"); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, "some file category"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, SOME_PREFIX); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_CATEGORY); DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() - .getTemplate("some prefix", "some file category", SvcLogicResource.QueryStatus.FAILURE).build(); + .getTemplate(SOME_PREFIX, SOME_FILE_CATEGORY, SvcLogicResource.QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -421,12 +601,12 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_db_template_by_action_failure() throws SvcLogicException { - inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "some prefix"); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, "some file category"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, SOME_PREFIX); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_CATEGORY); DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() - .getTemplate("some prefix", "some file category", SvcLogicResource.QueryStatus.NOT_FOUND) - .getTemplateByVnfTypeNAction("some prefix", "some file category", SvcLogicResource.QueryStatus.FAILURE) + .getTemplate(SOME_PREFIX, SOME_FILE_CATEGORY, SvcLogicResource.QueryStatus.NOT_FOUND) + .getTemplateByVnfTypeNAction(SOME_PREFIX, SOME_FILE_CATEGORY, SvcLogicResource.QueryStatus.FAILURE) .build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -438,12 +618,12 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_db_template_by_action_missing() throws SvcLogicException { - inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "some prefix"); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, "some file category"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, SOME_PREFIX); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_CATEGORY); DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() - .getTemplate("some prefix", "some file category", SvcLogicResource.QueryStatus.NOT_FOUND) - .getTemplateByVnfTypeNAction("some prefix", "some file category", + .getTemplate(SOME_PREFIX, SOME_FILE_CATEGORY, SvcLogicResource.QueryStatus.NOT_FOUND) + .getTemplateByVnfTypeNAction(SOME_PREFIX, SOME_FILE_CATEGORY, SvcLogicResource.QueryStatus.NOT_FOUND) .build(); @@ -456,14 +636,14 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_db_template_by_name_missing() throws SvcLogicException { - inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "some prefix"); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, "some file category"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, SOME_PREFIX); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_CATEGORY); SvcLogicContext context = new SvcLogicContext(); - context.setAttribute("template-name", "test template"); + context.setAttribute(AppcDataServiceConstant.TEMPLATE_NAME, "test template"); DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() - .getTemplateByTemplateName("some prefix", "test template", SvcLogicResource.QueryStatus.NOT_FOUND) + .getTemplateByTemplateName(SOME_PREFIX, "test template", SvcLogicResource.QueryStatus.NOT_FOUND) .build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -475,14 +655,14 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_db_template_by_name_failure() throws SvcLogicException { - inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "some prefix"); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, "some file category"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, SOME_PREFIX); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_CATEGORY); SvcLogicContext context = new SvcLogicContext(); - context.setAttribute("template-name", "test template"); + context.setAttribute(AppcDataServiceConstant.TEMPLATE_NAME, "test template"); DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() - .getTemplateByTemplateName("some prefix", "test template", SvcLogicResource.QueryStatus.FAILURE) + .getTemplateByTemplateName(SOME_PREFIX, "test template", SvcLogicResource.QueryStatus.FAILURE) .build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -495,7 +675,7 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_save_config_failure() throws SvcLogicException { SvcLogicContext context = new SvcLogicContext(); - context.setAttribute(FILE_CATEGORY_PARAM, "some file category"); + context.setAttribute(FILE_CATEGORY_PARAM, SOME_FILE_CATEGORY); DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() .saveConfigFiles(CONFIG_FILES_PREFIX, SvcLogicResource.QueryStatus.FAILURE).build(); @@ -510,10 +690,10 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_get_max_config_id_missing() throws SvcLogicException { SvcLogicContext context = new SvcLogicContext(); - context.setAttribute(FILE_CATEGORY_PARAM, "some file category"); + context.setAttribute(FILE_CATEGORY_PARAM, SOME_FILE_CATEGORY); DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() - .getMaxConfigFileId(MAX_CONF_FILE_PREFIX, "some file category", SvcLogicResource.QueryStatus.NOT_FOUND) + .getMaxConfigFileId(MAX_CONF_FILE_PREFIX, SOME_FILE_CATEGORY, SvcLogicResource.QueryStatus.NOT_FOUND) .build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -527,10 +707,10 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_save_config_files_failure() throws SvcLogicException { SvcLogicContext context = new SvcLogicContext(); - context.setAttribute(CONFIG_FILE_ID_PARAM, "some file id"); + context.setAttribute(CONFIG_FILE_ID_PARAM, SOME_FILE_ID); DGGeneralDBService dbServiceMock = - new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, "some file id", SDC_IND, + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, SDC_IND, SvcLogicResource.QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -592,10 +772,10 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_get_download_config_failure() throws SvcLogicException { - inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "some prefix"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, SOME_PREFIX); DGGeneralDBService dbServiceMock = new MockDbServiceBuilder() - .getDownloadConfigTemplateByVnf("some prefix", SvcLogicResource.QueryStatus.FAILURE).build(); + .getDownloadConfigTemplateByVnf(SOME_PREFIX, SvcLogicResource.QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -650,10 +830,10 @@ public class ConfigResourceNodeTest { @Test public void should_throw_exception_on_save_prepare_relationship_failure() throws SvcLogicException { inParams.put(AppcDataServiceConstant.INPUT_PARAM_SDC_ARTIFACT_IND, "some sdnc index"); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_ID, "some file id"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_ID, SOME_FILE_ID); DGGeneralDBService dbServiceMock = - new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, "some file id", + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, "some sdnc index", QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -671,7 +851,7 @@ public class ConfigResourceNodeTest { when(contextMock.getAttribute(CONFIG_PARAMS)).thenReturn(""); DGGeneralDBService dbServiceMock = - new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, "some file id", + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, "some sdnc index", QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = spy(new ConfigResourceNode(dbServiceMock)); @@ -690,7 +870,7 @@ public class ConfigResourceNodeTest { when(contextMock.getAttribute(CONFIG_PARAMS)).thenReturn("non empty"); DGGeneralDBService dbServiceMock = - new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, "some file id", + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, "some sdnc index", QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = spy(new ConfigResourceNode(dbServiceMock)); @@ -701,15 +881,15 @@ public class ConfigResourceNodeTest { verify(configResourceNode).saveConfigBlock(inParams, contextMock); verify(contextMock, atLeastOnce()).setAttribute(anyString(), eq(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS)); } - + @Test public void testSaveTemplateConfig() throws SvcLogicException { SvcLogicContext context = new SvcLogicContext(); - context.setAttribute(CONFIG_FILE_ID_PARAM, "some file id"); + context.setAttribute(CONFIG_FILE_ID_PARAM, SOME_FILE_ID); DGGeneralDBService dbServiceMock = - new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, "some file id", SDC_IND, + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, SDC_IND, SvcLogicResource.QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -717,17 +897,51 @@ public class ConfigResourceNodeTest { verify(contextMock, atLeastOnce()).setAttribute(anyString(), eq(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS)); } - + + @Test + public void testSaveTemplateConfigWithConfigParams() throws SvcLogicException + { + SvcLogicContext context = new SvcLogicContext(); + context.setAttribute(CONFIG_FILE_ID_PARAM, SOME_FILE_ID); + context.setAttribute(CONFIG_PARAMS, TEST); + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, SDC_IND, + SvcLogicResource.QueryStatus.FAILURE).build(); + ConfigResourceNode configResourceNode = Mockito.spy(new ConfigResourceNode(dbServiceMock)); + Mockito.doNothing().when(configResourceNode).saveConfigurationData(Mockito.anyMap(), Mockito.any(SvcLogicContext.class)); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage(ConfigResourceNode.UNABLE_TO_SAVE_RELATIONSHIP_STR); + configResourceNode.saveTemplateConfig(inParams, context); + } + + @Test + public void testSaveTemplateConfigWithConfigParamsAndQueryStatusFailure() throws SvcLogicException + { + SvcLogicContext context = new SvcLogicContext(); + context.setAttribute(CONFIG_FILE_ID_PARAM, SOME_FILE_ID); + context.setAttribute(CONFIG_PARAMS, TEST); + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, null, "Y", + SvcLogicResource.QueryStatus.FAILURE).build(); + ConfigResourceNode configResourceNode = Mockito.spy(new ConfigResourceNode(dbServiceMock)); + Mockito.doNothing().when(configResourceNode).saveConfigurationData(Mockito.anyMap(), Mockito.any(SvcLogicContext.class)); + Mockito.doNothing().when(configResourceNode).saveDeviceConfiguration(Mockito.anyMap(), Mockito.any(SvcLogicContext.class), + Mockito.anyString(), Mockito.anyString(), Mockito.anyString()); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage(ConfigResourceNode.UNABLE_TO_SAVE_RELATIONSHIP_STR); + configResourceNode.saveTemplateConfig(inParams, context); + } + @Test public void testSaveStyleSheetConfig() throws SvcLogicException { SvcLogicContext context = new SvcLogicContext(); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "test"); - context.setAttribute("tmp.merge.mergedData", "test"); - context.setAttribute("tmp.convertconfig.escapeData", "test"); - context.setAttribute("tmp.merge.mergedData", "test"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + context.setAttribute("tmp.merge.mergedData", TEST); + context.setAttribute("tmp.convertconfig.escapeData", TEST); + context.setAttribute("tmp.merge.mergedData", TEST); DGGeneralDBService dbServiceMock = - new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, "some file id", SDC_IND, + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, SDC_IND, SvcLogicResource.QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); @@ -735,24 +949,154 @@ public class ConfigResourceNodeTest { verify(contextMock, atLeastOnce()).setAttribute(anyString(), eq(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS)); } - + + @Test + public void testSaveStyleSheetConfigException() throws SvcLogicException + { + SvcLogicContext context = new SvcLogicContext(); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + context.setAttribute("tmp.merge.mergedData", TEST); + context.setAttribute("tmp.convertconfig.escapeData", TEST); + context.setAttribute("tmp.merge.mergedData", TEST); + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, SDC_IND, + SvcLogicResource.QueryStatus.FAILURE).build(); + + ConfigResourceNode configResourceNode = Mockito.spy(new ConfigResourceNode(dbServiceMock)); + Mockito.doThrow(new SvcLogicException(TEST_MESSAGE)).when(configResourceNode).saveDeviceConfiguration(Mockito.anyMap(), Mockito.any(SvcLogicContext.class), + Mockito.anyString(), Mockito.anyString(), Mockito.anyString()); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage(TEST_MESSAGE); + configResourceNode.saveStyleSheetConfig(inParams, contextMock); + } + @Test public void testSaveConfigTransactionLog() throws SvcLogicException { SvcLogicContext context = new SvcLogicContext(); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, "test"); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE_TYPE, "test"); - inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE, "test"); - - context.setAttribute("request-id", "test"); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE_TYPE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE, TEST); + + context.setAttribute("request-id", TEST); DGGeneralDBService dbServiceMock = - new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, "some file id", SDC_IND, + new MockDbServiceBuilder().savePrepareRelationship(PREPARE_RELATIONSHIP_PARAM, SOME_FILE_ID, SDC_IND, SvcLogicResource.QueryStatus.FAILURE).build(); ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); configResourceNode.saveConfigTransactionLog(inParams, contextMock); - assertEquals(null,contextMock.getAttribute("log-message")); + assertEquals(null, contextMock.getAttribute("log-message")); + } + + @Test + public void testSaveConfigTransactionLogException() throws SvcLogicException + { + SvcLogicContext context = new SvcLogicContext(); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE_TYPE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE, TEST); + + context.setAttribute("request-id", TEST); + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().saveConfigTransactionLog("test.", SvcLogicResource.QueryStatus.FAILURE) + .build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage("Unable to insert into config_transaction_log"); + configResourceNode.saveConfigTransactionLog(inParams, contextMock); + } + + @Test + public void testGetTemplateByTemplateModelIdFailedQuery() throws SvcLogicException { + SvcLogicContext context = new SvcLogicContext(); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE_TYPE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_ID); + + context.setAttribute(AppcDataServiceConstant.TEMPLATE_NAME, ""); + context.setAttribute(AppcDataServiceConstant.TEMPLATE_MODEL_ID, TEST); + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().getTemplateByTemplateModelId(TEST, SOME_FILE_ID, TEST, + SvcLogicResource.QueryStatus.FAILURE).build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage(ConfigResourceNode.UNABLE_TO_READ_STR); + configResourceNode.getTemplate(inParams, context); + } + + @Test + public void testGetTemplateByTemplateModelIdSuccessQuery() throws SvcLogicException { + SvcLogicContext context = new SvcLogicContext(); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE_TYPE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_ID); + + context.setAttribute(AppcDataServiceConstant.TEMPLATE_NAME, ""); + context.setAttribute(AppcDataServiceConstant.TEMPLATE_MODEL_ID, TEST); + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().getTemplateByTemplateModelId(TEST, SOME_FILE_ID, TEST, + SvcLogicResource.QueryStatus.SUCCESS).build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + configResourceNode.getTemplate(inParams, context); + assertEquals(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS, context.getAttribute("test." + + AppcDataServiceConstant.OUTPUT_PARAM_STATUS)); + } + + @Test + public void testGetTemplateByTemplateModelIdNotFoundQuery() throws SvcLogicException { + SvcLogicContext context = new SvcLogicContext(); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE_TYPE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_ID); + + context.setAttribute(AppcDataServiceConstant.TEMPLATE_NAME, ""); + context.setAttribute(AppcDataServiceConstant.TEMPLATE_MODEL_ID, TEST); + + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().getTemplateByTemplateModelId(TEST, SOME_FILE_ID, TEST, + SvcLogicResource.QueryStatus.NOT_FOUND).getTemplate(TEST, SOME_FILE_ID, + SvcLogicResource.QueryStatus.NOT_FOUND).build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + configResourceNode.getTemplate(inParams, context); + assertEquals(AppcDataServiceConstant.OUTPUT_STATUS_SUCCESS, context.getAttribute("test." + + AppcDataServiceConstant.OUTPUT_PARAM_STATUS)); + } + + @Test + public void testGetTemplateByTemplateModelIdNotFoundByVnfTypeNAction() throws SvcLogicException { + SvcLogicContext context = new SvcLogicContext(); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_RESPONSE_PREFIX, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE_TYPE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_MESSAGE, TEST); + inParams.put(AppcDataServiceConstant.INPUT_PARAM_FILE_CATEGORY, SOME_FILE_ID); + + context.setAttribute(AppcDataServiceConstant.TEMPLATE_NAME, ""); + context.setAttribute(AppcDataServiceConstant.TEMPLATE_MODEL_ID, TEST); + + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().getTemplateByTemplateModelId(TEST, SOME_FILE_ID, TEST, + SvcLogicResource.QueryStatus.NOT_FOUND).getTemplate(TEST, SOME_FILE_ID, + SvcLogicResource.QueryStatus.NOT_FOUND).getTemplateByVnfTypeNActionWithTemplateModelId + (TEST, SOME_FILE_ID, TEST, SvcLogicResource.QueryStatus.FAILURE).build(); + ConfigResourceNode configResourceNode = new ConfigResourceNode(dbServiceMock); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage(ConfigResourceNode.UNABLE_TO_READ_STR); + configResourceNode.getTemplate(inParams, context); + } + + @Test + public void testSaveConfigBlock() throws SvcLogicException { + SvcLogicContext context = new SvcLogicContext(); + DGGeneralDBService dbServiceMock = + new MockDbServiceBuilder().build(); + ConfigResourceNode configResourceNode = Mockito.spy(new ConfigResourceNode(dbServiceMock)); + Mockito.doThrow(new SvcLogicException(TEST_MESSAGE)).when(configResourceNode).saveDeviceConfiguration(Mockito.anyMap(), Mockito.any(SvcLogicContext.class), + Mockito.anyString(), Mockito.anyString(), Mockito.anyString()); + expectedException.expect(SvcLogicException.class); + expectedException.expectMessage(TEST_MESSAGE); + configResourceNode.saveConfigBlock(inParams, context); } - - } 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 index 2da8d5316..f37d5bdda 100644 --- 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 @@ -1,3 +1,24 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2019 Ericsson + * ================================================================================ + * 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.data.services.node; import static org.mockito.Matchers.any; @@ -65,6 +86,15 @@ class MockDbServiceBuilder { return this; } + public MockDbServiceBuilder getTemplateByVnfTypeNActionWithTemplateModelId(String prefix, String fileCategory, String templateModelId, + SvcLogicResource.QueryStatus status) throws SvcLogicException { + doReturn(status) + .when(dbServiceMock) + .getTemplateByVnfTypeNActionWithTemplateModelId(any(SvcLogicContext.class), eq(prefix), eq(fileCategory), eq(templateModelId)); + + return this; + } + public MockDbServiceBuilder getTemplateByTemplateName(String prefix, String fileCategory, SvcLogicResource.QueryStatus status) throws SvcLogicException { doReturn(status) .when(dbServiceMock) @@ -73,6 +103,15 @@ class MockDbServiceBuilder { return this; } + public MockDbServiceBuilder getTemplateByTemplateModelId(String prefix, String fileCategory, String templateModelId, + SvcLogicResource.QueryStatus status) throws SvcLogicException { + doReturn(status) + .when(dbServiceMock) + .getTemplateWithTemplateModelId(any(SvcLogicContext.class), eq(prefix), eq(fileCategory), eq(templateModelId)); + + return this; + } + public MockDbServiceBuilder saveConfigFiles(String prefix, SvcLogicResource.QueryStatus status) throws SvcLogicException { doReturn(status) .when(dbServiceMock) @@ -137,7 +176,61 @@ class MockDbServiceBuilder { return this; } + public MockDbServiceBuilder getConfigFilesByVnfVmNCategory(String prefix, String fileCategory, String vnfId, + String vmName, SvcLogicResource.QueryStatus status) throws SvcLogicException { + doReturn(status) + .when(dbServiceMock) + .getConfigFilesByVnfVmNCategory(any(SvcLogicContext.class), eq(prefix), eq(fileCategory), eq(vnfId), eq(vmName)); + + return this; + } + + public MockDbServiceBuilder saveConfigTransactionLog(String prefix, SvcLogicResource.QueryStatus status) + throws SvcLogicException { + doReturn(status) + .when(dbServiceMock) + .saveConfigTransactionLog(any(SvcLogicContext.class), eq(prefix)); + + return this; + } + + public MockDbServiceBuilder getVnfcReferenceByVnfcTypeNAction(String prefix, SvcLogicResource.QueryStatus status) + throws SvcLogicException { + doReturn(status) + .when(dbServiceMock) + .getVnfcReferenceByVnfcTypeNAction(any(SvcLogicContext.class), eq(prefix)); + + return this; + } + DGGeneralDBService build() { return dbServiceMock; } + + public MockDbServiceBuilder getVnfcReferenceByVnfTypeNActionWithTemplateModelId(String prefix, + String templateModelId, SvcLogicResource.QueryStatus status) throws SvcLogicException { + doReturn(status) + .when(dbServiceMock) + .getVnfcReferenceByVnfTypeNActionWithTemplateModelId(any(SvcLogicContext.class), eq(prefix), + eq(templateModelId)); + + return this; + } + + public MockDbServiceBuilder getVnfcReferenceByVnfTypeNAction(String prefix, SvcLogicResource.QueryStatus status) + throws SvcLogicException { + doReturn(status) + .when(dbServiceMock) + .getVnfcReferenceByVnfTypeNAction(any(SvcLogicContext.class), eq(prefix)); + + return this; + } + + public MockDbServiceBuilder getCapability(String type, String returnString) throws SvcLogicException { + doReturn(returnString) + .when(dbServiceMock) + .getCapability(any(SvcLogicContext.class), eq(type)); + + return this; + } } |