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
54 public class DeleteVnfInfraTest extends WorkflowTest {
56 private String deleteVnfInfraRequest;
57 private String deleteVnfInfraRequestCascadeDelete;
59 public DeleteVnfInfraTest () throws IOException {
60 deleteVnfInfraRequest = FileUtil.readResourceFile("__files/InfrastructureFlows/CreateVnfInfraRequest.json");
61 deleteVnfInfraRequestCascadeDelete = FileUtil.readResourceFile("__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json");
65 @Deployment(resources = {"subprocess/GenericGetVnf.bpmn",
66 "subprocess/GenericDeleteVnf.bpmn",
67 "subprocess/DoDeleteVnf.bpmn",
68 "process/DeleteVnfInfra.bpmn",
69 "subprocess/FalloutHandler.bpmn",
70 "subprocess/CompleteMsoProcess.bpmn"})
71 public void testDeleteVnfInfra_success() throws Exception{
73 stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]depth=1"))
74 .willReturn(aResponse()
76 .withHeader("Content-Type", "text/xml")
77 .withBodyFile("GenericFlows/getGenericVnfByNameResponse.xml")));
79 MockDeleteGenericVnf();
80 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
82 Map<String, String> variables = new HashMap<String, String>();
83 setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
84 WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
85 waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
86 Object cascadeDelete = BPMNUtil.getRawVariable(processEngineRule, "DeleteVnfInfra", "DELVI_cascadeDelete");
87 String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
88 String inUse = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "DELVI_vnfInUse");
89 String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
90 String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowException");
92 assertEquals(false, cascadeDelete);
93 assertEquals("true", found);
94 assertEquals("false", inUse);
95 assertEquals("Success", response);
96 assertEquals(null, workflowException);
100 @Ignore // DoDeleteVnfAndModules not complete yet
101 @Deployment(resources = {"subprocess/GenericGetVnf.bpmn",
102 "subprocess/GenericDeleteVnf.bpmn",
103 "subprocess/DoDeleteVnfAndModules.bpmn",
104 "process/DeleteVnfInfra.bpmn",
105 "subprocess/FalloutHandler.bpmn",
106 "subprocess/CompleteMsoProcess.bpmn"})
107 public void testDeleteVnfInfra_cascadeDelete() throws Exception{
108 MockGetGenericVnfById();
109 MockDeleteGenericVnf();
110 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
112 Map<String, String> variables = new HashMap<String, String>();
113 setVariables(variables, deleteVnfInfraRequestCascadeDelete, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
114 WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
115 waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
117 String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
118 String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
119 String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
120 String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowException");
121 Object cascadeDelete = BPMNUtil.getRawVariable(processEngineRule, "DeleteVnfInfra", "DELVI_cascadeDelete");
123 assertEquals(true, cascadeDelete);
124 assertEquals("true", found);
125 assertEquals("false", inUse);
126 assertEquals("Success", response);
127 assertEquals(null, workflowException);
131 @Deployment(resources = {"subprocess/GenericGetVnf.bpmn",
132 "subprocess/GenericDeleteVnf.bpmn",
133 "subprocess/DoDeleteVnf.bpmn",
134 "process/DeleteVnfInfra.bpmn",
135 "subprocess/FalloutHandler.bpmn",
136 "subprocess/CompleteMsoProcess.bpmn"})
137 public void testDeleteVnfInfra_success_vnfNotFound() throws Exception{
139 MockDeleteGenericVnf_404();
140 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
142 Map<String, String> variables = new HashMap<String, String>();
143 setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
145 WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
146 waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
148 String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
149 String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
150 String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
151 String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "WorkflowException");
153 assertEquals("false", found);
154 assertEquals("false", inUse);
155 assertEquals("Success", response);
156 assertEquals(null, workflowException);
160 @Deployment(resources = {"subprocess/GenericGetVnf.bpmn",
161 "subprocess/GenericDeleteVnf.bpmn",
162 "subprocess/DoDeleteVnf.bpmn",
163 "process/DeleteVnfInfra.bpmn",
164 "subprocess/FalloutHandler.bpmn",
165 "subprocess/CompleteMsoProcess.bpmn"})
166 public void testDeleteVnfInfra_error_vnfInUse() throws Exception{
168 stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]depth=1"))
169 .willReturn(aResponse()
171 .withHeader("Content-Type", "text/xml")
172 .withBodyFile("GenericFlows/getGenericVnfResponse_hasRelationships.xml")));
173 MockDeleteGenericVnf();
174 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
176 Map<String, String> variables = new HashMap<String, String>();
177 setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
179 WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
180 waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
182 String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
183 String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
184 String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "SavedWorkflowException1");
186 String exWfex = "WorkflowException[processKey=DoDeleteVnf,errorCode=5000,errorMessage=Can't Delete Generic Vnf. Generic Vnf is still in use.]";
188 assertEquals("true", found);
189 assertEquals("true", inUse);
190 assertEquals(exWfex, workflowException);
193 private void setVariables(Map<String, String> variables, String request, String requestId, String siId) {
194 variables.put("isDebugLogEnabled", "true");
195 variables.put("bpmnRequest", request);
196 variables.put("mso-request-id", requestId);
197 variables.put("serviceInstanceId",siId);
198 variables.put("vnfId","testVnfId123");