2 * ============LICENSE_START=======================================================
\r
4 * ================================================================================
\r
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * ================================================================================
\r
7 * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * you may not use this file except in compliance with the License.
\r
9 * You may obtain a copy of the License at
\r
11 * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * Unless required by applicable law or agreed to in writing, software
\r
14 * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * See the License for the specific language governing permissions and
\r
17 * limitations under the License.
\r
18 * ============LICENSE_END=========================================================
\r
21 package org.openecomp.mso.bpmn.infrastructure;
\r
23 import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;
\r
24 import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;
\r
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCloudRegion;
\r
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByIdWithDepth;
\r
27 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapter;
\r
29 import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterContainingRequest;
\r
30 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
\r
31 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapterTopology;
\r
33 import java.util.HashMap;
\r
34 import java.util.Map;
\r
36 import org.camunda.bpm.engine.test.Deployment;
\r
37 import org.junit.Assert;
\r
38 import org.junit.Rule;
\r
39 import org.junit.Test;
\r
40 import org.openecomp.mso.bpmn.common.BPMNUtil;
\r
41 import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;
\r
42 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r
43 import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;
\r
44 import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;
\r
46 import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
\r
50 * Unit test cases for DeleteNetworkInstance.bpmn
\r
54 public class DeleteNetworkInstanceTest extends WorkflowTest {
\r
55 @WorkflowTestTransformer
\r
56 public static final ResponseTransformer sdncAdapterMockTransformer =
\r
57 new SDNCAdapterNetworkTopologyMockTransformer();
\r
60 public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =
\r
61 new SDNCAdapterCallbackRule(processEngineRule);
\r
64 * End-to-End flow - Unit test for DeleteNetworkInstance.bpmn
\r
65 * - String input & String response
\r
70 @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",
\r
71 "subprocess/DoDeleteNetworkInstance.bpmn",
\r
72 "subprocess/DoDeleteNetworkInstanceRollback.bpmn",
\r
73 "subprocess/FalloutHandler.bpmn",
\r
74 "subprocess/CompleteMsoProcess.bpmn",
\r
75 "subprocess/SDNCAdapterV1.bpmn"})
\r
77 public void shouldInvokeServiceDeleteNetworkInstance_VID_Success() throws Exception {
\r
79 System.out.println("----------------------------------------------------------");
\r
80 System.out.println(" Success VID - DeleteNetworkInstance flow Started! ");
\r
81 System.out.println("----------------------------------------------------------");
\r
84 mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>delete");
\r
85 MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");
\r
86 MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "all");
\r
87 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
88 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");
\r
90 Map<String, String> variables = new HashMap<>();
\r
91 variables.put("mso-request-id", "testRequestId");
\r
92 variables.put("requestId", "testRequestId");
\r
93 variables.put("isBaseVfModule", "true");
\r
94 variables.put("recipeTimeout", "0");
\r
95 variables.put("requestAction", "DELETE");
\r
96 variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
97 variables.put("vnfId", "");
\r
98 variables.put("vfModuleId", "");
\r
99 variables.put("volumeGroupId", "");
\r
100 variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");
\r
101 variables.put("serviceType", "MOG");
\r
102 variables.put("vfModuleType", "");
\r
103 variables.put("networkType", "modelName");
\r
104 variables.put("bpmnRequest", getDeleteNetworkInstanceInfraRequest());
\r
106 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);
\r
108 Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));
\r
109 Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));
\r
111 String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");
\r
112 Assert.assertNotNull(workflowResp);
\r
113 System.out.println("DeleteNetworkInstanceTest.shouldInvokeServiceDeleteNetworkInstance_Success() WorkflowResponse:\n" + workflowResp);
\r
115 String completeMsoProcessRequest =
\r
116 "<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + '\n'
\r
117 + " xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + '\n'
\r
118 + " xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + '\n'
\r
119 + " <request-info>" + '\n'
\r
120 + " <request-id>testRequestId</request-id>" + '\n'
\r
121 + " <action>DELETE</action>" + '\n'
\r
122 + " <source>VID</source>" + '\n'
\r
123 + " </request-info>" + '\n'
\r
124 + " <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>" + '\n'
\r
125 + " <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>" + '\n'
\r
126 + "</aetgt:MsoCompletionRequest>";
\r
128 Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));
\r
130 System.out.println("----------------------------------------------------------");
\r
131 System.out.println(" Success VID - DeleteNetworkInstance flow Completed ");
\r
132 System.out.println("----------------------------------------------------------");
\r
139 @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",
\r
140 "subprocess/DoDeleteNetworkInstance.bpmn",
\r
141 //"subprocess/DoDeleteNetworkInstanceRollback.bpmn",
\r
142 "subprocess/FalloutHandler.bpmn",
\r
143 "subprocess/CompleteMsoProcess.bpmn",
\r
144 "subprocess/SDNCAdapterV1.bpmn"})
\r
146 public void shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() throws Exception {
\r
148 System.out.println("----------------------------------------------------------");
\r
149 System.out.println(" Success vIPER - DeleteNetworkInstance flow Started! ");
\r
150 System.out.println("----------------------------------------------------------");
\r
152 // setup simulators
\r
153 mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>unassign");
\r
154 mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>deactivate");
\r
155 MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");
\r
156 MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "all");
\r
157 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
158 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");
\r
160 String networkModelInfo = " {\"modelName\": \"modelName\", " + '\n' +
\r
161 " \"networkType\": \"modelName\" }";
\r
163 Map<String, String> variables = new HashMap<>();
\r
164 variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
\r
165 variables.put("msoRequestId", "testRequestId");
\r
166 variables.put("requestId", "testRequestId");
\r
167 variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
168 variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");
\r
169 variables.put("networkName", "HSL_direct_net_2");
\r
170 variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
\r
171 variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");
\r
172 variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
173 variables.put("disableRollback", "false"); // 1702
\r
174 variables.put("failIfExists", "false");
\r
175 //variables.put("sdncVersion", "1702");
\r
176 variables.put("sdncVersion", "1707");
\r
177 variables.put("subscriptionServiceType", "MSO-dev-service-type");
\r
178 variables.put("networkModelInfo", networkModelInfo);
\r
180 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);
\r
182 Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));
\r
183 Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));
\r
185 String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");
\r
186 Assert.assertNotNull(workflowResp);
\r
187 System.out.println("DeleteNetworkInstanceTest.shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() WorkflowResponse:\n" + workflowResp);
\r
189 String completeMsoProcessRequest =
\r
190 "<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + '\n'
\r
191 + " xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + '\n'
\r
192 + " xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + '\n'
\r
193 + " <request-info>" + '\n'
\r
194 + " <request-id>testRequestId</request-id>" + '\n'
\r
195 + " <action>DELETE</action>" + '\n'
\r
196 + " <source>VID</source>" + '\n'
\r
197 + " </request-info>" + '\n'
\r
198 + " <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>" + '\n'
\r
199 + " <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>" + '\n'
\r
200 + "</aetgt:MsoCompletionRequest>";
\r
202 Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));
\r
204 System.out.println("----------------------------------------------------------");
\r
205 System.out.println(" Success VID - DeleteNetworkInstance flow Completed ");
\r
206 System.out.println("----------------------------------------------------------");
\r
213 @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",
\r
214 "subprocess/DoDeleteNetworkInstance.bpmn",
\r
215 "subprocess/DoDeleteNetworkInstanceRollback.bpmn",
\r
216 "subprocess/FalloutHandler.bpmn",
\r
217 "subprocess/CompleteMsoProcess.bpmn",
\r
218 "subprocess/SDNCAdapterV1.bpmn"})
\r
220 public void shouldInvokeServiceDeleteNetworkInstanceInfra_vIPER_Rollback() throws Exception {
\r
221 // Rollback is not Applicable for DeleteNetwork (no requirements). Rollback should not be invoked.
\r
222 System.out.println("----------------------------------------------------------");
\r
223 System.out.println(" Rollback - DeleteNetworkInstance flow Started! ");
\r
224 System.out.println("----------------------------------------------------------");
\r
226 // setup simulatores
\r
227 mockSDNCAdapter("/SDNCAdapter", "SvcAction>unassign", 500, "");
\r
228 mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>deactivate");
\r
229 mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");
\r
230 MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");
\r
231 MockNetworkAdapterContainingRequest("createNetworkRequest", 200, "CreateNetworkV2/createNetworkResponse_Success.xml");
\r
232 MockGetNetworkByIdWithDepth ("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "all");
\r
233 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
234 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");
\r
236 String networkModelInfo = " {\"modelCustomizationId\": \"uuid-nrc-001-1234\", " + '\n' +
\r
237 " \"modelInvariantId\": \"was-ist-das-001-1234\" }";
\r
239 Map<String, String> variables = new HashMap<>();
\r
240 variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
\r
241 variables.put("msoRequestId", "testRequestId");
\r
242 variables.put("requestId", "testRequestId");
\r
243 variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
244 variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");
\r
245 variables.put("networkName", "HSL_direct_net_2");
\r
246 variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
\r
247 variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");
\r
248 variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
249 variables.put("disableRollback", "false"); // 1702
\r
250 variables.put("failIfExists", "false");
\r
251 variables.put("sdncVersion", "1702");
\r
252 variables.put("subscriptionServiceType", "MSO-dev-service-type");
\r
253 variables.put("networkModelInfo", networkModelInfo);
\r
255 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);
\r
256 //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);
\r
257 //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
\r
259 String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");
\r
260 Assert.assertNotNull(workflowResp);
\r
262 Assert.assertNotNull("DELNI_FalloutHandlerRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_FalloutHandlerRequest"));
\r
263 Assert.assertEquals("false", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));
\r
264 Assert.assertEquals("false", BPMNUtil.getVariable(processEngineRule, "DoDeleteNetworkInstance", "DELNWKI_Success"));
\r
266 System.out.println("----------------------------------------------------------");
\r
267 System.out.println(" Rollback - DeleteNetworkInstanceModular flow Completed ");
\r
268 System.out.println("----------------------------------------------------------");
\r
274 // *****************
\r
276 // *****************
\r
278 public String getDeleteNetworkInstanceInfraRequest() {
\r
281 "{ \"requestDetails\": { " + '\n' +
\r
282 " \"modelInfo\": { " + '\n' +
\r
283 " \"modelType\": \"modelType\", " + '\n' +
\r
284 " \"modelCustomizationId\": \"f21df226-8093-48c3-be7e-0408fcda0422\", " + '\n' +
\r
285 " \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
\r
286 " \"modelVersion\": \"1.0\" " + '\n' +
\r
288 " \"cloudConfiguration\": { " + '\n' +
\r
289 " \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
\r
290 " \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
\r
292 " \"requestInfo\": { " + '\n' +
\r
293 " \"instanceName\": \"HSL_direct_net_2\", " + '\n' +
\r
294 " \"source\": \"VID\", " + '\n' +
\r
295 " \"suppressRollback\": \"false\", " + '\n' +
\r
296 " \"callbackUrl\": \"\" " + '\n' +
\r
298 " \"requestParameters\": { " + '\n' +
\r
299 " \"backoutOnFailure\": true, " + '\n' +
\r
300 " \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
\r
301 " \"userParams\": {} " + '\n' +
\r
310 public String getDeleteNetworkInstanceInfraRequest_MissingId() {
\r
313 "{ \"requestDetails\": { " + '\n' +
\r
314 " \"modelInfo\": { " + '\n' +
\r
315 " \"modelType\": \"modelType\", " + '\n' +
\r
316 " \"modelId\": \"modelId\", " + '\n' +
\r
317 " \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
\r
318 " \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
\r
319 " \"modelVersion\": \"1\" " + '\n' +
\r
321 " \"cloudConfiguration\": { " + '\n' +
\r
322 " \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
\r
323 " \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
\r
325 " \"requestInfo\": { " + '\n' +
\r
326 " \"instanceName\": \"HSL_direct_net_2\", " + '\n' +
\r
327 " \"source\": \"VID\", " + '\n' +
\r
328 " \"callbackUrl\": \"\" " + '\n' +
\r
330 " \"requestParameters\": { " + '\n' +
\r
331 " \"backoutOnFailure\": true, " + '\n' +
\r
332 " \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
\r
333 " \"userParams\": [] " + '\n' +
\r