2 * © 2014 AT&T Intellectual Property. All rights reserved. Used under license from AT&T Intellectual Property.
5 * ============LICENSE_START=======================================================
7 * ================================================================================
8 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
9 * ================================================================================
10 * Licensed under the Apache License, Version 2.0 (the "License");
11 * you may not use this file except in compliance with the License.
12 * You may obtain a copy of the License at
14 * http://www.apache.org/licenses/LICENSE-2.0
16 * Unless required by applicable law or agreed to in writing, software
17 * distributed under the License is distributed on an "AS IS" BASIS,
18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 * See the License for the specific language governing permissions and
20 * limitations under the License.
21 * ============LICENSE_END=========================================================
24 package org.openecomp.mso.bpmn.infrastructure;
26 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
27 import static com.github.tomakehurst.wiremock.client.WireMock.get;
28 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
29 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
30 import static org.junit.Assert.assertEquals;
31 import static org.openecomp.mso.bpmn.common.BPMNUtil.executeWorkFlow;
32 import static org.openecomp.mso.bpmn.common.BPMNUtil.waitForWorkflowToFinish;
33 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
34 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;
35 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf_404;
36 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
38 import java.io.IOException;
39 import java.util.HashMap;
42 import org.camunda.bpm.engine.test.Deployment;
43 import org.junit.Ignore;
44 import org.junit.Test;
45 import org.openecomp.mso.bpmn.common.BPMNUtil;
46 import org.openecomp.mso.bpmn.common.WorkflowTest;
47 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
48 import org.openecomp.mso.bpmn.mock.FileUtil;
51 * Please describe the DeleteVnfInfra.java class
53 public class DeleteVnfInfraTest extends WorkflowTest {
55 private String deleteVnfInfraRequest;
56 private String deleteVnfInfraRequestCascadeDelete;
58 public DeleteVnfInfraTest() throws IOException {
59 deleteVnfInfraRequest = FileUtil.readResourceFile("__files/InfrastructureFlows/CreateVnfInfraRequest.json");
60 deleteVnfInfraRequestCascadeDelete = FileUtil.readResourceFile("__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json");
64 @Deployment(resources = {"subprocess/GenericGetVnf.bpmn",
65 "subprocess/GenericDeleteVnf.bpmn",
66 "subprocess/DoDeleteVnf.bpmn",
67 "process/DeleteVnfInfra.bpmn",
68 "subprocess/FalloutHandler.bpmn",
69 "subprocess/CompleteMsoProcess.bpmn"})
70 public void testDeleteVnfInfra_success() throws Exception {
72 stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]depth=1"))
73 .willReturn(aResponse()
75 .withHeader("Content-Type", "text/xml")
76 .withBodyFile("GenericFlows/getGenericVnfByNameResponse.xml")));
78 MockDeleteGenericVnf();
79 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
81 Map<String, String> variables = new HashMap<>();
82 setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
83 WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
84 waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
85 Object cascadeDelete = BPMNUtil.getRawVariable(processEngineRule, "DeleteVnfInfra", "DELVI_cascadeDelete");
86 String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator");
87 String inUse = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "DELVI_vnfInUse");
88 String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
89 String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowException");
91 assertEquals(false, cascadeDelete);
92 assertEquals("true", found);
93 assertEquals("false", inUse);
94 assertEquals("Success", response);
95 assertEquals(null, workflowException);
99 @Ignore // DoDeleteVnfAndModules not complete yet
100 @Deployment(resources = {"subprocess/GenericGetVnf.bpmn",
101 "subprocess/GenericDeleteVnf.bpmn",
102 "subprocess/DoDeleteVnfAndModules.bpmn",
103 "process/DeleteVnfInfra.bpmn",
104 "subprocess/FalloutHandler.bpmn",
105 "subprocess/CompleteMsoProcess.bpmn"})
106 public void testDeleteVnfInfra_cascadeDelete() throws Exception {
107 MockGetGenericVnfById();
108 MockDeleteGenericVnf();
109 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
111 Map<String, String> variables = new HashMap<>();
112 setVariables(variables, deleteVnfInfraRequestCascadeDelete, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
113 WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
114 waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
116 String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator");
117 String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
118 String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
119 String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowException");
120 Object cascadeDelete = BPMNUtil.getRawVariable(processEngineRule, "DeleteVnfInfra", "DELVI_cascadeDelete");
122 assertEquals(true, cascadeDelete);
123 assertEquals("true", found);
124 assertEquals("false", inUse);
125 assertEquals("Success", response);
126 assertEquals(null, workflowException);
130 @Deployment(resources = {"subprocess/GenericGetVnf.bpmn",
131 "subprocess/GenericDeleteVnf.bpmn",
132 "subprocess/DoDeleteVnf.bpmn",
133 "process/DeleteVnfInfra.bpmn",
134 "subprocess/FalloutHandler.bpmn",
135 "subprocess/CompleteMsoProcess.bpmn"})
136 public void testDeleteVnfInfra_success_vnfNotFound() throws Exception {
138 MockDeleteGenericVnf_404();
139 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
141 Map<String, String> variables = new HashMap<>();
142 setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
144 WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
145 waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
147 String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator");
148 String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
149 String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
150 String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "WorkflowException");
152 assertEquals("false", found);
153 assertEquals("false", inUse);
154 assertEquals("Success", response);
155 assertEquals(null, workflowException);
159 @Deployment(resources = {"subprocess/GenericGetVnf.bpmn",
160 "subprocess/GenericDeleteVnf.bpmn",
161 "subprocess/DoDeleteVnf.bpmn",
162 "process/DeleteVnfInfra.bpmn",
163 "subprocess/FalloutHandler.bpmn",
164 "subprocess/CompleteMsoProcess.bpmn"})
165 public void testDeleteVnfInfra_error_vnfInUse() throws Exception {
167 stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]depth=1"))
168 .willReturn(aResponse()
170 .withHeader("Content-Type", "text/xml")
171 .withBodyFile("GenericFlows/getGenericVnfResponse_hasRelationships.xml")));
172 MockDeleteGenericVnf();
173 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
175 Map<String, String> variables = new HashMap<>();
176 setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
178 WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
179 waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
181 String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator");
182 String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
183 String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "SavedWorkflowException1");
185 String exWfex = "WorkflowException[processKey=DoDeleteVnf,errorCode=5000,errorMessage=Can't Delete Generic Vnf. Generic Vnf is still in use.]";
187 assertEquals("true", found);
188 assertEquals("true", inUse);
189 assertEquals(exWfex, workflowException);
192 private void setVariables(Map<String, String> variables, String request, String requestId, String siId) {
193 variables.put("isDebugLogEnabled", "true");
194 variables.put("bpmnRequest", request);
195 variables.put("mso-request-id", requestId);
196 variables.put("serviceInstanceId", siId);
197 variables.put("vnfId", "testVnfId123");