4317a5740532301a7ebdd3e858d83b914d330693
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / DeleteNetworkInstanceTest.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP - SO\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
10  *\r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  *\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
19  */\r
20 \r
21 package org.openecomp.mso.bpmn.infrastructure;\r
22 \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
32 \r
33 import java.util.HashMap;\r
34 import java.util.Map;\r
35 \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
45 \r
46 import com.github.tomakehurst.wiremock.extension.ResponseTransformer;\r
47 \r
48 \r
49 /**\r
50  * Unit test cases for DeleteNetworkInstance.bpmn\r
51  *\r
52  */\r
53 //@Ignore\r
54 public class DeleteNetworkInstanceTest extends WorkflowTest {\r
55         @WorkflowTestTransformer\r
56         public static final ResponseTransformer sdncAdapterMockTransformer =\r
57                 new SDNCAdapterNetworkTopologyMockTransformer();\r
58 \r
59         @Rule\r
60         public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =\r
61                 new SDNCAdapterCallbackRule(processEngineRule);\r
62 \r
63         /**\r
64          * End-to-End flow - Unit test for DeleteNetworkInstance.bpmn\r
65          *  - String input & String response\r
66          */\r
67 \r
68         @Test\r
69         //@Ignore\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
76 \r
77         public void shouldInvokeServiceDeleteNetworkInstance_VID_Success() throws Exception {\r
78 \r
79                 System.out.println("----------------------------------------------------------");\r
80                 System.out.println("      Success VID - DeleteNetworkInstance flow Started!   ");\r
81                 System.out.println("----------------------------------------------------------");\r
82 \r
83                 // setup simulators\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", "1");\r
87                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
88                 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");\r
89 \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
105 \r
106                 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);\r
107 \r
108             Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));\r
109             Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));\r
110 \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
114 \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
127 \r
128             Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));\r
129 \r
130                 System.out.println("----------------------------------------------------------");\r
131                 System.out.println("     Success VID - DeleteNetworkInstance flow Completed   ");\r
132                 System.out.println("----------------------------------------------------------");\r
133 \r
134 \r
135         }\r
136 \r
137         @Test\r
138         //@Ignore\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
145 \r
146         public void shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() throws Exception {\r
147 \r
148                 System.out.println("----------------------------------------------------------");\r
149                 System.out.println("      Success vIPER - DeleteNetworkInstance flow Started! ");\r
150                 System.out.println("----------------------------------------------------------");\r
151 \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", "1");\r
157                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
158                 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");\r
159 \r
160                 String networkModelInfo = "  {\"modelName\": \"modelName\", " + '\n' +\r
161                                           "   \"networkType\": \"modelName\" }";\r
162 \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
179 \r
180                 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);\r
181 \r
182             Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));\r
183             Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));\r
184 \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
188 \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
201 \r
202             Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));\r
203 \r
204                 System.out.println("----------------------------------------------------------");\r
205                 System.out.println("     Success VID - DeleteNetworkInstance flow Completed   ");\r
206                 System.out.println("----------------------------------------------------------");\r
207 \r
208 \r
209         }\r
210 \r
211         @Test\r
212         //@Ignore\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
219 \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
225 \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", "1");\r
233                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
234                 MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");\r
235 \r
236                 String networkModelInfo = "  {\"modelCustomizationId\": \"uuid-nrc-001-1234\", " + '\n' +\r
237                 "   \"modelInvariantId\": \"was-ist-das-001-1234\" }";\r
238 \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
254 \r
255                 executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);\r
256                 //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);\r
257                 //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());\r
258 \r
259                 String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");\r
260                 Assert.assertNotNull(workflowResp);\r
261 \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
265 \r
266                 System.out.println("----------------------------------------------------------");\r
267                 System.out.println("     Rollback - DeleteNetworkInstanceModular flow Completed     ");\r
268                 System.out.println("----------------------------------------------------------");\r
269 \r
270 \r
271         }\r
272 \r
273 \r
274         // *****************\r
275         // Utility Section\r
276         // *****************\r
277 \r
278         public String getDeleteNetworkInstanceInfraRequest() {\r
279 \r
280                 String request =\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
287                                 "      }, " + '\n' +\r
288                                 "      \"cloudConfiguration\": { " + '\n' +\r
289                                 "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +\r
290                                 "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +\r
291                                 "      }, " + '\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
297                                 "      }, " + '\n' +\r
298                                 "      \"requestParameters\": { " + '\n' +\r
299                                 "          \"backoutOnFailure\": true, " + '\n' +\r
300                                 "          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +\r
301                                 "          \"userParams\": {} " + '\n' +\r
302                                 "      }        " + '\n' +\r
303                             " } " + '\n' +\r
304                             "}";\r
305                 return request;\r
306 \r
307         }\r
308 \r
309 \r
310         public String getDeleteNetworkInstanceInfraRequest_MissingId() {\r
311 \r
312                 String request =\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
320                                 "      }, " + '\n' +\r
321                                 "      \"cloudConfiguration\": { " + '\n' +\r
322                                 "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +\r
323                                 "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +\r
324                                 "      }, " + '\n' +\r
325                                 "      \"requestInfo\": { " + '\n' +\r
326                                 "          \"instanceName\": \"HSL_direct_net_2\", " + '\n' +\r
327                                 "          \"source\": \"VID\", " + '\n' +\r
328                                 "          \"callbackUrl\": \"\" " + '\n' +\r
329                                 "      }, " + '\n' +\r
330                                 "      \"requestParameters\": { " + '\n' +\r
331                                 "          \"backoutOnFailure\": true, " + '\n' +\r
332                                 "          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +\r
333                                 "          \"userParams\": [] " + '\n' +\r
334                                 "      }        " + '\n' +\r
335                             " } " + '\n' +\r
336                             "}";\r
337                 return request;\r
338 \r
339         }\r
340 \r
341 }