1 package org.openecomp.mso.bpmn.infrastructure;
\r
3 import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;
\r
4 import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;
\r
5 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCloudRegion;
\r
6 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByIdWithDepth;
\r
7 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
\r
8 import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapter;
\r
9 import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterContainingRequest;
\r
10 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
\r
11 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapterTopology;
\r
13 import java.util.HashMap;
\r
14 import java.util.Map;
\r
16 import org.camunda.bpm.engine.test.Deployment;
\r
17 import org.junit.Assert;
\r
18 import org.junit.Rule;
\r
19 import org.junit.Test;
\r
20 import org.openecomp.mso.bpmn.common.BPMNUtil;
\r
21 import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;
\r
22 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r
23 import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;
\r
24 import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;
\r
26 import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
\r
30 * Unit test cases for DeleteNetworkInstance.bpmn
\r
34 public class DeleteNetworkInstanceTest extends WorkflowTest {
\r
35 @WorkflowTestTransformer
\r
36 public static final ResponseTransformer sdncAdapterMockTransformer =
\r
37 new SDNCAdapterNetworkTopologyMockTransformer();
\r
40 public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =
\r
41 new SDNCAdapterCallbackRule(processEngineRule);
\r
44 * End-to-End flow - Unit test for DeleteNetworkInstance.bpmn
\r
45 * - String input & String response
\r
50 @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",
\r
51 "subprocess/DoDeleteNetworkInstance.bpmn",
\r
52 "subprocess/DoDeleteNetworkInstanceRollback.bpmn",
\r
53 "subprocess/FalloutHandler.bpmn",
\r
54 "subprocess/CompleteMsoProcess.bpmn",
\r
55 "subprocess/SDNCAdapterV1.bpmn"})
\r
57 public void shouldInvokeServiceDeleteNetworkInstance_VID_Success() throws Exception {
\r
59 System.out.println("----------------------------------------------------------");
\r
60 System.out.println(" Success VID - DeleteNetworkInstance flow Started! ");
\r
61 System.out.println("----------------------------------------------------------");
\r
64 mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>delete");
\r
65 MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");
\r
66 MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");
\r
67 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
68 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");
\r
70 Map<String, String> variables = new HashMap<String, String>();
\r
71 variables.put("mso-request-id", "testRequestId");
\r
72 variables.put("requestId", "testRequestId");
\r
73 variables.put("isBaseVfModule", "true");
\r
74 variables.put("recipeTimeout", "0");
\r
75 variables.put("requestAction", "DELETE");
\r
76 variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
77 variables.put("vnfId", "");
\r
78 variables.put("vfModuleId", "");
\r
79 variables.put("volumeGroupId", "");
\r
80 variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");
\r
81 variables.put("serviceType", "MOG");
\r
82 variables.put("vfModuleType", "");
\r
83 variables.put("networkType", "modelName");
\r
84 variables.put("bpmnRequest", getDeleteNetworkInstanceInfraRequest());
\r
86 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);
\r
88 Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));
\r
89 Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));
\r
91 String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");
\r
92 Assert.assertNotNull(workflowResp);
\r
93 System.out.println("DeleteNetworkInstanceTest.shouldInvokeServiceDeleteNetworkInstance_Success() WorkflowResponse:\n" + workflowResp);
\r
95 String completeMsoProcessRequest =
\r
96 "<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + '\n'
\r
97 + " xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + '\n'
\r
98 + " xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + '\n'
\r
99 + " <request-info>" + '\n'
\r
100 + " <request-id>testRequestId</request-id>" + '\n'
\r
101 + " <action>DELETE</action>" + '\n'
\r
102 + " <source>VID</source>" + '\n'
\r
103 + " </request-info>" + '\n'
\r
104 + " <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>" + '\n'
\r
105 + " <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>" + '\n'
\r
106 + "</aetgt:MsoCompletionRequest>";
\r
108 Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));
\r
110 System.out.println("----------------------------------------------------------");
\r
111 System.out.println(" Success VID - DeleteNetworkInstance flow Completed ");
\r
112 System.out.println("----------------------------------------------------------");
\r
119 @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",
\r
120 "subprocess/DoDeleteNetworkInstance.bpmn",
\r
121 //"subprocess/DoDeleteNetworkInstanceRollback.bpmn",
\r
122 "subprocess/FalloutHandler.bpmn",
\r
123 "subprocess/CompleteMsoProcess.bpmn",
\r
124 "subprocess/SDNCAdapterV1.bpmn"})
\r
126 public void shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() throws Exception {
\r
128 System.out.println("----------------------------------------------------------");
\r
129 System.out.println(" Success vIPER - DeleteNetworkInstance flow Started! ");
\r
130 System.out.println("----------------------------------------------------------");
\r
132 // setup simulators
\r
133 mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>unassign");
\r
134 mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>deactivate");
\r
135 MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");
\r
136 MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");
\r
137 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
138 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");
\r
140 String networkModelInfo = " {\"modelName\": \"modelName\", " + '\n' +
\r
141 " \"networkType\": \"modelName\" }";
\r
143 Map<String, String> variables = new HashMap<String, String>();
\r
144 variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
\r
145 variables.put("msoRequestId", "testRequestId");
\r
146 variables.put("requestId", "testRequestId");
\r
147 variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
148 variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");
\r
149 variables.put("networkName", "HSL_direct_net_2");
\r
150 variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
\r
151 variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");
\r
152 variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
153 variables.put("disableRollback", "false"); // 1702
\r
154 variables.put("failIfExists", "false");
\r
155 //variables.put("sdncVersion", "1702");
\r
156 variables.put("sdncVersion", "1707");
\r
157 variables.put("subscriptionServiceType", "MSO-dev-service-type");
\r
158 variables.put("networkModelInfo", networkModelInfo);
\r
160 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);
\r
162 Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));
\r
163 Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));
\r
165 String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");
\r
166 Assert.assertNotNull(workflowResp);
\r
167 System.out.println("DeleteNetworkInstanceTest.shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() WorkflowResponse:\n" + workflowResp);
\r
169 String completeMsoProcessRequest =
\r
170 "<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + '\n'
\r
171 + " xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + '\n'
\r
172 + " xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + '\n'
\r
173 + " <request-info>" + '\n'
\r
174 + " <request-id>testRequestId</request-id>" + '\n'
\r
175 + " <action>DELETE</action>" + '\n'
\r
176 + " <source>VID</source>" + '\n'
\r
177 + " </request-info>" + '\n'
\r
178 + " <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>" + '\n'
\r
179 + " <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>" + '\n'
\r
180 + "</aetgt:MsoCompletionRequest>";
\r
182 Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));
\r
184 System.out.println("----------------------------------------------------------");
\r
185 System.out.println(" Success VID - DeleteNetworkInstance flow Completed ");
\r
186 System.out.println("----------------------------------------------------------");
\r
193 @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",
\r
194 "subprocess/DoDeleteNetworkInstance.bpmn",
\r
195 "subprocess/DoDeleteNetworkInstanceRollback.bpmn",
\r
196 "subprocess/FalloutHandler.bpmn",
\r
197 "subprocess/CompleteMsoProcess.bpmn",
\r
198 "subprocess/SDNCAdapterV1.bpmn"})
\r
200 public void shouldInvokeServiceDeleteNetworkInstanceInfra_vIPER_Rollback() throws Exception {
\r
201 // Rollback is not Applicable for DeleteNetwork (no requirements). Rollback should not be invoked.
\r
202 System.out.println("----------------------------------------------------------");
\r
203 System.out.println(" Rollback - DeleteNetworkInstance flow Started! ");
\r
204 System.out.println("----------------------------------------------------------");
\r
206 // setup simulatores
\r
207 mockSDNCAdapter("/SDNCAdapter", "SvcAction>unassign", 500, "");
\r
208 mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>deactivate");
\r
209 mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");
\r
210 MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");
\r
211 MockNetworkAdapterContainingRequest("createNetworkRequest", 200, "CreateNetworkV2/createNetworkResponse_Success.xml");
\r
212 MockGetNetworkByIdWithDepth ("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");
\r
213 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
214 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");
\r
216 String networkModelInfo = " {\"modelCustomizationId\": \"uuid-nrc-001-1234\", " + '\n' +
\r
217 " \"modelInvariantId\": \"was-ist-das-001-1234\" }";
\r
219 Map<String, String> variables = new HashMap<String, String>();
\r
220 variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
\r
221 variables.put("msoRequestId", "testRequestId");
\r
222 variables.put("requestId", "testRequestId");
\r
223 variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
224 variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");
\r
225 variables.put("networkName", "HSL_direct_net_2");
\r
226 variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
\r
227 variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");
\r
228 variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
229 variables.put("disableRollback", "false"); // 1702
\r
230 variables.put("failIfExists", "false");
\r
231 variables.put("sdncVersion", "1702");
\r
232 variables.put("subscriptionServiceType", "MSO-dev-service-type");
\r
233 variables.put("networkModelInfo", networkModelInfo);
\r
235 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);
\r
236 //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);
\r
237 //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
\r
239 String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");
\r
240 Assert.assertNotNull(workflowResp);
\r
242 Assert.assertNotNull("DELNI_FalloutHandlerRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_FalloutHandlerRequest"));
\r
243 Assert.assertEquals("false", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));
\r
244 Assert.assertEquals("false", BPMNUtil.getVariable(processEngineRule, "DoDeleteNetworkInstance", "DELNWKI_Success"));
\r
246 System.out.println("----------------------------------------------------------");
\r
247 System.out.println(" Rollback - DeleteNetworkInstanceModular flow Completed ");
\r
248 System.out.println("----------------------------------------------------------");
\r
254 // *****************
\r
256 // *****************
\r
258 public String getDeleteNetworkInstanceInfraRequest() {
\r
261 "{ \"requestDetails\": { " + '\n' +
\r
262 " \"modelInfo\": { " + '\n' +
\r
263 " \"modelType\": \"modelType\", " + '\n' +
\r
264 " \"modelCustomizationId\": \"f21df226-8093-48c3-be7e-0408fcda0422\", " + '\n' +
\r
265 " \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
\r
266 " \"modelVersion\": \"1.0\" " + '\n' +
\r
268 " \"cloudConfiguration\": { " + '\n' +
\r
269 " \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
\r
270 " \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
\r
272 " \"requestInfo\": { " + '\n' +
\r
273 " \"instanceName\": \"HSL_direct_net_2\", " + '\n' +
\r
274 " \"source\": \"VID\", " + '\n' +
\r
275 " \"suppressRollback\": \"false\", " + '\n' +
\r
276 " \"callbackUrl\": \"\" " + '\n' +
\r
278 " \"requestParameters\": { " + '\n' +
\r
279 " \"backoutOnFailure\": true, " + '\n' +
\r
280 " \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
\r
281 " \"userParams\": {} " + '\n' +
\r
290 public String getDeleteNetworkInstanceInfraRequest_MissingId() {
\r
293 "{ \"requestDetails\": { " + '\n' +
\r
294 " \"modelInfo\": { " + '\n' +
\r
295 " \"modelType\": \"modelType\", " + '\n' +
\r
296 " \"modelId\": \"modelId\", " + '\n' +
\r
297 " \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
\r
298 " \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
\r
299 " \"modelVersion\": \"1\" " + '\n' +
\r
301 " \"cloudConfiguration\": { " + '\n' +
\r
302 " \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
\r
303 " \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
\r
305 " \"requestInfo\": { " + '\n' +
\r
306 " \"instanceName\": \"HSL_direct_net_2\", " + '\n' +
\r
307 " \"source\": \"VID\", " + '\n' +
\r
308 " \"callbackUrl\": \"\" " + '\n' +
\r
310 " \"requestParameters\": { " + '\n' +
\r
311 " \"backoutOnFailure\": true, " + '\n' +
\r
312 " \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
\r
313 " \"userParams\": [] " + '\n' +
\r