X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=adapters%2Fmso-openstack-adapters%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fso%2Fadapters%2Fvnf%2FMsoVnfAdapterImplTest.java;h=0c56222558c0071ad233fe0b55fb0e53008cc4bf;hb=064b021789b6d725dca892727f29c2d294e0d4a9;hp=0816bc55a642102c95d3922c5b7d52496fbbf60f;hpb=1b9b833a49976c449bbb65b8a7975e8b17620154;p=so.git diff --git a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfAdapterImplTest.java b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfAdapterImplTest.java index 0816bc55a6..0c56222558 100644 --- a/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfAdapterImplTest.java +++ b/adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfAdapterImplTest.java @@ -21,7 +21,20 @@ package org.onap.so.adapters.vnf; -import com.github.tomakehurst.wiremock.client.WireMock; +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; +import static org.mockito.Mockito.when; +import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackVfModule_200; +import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackVfModule_404; +import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutStack; +import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackResponseAccess; +import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenstackGetWithResponse; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import javax.xml.ws.Holder; import org.apache.http.HttpStatus; import org.junit.Before; import org.junit.Ignore; @@ -38,8 +51,6 @@ import org.onap.so.db.catalog.beans.HeatTemplateParam; import org.onap.so.db.catalog.beans.VfModule; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfResource; -import org.onap.so.db.catalog.data.repository.VFModuleCustomizationRepository; -import org.onap.so.db.catalog.data.repository.VnfResourceRepository; import org.onap.so.entity.MsoRequest; import org.onap.so.openstack.beans.HeatStatus; import org.onap.so.openstack.beans.StackInfo; @@ -47,517 +58,510 @@ import org.onap.so.openstack.beans.VnfRollback; import org.onap.so.openstack.exceptions.MsoException; import org.onap.so.openstack.utils.MsoHeatUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.MockBean; - -import javax.xml.ws.Holder; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.get; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; -import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.when; -import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackVfModule_200; -import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackVfModule_404; -import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutStack; -import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackResponseAccess; -import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenstackGetWithResponse; +import com.github.tomakehurst.wiremock.client.WireMock; public class MsoVnfAdapterImplTest extends BaseRestTestUtils { - @Rule - public ExpectedException expectedException = ExpectedException.none(); - - @Autowired - private MsoHeatUtils heatUtils; - - @Autowired - MsoVnfAdapterImpl instance; - - String vnfName = "DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId"; - - @Before - public void before() throws Exception { - MockitoAnnotations.initMocks(this); - WireMock.reset(); - setUp(); - } - - @Test - @Ignore - public void healthCheckVNFTest() { - MsoVnfAdapterImpl instance = new MsoVnfAdapterImpl(); - instance.healthCheck(); - } - - @Test - public void createVnfTest() throws Exception { - StackInfo info = new StackInfo(); - info.setStatus(HeatStatus.CREATED); - - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_200(); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("MTN13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_HeatStatusUpdating() throws Exception { - expectedException.expect(VnfAlreadyExists.class); - mockOpenStackResponseAccess(wireMockPort); - - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId")) - .willReturn(aResponse().withHeader("Content-Type", "application/json") - .withBodyFile("OpenstackResponse_Stack_Updating_VfModule.json") - .withStatus(HttpStatus.SC_OK))); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_HeatStatusUpdated() throws Exception { - expectedException.expect(VnfAlreadyExists.class); - mockOpenStackResponseAccess(wireMockPort); - - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId")) - .willReturn(aResponse().withHeader("Content-Type", "application/json") - .withBodyFile("OpenstackResponse_StackId.json") - .withStatus(HttpStatus.SC_OK))); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_HeatStatusFailed() throws Exception { - expectedException.expect(VnfAlreadyExists.class); - mockOpenStackResponseAccess(wireMockPort); - - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId")) - .willReturn(aResponse().withHeader("Content-Type", "application/json") - .withBodyFile("OpenstackResponse_Stack_Failed_VfModule.json") - .withStatus(HttpStatus.SC_OK))); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_HeatStatusCreated() throws Exception { - expectedException.expect(VnfAlreadyExists.class); - mockOpenStackResponseAccess(wireMockPort); - - mockOpenStackGetStackVfModule_200(); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.TRUE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - - @Test - public void createVnfTest_ExceptionInGettingHeat() throws Exception { - expectedException.expect(VnfException.class); - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_NestedHeatStatusNotFound() throws Exception { - expectedException.expect(VnfException.class); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_404(); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_ExceptionInGettingNestedHeat() throws Exception { - expectedException.expect(VnfException.class); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_404(); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")) - .willReturn(aResponse().withHeader("Content-Type", "application/json") - .withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR))); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_NestedBaseHeatStatus_NotFound() throws Exception { - expectedException.expect(VnfException.class); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_404(); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")) - .willReturn(aResponse().withHeader("Content-Type", "application/json") - .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json") - .withStatus(HttpStatus.SC_OK))); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_ExceptionInGettingBaseNestedHeat() throws Exception { - expectedException.expect(VnfException.class); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_404(); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse().withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse().withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR))); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_ExceptionInCreateStack() throws Exception { - expectedException.expect(VnfException.class); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_404(); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse().withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse().withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); - - VfModuleCustomization vfModuleCustomization = new VfModuleCustomization(); - VfModule vfModule = new VfModule(); - vfModule.setIsBase(false); - - HeatTemplate heatTemplate = new HeatTemplate(); - heatTemplate.setTemplateBody(""); - heatTemplate.setTimeoutMinutes(200); - vfModule.setModuleHeatTemplate(heatTemplate); - vfModuleCustomization.setVfModule(vfModule); - - HeatEnvironment heatEnvironment = new HeatEnvironment(); - heatEnvironment.setEnvironment("ist"); - vfModuleCustomization.setHeatEnvironment(heatEnvironment); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_ModelCustUuidIsNull() throws Exception { - expectedException.expect(VnfException.class); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_404(); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse().withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse().withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); - - VfModuleCustomization vfModuleCustomization = new VfModuleCustomization(); - VfModule vfModule = new VfModule(); - vfModule.setIsBase(false); - - HeatTemplate heatTemplate = new HeatTemplate(); - heatTemplate.setTemplateBody(""); - heatTemplate.setTimeoutMinutes(200); - vfModule.setModuleHeatTemplate(heatTemplate); - vfModuleCustomization.setVfModule(vfModule); - - HeatEnvironment heatEnvironment = new HeatEnvironment(); - heatEnvironment.setEnvironment("ist"); - vfModuleCustomization.setHeatEnvironment(heatEnvironment); - - VnfResource vnfResource = new VnfResource(); - vnfResource.setAicVersionMin("1"); - vnfResource.setAicVersionMin("3"); - - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "XVFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", null, map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - @Test - public void createVnfTest_HeatEnvironment_ContainsParameters() throws Exception { - expectedException.expect(VnfException.class); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_404(); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse().withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse().withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); - - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, - Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), - new Holder()); - } - - private MsoRequest getMsoRequest() { - MsoRequest msoRequest = new MsoRequest(); - msoRequest.setRequestId("12345"); - msoRequest.setServiceInstanceId("12345"); - return msoRequest; - } - - @Test - public void updateVnfTest_CloudSiteIdNotFound() throws Exception { - expectedException.expect(VnfException.class); - MsoRequest msoRequest = getMsoRequest(); - - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "vSAMP12", "VFMOD", - "volumeGroupHeatStackId|1", "baseVfHeatStackId", "vfModuleStackId", - "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - public void updateVnfTest_HeatStackNotFound() throws Exception { - expectedException.expect(VnfNotFound.class); - MsoRequest msoRequest = getMsoRequest(); - mockOpenStackResponseAccess(wireMockPort); - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", - "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - public void updateVnfTest_ExceptionInGettingNestedHeatStack() throws Exception { - expectedException.expect(VnfException.class); - MsoRequest msoRequest = getMsoRequest(); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_200(); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")) - .willReturn(aResponse().withHeader("Content-Type", "application/json") - .withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR))); - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", - "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - public void updateVnfTest_NestedHeatStackNotFound() throws Exception { - expectedException.expect(VnfException.class); - MsoRequest msoRequest = getMsoRequest(); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_200(); - stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")) - .willReturn(aResponse().withHeader("Content-Type", "application/json") - .withStatus(HttpStatus.SC_NOT_FOUND))); - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", - "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - public void updateVnfTest_ExceptionInGettingNestedBaseHeatStack() throws Exception { - expectedException.expect(VnfException.class); - MsoRequest msoRequest = getMsoRequest(); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_200(); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/volumeGroupHeatStackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_Created_VfModule.json"); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/baseVfHeatStackId",HttpStatus.SC_INTERNAL_SERVER_ERROR,"OpenstackResponse_Stack_Created_VfModule.json"); - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", - "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - public void updateVnfTest_NestedBaseHeatStackNotFound() throws Exception { - expectedException.expect(VnfException.class); - MsoRequest msoRequest = getMsoRequest(); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_200(); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/volumeGroupHeatStackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_Created_VfModule.json"); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/baseVfHeatStackId",HttpStatus.SC_NOT_FOUND,"OpenstackResponse_Stack_Created_VfModule.json"); - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", - "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - public void updateVnfTest_MissingParams() throws Exception { - expectedException.expect(VnfException.class); - MsoRequest msoRequest = getMsoRequest(); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_200(); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/volumeGroupHeatStackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_Created_VfModule.json"); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/baseVfHeatStackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_Created_VfModule.json"); - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", - "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - public void updateVnfTest_UpdateStackException() throws Exception { - expectedException.expect(VnfException.class); - MsoRequest msoRequest = getMsoRequest(); - mockOpenStackResponseAccess(wireMockPort); - mockOpenStackGetStackVfModule_200(); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/volumeGroupHeatStackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_Created_VfModule.json"); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/baseVfHeatStackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_Created_VfModule.json"); - - VfModuleCustomization vfModuleCustomization = getVfModuleCustomization(); - vfModuleCustomization.getVfModule().getModuleHeatTemplate().setParameters(new HashSet<>()); - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", - "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - public void updateVnfTest() throws Exception { - MsoRequest msoRequest = getMsoRequest(); - mockOpenStackResponseAccess(wireMockPort); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/"+vnfName,HttpStatus.SC_OK,"OpenstackResponse_Stack_UpdateComplete.json"); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/volumeGroupHeatStackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_Created_VfModule.json"); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/baseVfHeatStackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_Created_VfModule.json"); - mockOpenStackPutStack("null/stackId", HttpStatus.SC_OK); - mockOpenstackGetWithResponse("/mockPublicUrl/stacks/null/stackId",HttpStatus.SC_OK,"OpenstackResponse_Stack_UpdateComplete.json"); - - VfModuleCustomization vfModuleCustomization = getVfModuleCustomization(); - vfModuleCustomization.getVfModule().getModuleHeatTemplate().setParameters(new HashSet<>()); - Map map = new HashMap<>(); - map.put("key1", "value1"); - instance.updateVfModule("MTN13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", - "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", - "b4ea86b4-253f-11e7-93ae-92361f002671", map, msoRequest, new Holder>(), - new Holder()); - } - - @Test - @Ignore - public void deleteVnfTest() throws MsoException { - - Map outputs = new HashMap<>(); - outputs.put("Key1", "value1"); - when(heatUtils.queryStackForOutputs("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12")).thenReturn(outputs); - - MsoVnfAdapterImpl instance = new MsoVnfAdapterImpl(); - MsoRequest msoRequest = getMsoRequest(); - try { - instance.deleteVfModule("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12", msoRequest, - new Holder>()); - } catch (Exception e) { - - } - } - - private VfModuleCustomization getVfModuleCustomization() { - VfModuleCustomization vfModuleCustomization = new VfModuleCustomization(); - VfModule vfModule = new VfModule(); - vfModule.setIsBase(false); - - HeatTemplate heatTemplate = new HeatTemplate(); - heatTemplate.setTemplateBody(""); - heatTemplate.setTimeoutMinutes(200); - HeatTemplateParam heatTemplateParam = new HeatTemplateParam(); - heatTemplateParam.setParamAlias("ParamAlias"); - heatTemplateParam.setRequired(true); - heatTemplateParam.setParamName("test"); - Set set = new HashSet(); - set.add(heatTemplateParam); - heatTemplate.setParameters(set); - vfModule.setModuleHeatTemplate(heatTemplate); - vfModuleCustomization.setVfModule(vfModule); - - HeatEnvironment heatEnvironment = new HeatEnvironment(); - heatEnvironment.setEnvironment("parameters:ist"); - vfModuleCustomization.setHeatEnvironment(heatEnvironment); - return vfModuleCustomization; - } + @Rule + public ExpectedException expectedException = ExpectedException.none(); + + @Autowired + private MsoHeatUtils heatUtils; + + @Autowired + MsoVnfAdapterImpl instance; + + String vnfName = "DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId"; + + @Test + @Ignore + public void healthCheckVNFTest() { + MsoVnfAdapterImpl instance = new MsoVnfAdapterImpl(); + instance.healthCheck(); + } + + @Test + public void createVnfTest() throws Exception { + StackInfo info = new StackInfo(); + info.setStatus(HeatStatus.CREATED); + + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_200(wireMockServer); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("MTN13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_HeatStatusUpdating() throws Exception { + expectedException.expect(VnfAlreadyExists.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + + wireMockServer.stubFor(get( + urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId")) + .willReturn(aResponse().withHeader("Content-Type", "application/json") + .withBodyFile("OpenstackResponse_Stack_Updating_VfModule.json") + .withStatus(HttpStatus.SC_OK))); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_HeatStatusUpdated() throws Exception { + expectedException.expect(VnfAlreadyExists.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + + wireMockServer.stubFor(get( + urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId")) + .willReturn(aResponse().withHeader("Content-Type", "application/json") + .withBodyFile("OpenstackResponse_StackId.json").withStatus(HttpStatus.SC_OK))); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_HeatStatusFailed() throws Exception { + expectedException.expect(VnfAlreadyExists.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + + wireMockServer.stubFor(get( + urlPathEqualTo("/mockPublicUrl/stacks/DEV-VF-1802-it3-pwt3-v6-vSAMP10a-addon2-Replace-1001/stackId")) + .willReturn(aResponse().withHeader("Content-Type", "application/json") + .withBodyFile("OpenstackResponse_Stack_Failed_VfModule.json") + .withStatus(HttpStatus.SC_OK))); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_HeatStatusCreated() throws Exception { + expectedException.expect(VnfAlreadyExists.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + + mockOpenStackGetStackVfModule_200(wireMockServer); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.TRUE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + + @Test + public void createVnfTest_ExceptionInGettingHeat() throws Exception { + expectedException.expect(VnfException.class); + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_NestedHeatStatusNotFound() throws Exception { + expectedException.expect(VnfException.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_404(wireMockServer); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_ExceptionInGettingNestedHeat() throws Exception { + expectedException.expect(VnfException.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_404(wireMockServer); + wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")) + .willReturn(aResponse().withHeader("Content-Type", "application/json") + .withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR))); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_NestedBaseHeatStatus_NotFound() throws Exception { + expectedException.expect(VnfException.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_404(wireMockServer); + wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")) + .willReturn(aResponse().withHeader("Content-Type", "application/json") + .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_ExceptionInGettingBaseNestedHeat() throws Exception { + expectedException.expect(VnfException.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_404(wireMockServer); + wireMockServer + .stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse() + .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); + wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")) + .willReturn(aResponse().withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR))); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_ExceptionInCreateStack() throws Exception { + expectedException.expect(VnfException.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_404(wireMockServer); + wireMockServer + .stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse() + .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); + wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse() + .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); + + VfModuleCustomization vfModuleCustomization = new VfModuleCustomization(); + VfModule vfModule = new VfModule(); + vfModule.setIsBase(false); + + HeatTemplate heatTemplate = new HeatTemplate(); + heatTemplate.setTemplateBody(""); + heatTemplate.setTimeoutMinutes(200); + vfModule.setModuleHeatTemplate(heatTemplate); + vfModuleCustomization.setVfModule(vfModule); + + HeatEnvironment heatEnvironment = new HeatEnvironment(); + heatEnvironment.setEnvironment("ist"); + vfModuleCustomization.setHeatEnvironment(heatEnvironment); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "9b339a61-69ca-465f-86b8-1c72c582b8e8", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + @Test + public void createVnfTest_ModelCustUuidIsNull() throws Exception { + expectedException.expect(VnfException.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_404(wireMockServer); + wireMockServer + .stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse() + .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); + wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse() + .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); + + VfModuleCustomization vfModuleCustomization = new VfModuleCustomization(); + VfModule vfModule = new VfModule(); + vfModule.setIsBase(false); + + HeatTemplate heatTemplate = new HeatTemplate(); + heatTemplate.setTemplateBody(""); + heatTemplate.setTimeoutMinutes(200); + vfModule.setModuleHeatTemplate(heatTemplate); + vfModuleCustomization.setVfModule(vfModule); + + HeatEnvironment heatEnvironment = new HeatEnvironment(); + heatEnvironment.setEnvironment("ist"); + vfModuleCustomization.setHeatEnvironment(heatEnvironment); + + VnfResource vnfResource = new VnfResource(); + vnfResource.setAicVersionMin("1"); + vnfResource.setAicVersionMin("3"); + + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "XVFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", null, map, Boolean.FALSE, Boolean.TRUE, + Boolean.FALSE, msoRequest, new Holder<>(), new Holder>(), + new Holder()); + } + + @Test + public void createVnfTest_HeatEnvironment_ContainsParameters() throws Exception { + expectedException.expect(VnfException.class); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_404(wireMockServer); + wireMockServer + .stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn(aResponse() + .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); + wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/baseVfHeatStackId")).willReturn(aResponse() + .withBodyFile("OpenstackResponse_Stack_Created_VfModule.json").withStatus(HttpStatus.SC_OK))); + + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.createVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "", vnfName, "", + "VFMOD", "volumeGroupHeatStackId", "baseVfHeatStackId", "88a6ca3ee0394ade9403f075db23167e", map, + Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, msoRequest, new Holder<>(), + new Holder>(), new Holder()); + } + + private MsoRequest getMsoRequest() { + MsoRequest msoRequest = new MsoRequest(); + msoRequest.setRequestId("12345"); + msoRequest.setServiceInstanceId("12345"); + return msoRequest; + } + + @Test + public void updateVnfTest_CloudSiteIdNotFound() throws Exception { + expectedException.expect(VnfException.class); + MsoRequest msoRequest = getMsoRequest(); + + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", "vSAMP12", + "VFMOD", "volumeGroupHeatStackId|1", "baseVfHeatStackId", "vfModuleStackId", + "88a6ca3ee0394ade9403f075db23167e", map, msoRequest, new Holder>(), + new Holder()); + } + + @Test + public void updateVnfTest_HeatStackNotFound() throws Exception { + expectedException.expect(VnfNotFound.class); + MsoRequest msoRequest = getMsoRequest(); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", + "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e", + map, msoRequest, new Holder>(), new Holder()); + } + + @Test + public void updateVnfTest_ExceptionInGettingNestedHeatStack() throws Exception { + expectedException.expect(VnfException.class); + MsoRequest msoRequest = getMsoRequest(); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_200(wireMockServer); + wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")) + .willReturn(aResponse().withHeader("Content-Type", "application/json") + .withStatus(HttpStatus.SC_INTERNAL_SERVER_ERROR))); + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", + "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e", + map, msoRequest, new Holder>(), new Holder()); + } + + @Test + public void updateVnfTest_NestedHeatStackNotFound() throws Exception { + expectedException.expect(VnfException.class); + MsoRequest msoRequest = getMsoRequest(); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_200(wireMockServer); + wireMockServer.stubFor(get(urlPathEqualTo("/mockPublicUrl/stacks/volumeGroupHeatStackId")).willReturn( + aResponse().withHeader("Content-Type", "application/json").withStatus(HttpStatus.SC_NOT_FOUND))); + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", + "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e", + map, msoRequest, new Holder>(), new Holder()); + } + + @Test + public void updateVnfTest_ExceptionInGettingNestedBaseHeatStack() throws Exception { + expectedException.expect(VnfException.class); + MsoRequest msoRequest = getMsoRequest(); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_200(wireMockServer); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_Created_VfModule.json"); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", + HttpStatus.SC_INTERNAL_SERVER_ERROR, "OpenstackResponse_Stack_Created_VfModule.json"); + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", + "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e", + map, msoRequest, new Holder>(), new Holder()); + } + + @Test + public void updateVnfTest_NestedBaseHeatStackNotFound() throws Exception { + expectedException.expect(VnfException.class); + MsoRequest msoRequest = getMsoRequest(); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_200(wireMockServer); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_Created_VfModule.json"); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", HttpStatus.SC_NOT_FOUND, + "OpenstackResponse_Stack_Created_VfModule.json"); + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", + "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e", + map, msoRequest, new Holder>(), new Holder()); + } + + @Test + public void updateVnfTest_MissingParams() throws Exception { + expectedException.expect(VnfException.class); + MsoRequest msoRequest = getMsoRequest(); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_200(wireMockServer); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_Created_VfModule.json"); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_Created_VfModule.json"); + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", + "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e", + map, msoRequest, new Holder>(), new Holder()); + } + + @Test + public void updateVnfTest_UpdateStackException() throws Exception { + expectedException.expect(VnfException.class); + MsoRequest msoRequest = getMsoRequest(); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenStackGetStackVfModule_200(wireMockServer); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_Created_VfModule.json"); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_Created_VfModule.json"); + + VfModuleCustomization vfModuleCustomization = getVfModuleCustomization(); + vfModuleCustomization.getVfModule().getModuleHeatTemplate().setParameters(new HashSet<>()); + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("mtn13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", + "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", "88a6ca3ee0394ade9403f075db23167e", + map, msoRequest, new Holder>(), new Holder()); + } + + @Test + public void updateVnfTest() throws Exception { + MsoRequest msoRequest = getMsoRequest(); + mockOpenStackResponseAccess(wireMockServer, wireMockPort); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/" + vnfName, HttpStatus.SC_OK, + "OpenstackResponse_Stack_UpdateComplete.json"); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/volumeGroupHeatStackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_Created_VfModule.json"); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/baseVfHeatStackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_Created_VfModule.json"); + mockOpenStackPutStack(wireMockServer, "null/stackId", HttpStatus.SC_OK); + mockOpenstackGetWithResponse(wireMockServer, "/mockPublicUrl/stacks/null/stackId", HttpStatus.SC_OK, + "OpenstackResponse_Stack_UpdateComplete.json"); + + VfModuleCustomization vfModuleCustomization = getVfModuleCustomization(); + vfModuleCustomization.getVfModule().getModuleHeatTemplate().setParameters(new HashSet<>()); + Map map = new HashMap<>(); + map.put("key1", "value1"); + instance.updateVfModule("MTN13", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vnf", "1", vnfName, "VFMOD", + "volumeGroupHeatStackId", "baseVfHeatStackId", "vfModuleStackId", + "b4ea86b4-253f-11e7-93ae-92361f002671", map, msoRequest, new Holder>(), + new Holder()); + } + + @Test + @Ignore + public void deleteVnfTest() throws MsoException { + + Map outputs = new HashMap<>(); + outputs.put("Key1", "value1"); + when(heatUtils.queryStackForOutputs("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12")) + .thenReturn(outputs); + + MsoVnfAdapterImpl instance = new MsoVnfAdapterImpl(); + MsoRequest msoRequest = getMsoRequest(); + try { + instance.deleteVfModule("mdt1", "CloudOwner", "88a6ca3ee0394ade9403f075db23167e", "vSAMP12", msoRequest, + new Holder>()); + } catch (Exception e) { + + } + } + + private VfModuleCustomization getVfModuleCustomization() { + VfModuleCustomization vfModuleCustomization = new VfModuleCustomization(); + VfModule vfModule = new VfModule(); + vfModule.setIsBase(false); + + HeatTemplate heatTemplate = new HeatTemplate(); + heatTemplate.setTemplateBody(""); + heatTemplate.setTimeoutMinutes(200); + HeatTemplateParam heatTemplateParam = new HeatTemplateParam(); + heatTemplateParam.setParamAlias("ParamAlias"); + heatTemplateParam.setRequired(true); + heatTemplateParam.setParamName("test"); + Set set = new HashSet(); + set.add(heatTemplateParam); + heatTemplate.setParameters(set); + vfModule.setModuleHeatTemplate(heatTemplate); + vfModuleCustomization.setVfModule(vfModule); + + HeatEnvironment heatEnvironment = new HeatEnvironment(); + heatEnvironment.setEnvironment("parameters:ist"); + vfModuleCustomization.setHeatEnvironment(heatEnvironment); + return vfModuleCustomization; + } }