0e72b769a531e7ae7bfc8b0362220bc819cf5dc6
[so.git] /
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 //@Ignore\r
53 public class DeleteNetworkInstanceTest extends WorkflowTest {\r
54     @WorkflowTestTransformer\r
55     public static final ResponseTransformer sdncAdapterMockTransformer =\r
56             new SDNCAdapterNetworkTopologyMockTransformer();\r
57 \r
58     @Rule\r
59     public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =\r
60             new SDNCAdapterCallbackRule(processEngineRule);\r
61 \r
62     /**\r
63      * End-to-End flow - Unit test for DeleteNetworkInstance.bpmn\r
64      * - String input & String response\r
65      */\r
66 \r
67     @Test\r
68     //@Ignore\r
69     @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",\r
70             "subprocess/DoDeleteNetworkInstance.bpmn",\r
71             "subprocess/DoDeleteNetworkInstanceRollback.bpmn",\r
72             "subprocess/FalloutHandler.bpmn",\r
73             "subprocess/CompleteMsoProcess.bpmn",\r
74             "subprocess/SDNCAdapterV1.bpmn"})\r
75 \r
76     public void shouldInvokeServiceDeleteNetworkInstance_VID_Success() throws Exception {\r
77 \r
78         System.out.println("----------------------------------------------------------");\r
79         System.out.println("      Success VID - DeleteNetworkInstance flow Started!   ");\r
80         System.out.println("----------------------------------------------------------");\r
81 \r
82         // setup simulators\r
83         mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>delete");\r
84         MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");\r
85         MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");\r
86         mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
87         MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");\r
88 \r
89         Map<String, String> variables = new HashMap<>();\r
90         variables.put("mso-request-id", "testRequestId");\r
91         variables.put("requestId", "testRequestId");\r
92         variables.put("isBaseVfModule", "true");\r
93         variables.put("recipeTimeout", "0");\r
94         variables.put("requestAction", "DELETE");\r
95         variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");\r
96         variables.put("vnfId", "");\r
97         variables.put("vfModuleId", "");\r
98         variables.put("volumeGroupId", "");\r
99         variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");\r
100         variables.put("serviceType", "MOG");\r
101         variables.put("vfModuleType", "");\r
102         variables.put("networkType", "modelName");\r
103         variables.put("bpmnRequest", getDeleteNetworkInstanceInfraRequest());\r
104 \r
105         executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);\r
106 \r
107         Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));\r
108         Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));\r
109 \r
110         String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");\r
111         Assert.assertNotNull(workflowResp);\r
112         System.out.println("DeleteNetworkInstanceTest.shouldInvokeServiceDeleteNetworkInstance_Success() WorkflowResponse:\n" + workflowResp);\r
113 \r
114         String completeMsoProcessRequest =\r
115                 "<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + '\n'\r
116                         + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + '\n'\r
117                         + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + '\n'\r
118                         + "   <request-info>" + '\n'\r
119                         + "      <request-id>testRequestId</request-id>" + '\n'\r
120                         + "      <action>DELETE</action>" + '\n'\r
121                         + "      <source>VID</source>" + '\n'\r
122                         + "   </request-info>" + '\n'\r
123                         + "   <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>" + '\n'\r
124                         + "   <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>" + '\n'\r
125                         + "</aetgt:MsoCompletionRequest>";\r
126 \r
127         Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));\r
128 \r
129         System.out.println("----------------------------------------------------------");\r
130         System.out.println("     Success VID - DeleteNetworkInstance flow Completed   ");\r
131         System.out.println("----------------------------------------------------------");\r
132 \r
133 \r
134     }\r
135 \r
136     @Test\r
137     //@Ignore\r
138     @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",\r
139             "subprocess/DoDeleteNetworkInstance.bpmn",\r
140             //"subprocess/DoDeleteNetworkInstanceRollback.bpmn",\r
141             "subprocess/FalloutHandler.bpmn",\r
142             "subprocess/CompleteMsoProcess.bpmn",\r
143             "subprocess/SDNCAdapterV1.bpmn"})\r
144 \r
145     public void shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() throws Exception {\r
146 \r
147         System.out.println("----------------------------------------------------------");\r
148         System.out.println("      Success vIPER - DeleteNetworkInstance flow Started! ");\r
149         System.out.println("----------------------------------------------------------");\r
150 \r
151         // setup simulators\r
152         mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>unassign");\r
153         mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>deactivate");\r
154         MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");\r
155         MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");\r
156         mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
157         MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");\r
158 \r
159         String networkModelInfo = "  {\"modelName\": \"modelName\", " + '\n' +\r
160                 "   \"networkType\": \"modelName\" }";\r
161 \r
162         Map<String, String> variables = new HashMap<>();\r
163         variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");\r
164         variables.put("msoRequestId", "testRequestId");\r
165         variables.put("requestId", "testRequestId");\r
166         variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");\r
167         variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");\r
168         variables.put("networkName", "HSL_direct_net_2");\r
169         variables.put("lcpCloudRegionId", "RDM2WAGPLCP");\r
170         variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");\r
171         variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");\r
172         variables.put("disableRollback", "false");  // 1702\r
173         variables.put("failIfExists", "false");\r
174         //variables.put("sdncVersion", "1702");\r
175         variables.put("sdncVersion", "1707");\r
176         variables.put("subscriptionServiceType", "MSO-dev-service-type");\r
177         variables.put("networkModelInfo", networkModelInfo);\r
178 \r
179         executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);\r
180 \r
181         Assert.assertNotNull("DELNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));\r
182         Assert.assertEquals("true", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));\r
183 \r
184         String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");\r
185         Assert.assertNotNull(workflowResp);\r
186         System.out.println("DeleteNetworkInstanceTest.shouldInvokeServiceDeleteNetworkInstance_vIPER_Success() WorkflowResponse:\n" + workflowResp);\r
187 \r
188         String completeMsoProcessRequest =\r
189                 "<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + '\n'\r
190                         + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + '\n'\r
191                         + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + '\n'\r
192                         + "   <request-info>" + '\n'\r
193                         + "      <request-id>testRequestId</request-id>" + '\n'\r
194                         + "      <action>DELETE</action>" + '\n'\r
195                         + "      <source>VID</source>" + '\n'\r
196                         + "   </request-info>" + '\n'\r
197                         + "   <aetgt:status-message>Network has been deleted successfully.</aetgt:status-message>" + '\n'\r
198                         + "   <aetgt:mso-bpel-name>BPMN Network action: DELETE</aetgt:mso-bpel-name>" + '\n'\r
199                         + "</aetgt:MsoCompletionRequest>";\r
200 \r
201         Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_CompleteMsoProcessRequest"));\r
202 \r
203         System.out.println("----------------------------------------------------------");\r
204         System.out.println("     Success VID - DeleteNetworkInstance flow Completed   ");\r
205         System.out.println("----------------------------------------------------------");\r
206 \r
207 \r
208     }\r
209 \r
210     @Test\r
211     //@Ignore\r
212     @Deployment(resources = {"process/DeleteNetworkInstance.bpmn",\r
213             "subprocess/DoDeleteNetworkInstance.bpmn",\r
214             "subprocess/DoDeleteNetworkInstanceRollback.bpmn",\r
215             "subprocess/FalloutHandler.bpmn",\r
216             "subprocess/CompleteMsoProcess.bpmn",\r
217             "subprocess/SDNCAdapterV1.bpmn"})\r
218 \r
219     public void shouldInvokeServiceDeleteNetworkInstanceInfra_vIPER_Rollback() throws Exception {\r
220         // Rollback is not Applicable for DeleteNetwork (no requirements). Rollback should not be invoked.\r
221         System.out.println("----------------------------------------------------------");\r
222         System.out.println("      Rollback - DeleteNetworkInstance flow Started!      ");\r
223         System.out.println("----------------------------------------------------------");\r
224 \r
225         // setup simulatores\r
226         mockSDNCAdapter("/SDNCAdapter", "SvcAction>unassign", 500, "");\r
227         mockSDNCAdapterTopology("DeleteNetworkV2mock/sdncDeleteNetworkTopologySimResponse.xml", "SvcAction>deactivate");\r
228         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");\r
229         MockNetworkAdapter("bdc5efe8-404a-409b-85f6-0dcc9eebae30", 200, "deleteNetworkResponse_Success.xml");\r
230         MockNetworkAdapterContainingRequest("createNetworkRequest", 200, "CreateNetworkV2/createNetworkResponse_Success.xml");\r
231         MockGetNetworkByIdWithDepth("bdc5efe8-404a-409b-85f6-0dcc9eebae30", "DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml", "1");\r
232         mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
233         MockGetCloudRegion("RDM2WAGPLCP", 200, "DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml");\r
234 \r
235         String networkModelInfo = "  {\"modelCustomizationId\": \"uuid-nrc-001-1234\", " + '\n' +\r
236                 "   \"modelInvariantId\": \"was-ist-das-001-1234\" }";\r
237 \r
238         Map<String, String> variables = new HashMap<>();\r
239         variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");\r
240         variables.put("msoRequestId", "testRequestId");\r
241         variables.put("requestId", "testRequestId");\r
242         variables.put("serviceInstanceId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");\r
243         variables.put("networkId", "bdc5efe8-404a-409b-85f6-0dcc9eebae30");\r
244         variables.put("networkName", "HSL_direct_net_2");\r
245         variables.put("lcpCloudRegionId", "RDM2WAGPLCP");\r
246         variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");\r
247         variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");\r
248         variables.put("disableRollback", "false");  // 1702\r
249         variables.put("failIfExists", "false");\r
250         variables.put("sdncVersion", "1702");\r
251         variables.put("subscriptionServiceType", "MSO-dev-service-type");\r
252         variables.put("networkModelInfo", networkModelInfo);\r
253 \r
254         executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);\r
255         //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "DeleteNetworkInstance", variables);\r
256         //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());\r
257 \r
258         String workflowResp = BPMNUtil.getVariable(processEngineRule, "DeleteNetworkInstance", "WorkflowResponse");\r
259         Assert.assertNotNull(workflowResp);\r
260 \r
261         Assert.assertNotNull("DELNI_FalloutHandlerRequest - ", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_FalloutHandlerRequest"));\r
262         Assert.assertEquals("false", getVariable(processEngineRule, "DeleteNetworkInstance", "DELNI_Success"));\r
263         Assert.assertEquals("false", BPMNUtil.getVariable(processEngineRule, "DoDeleteNetworkInstance", "DELNWKI_Success"));\r
264 \r
265         System.out.println("----------------------------------------------------------");\r
266         System.out.println("     Rollback - DeleteNetworkInstanceModular flow Completed     ");\r
267         System.out.println("----------------------------------------------------------");\r
268 \r
269 \r
270     }\r
271 \r
272 \r
273     // *****************\r
274     // Utility Section\r
275     // *****************\r
276 \r
277     public String getDeleteNetworkInstanceInfraRequest() {\r
278 \r
279         String request =\r
280                 "{ \"requestDetails\": { " + '\n' +\r
281                         "      \"modelInfo\": { " + '\n' +\r
282                         "         \"modelType\": \"modelType\", " + '\n' +\r
283                         "         \"modelCustomizationId\": \"f21df226-8093-48c3-be7e-0408fcda0422\", " + '\n' +\r
284                         "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +\r
285                         "         \"modelVersion\": \"1.0\" " + '\n' +\r
286                         "      }, " + '\n' +\r
287                         "      \"cloudConfiguration\": { " + '\n' +\r
288                         "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +\r
289                         "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +\r
290                         "      }, " + '\n' +\r
291                         "      \"requestInfo\": { " + '\n' +\r
292                         "          \"instanceName\": \"HSL_direct_net_2\", " + '\n' +\r
293                         "          \"source\": \"VID\", " + '\n' +\r
294                         "          \"suppressRollback\": \"false\", " + '\n' +\r
295                         "          \"callbackUrl\": \"\" " + '\n' +\r
296                         "      }, " + '\n' +\r
297                         "      \"requestParameters\": { " + '\n' +\r
298                         "          \"backoutOnFailure\": true, " + '\n' +\r
299                         "          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +\r
300                         "          \"userParams\": {} " + '\n' +\r
301                         "      }        " + '\n' +\r
302                         " } " + '\n' +\r
303                         "}";\r
304         return request;\r
305 \r
306     }\r
307 \r
308 \r
309     public String getDeleteNetworkInstanceInfraRequest_MissingId() {\r
310 \r
311         String request =\r
312                 "{ \"requestDetails\": { " + '\n' +\r
313                         "      \"modelInfo\": { " + '\n' +\r
314                         "         \"modelType\": \"modelType\", " + '\n' +\r
315                         "         \"modelId\": \"modelId\", " + '\n' +\r
316                         "         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +\r
317                         "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +\r
318                         "         \"modelVersion\": \"1\" " + '\n' +\r
319                         "      }, " + '\n' +\r
320                         "      \"cloudConfiguration\": { " + '\n' +\r
321                         "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +\r
322                         "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +\r
323                         "      }, " + '\n' +\r
324                         "      \"requestInfo\": { " + '\n' +\r
325                         "          \"instanceName\": \"HSL_direct_net_2\", " + '\n' +\r
326                         "          \"source\": \"VID\", " + '\n' +\r
327                         "          \"callbackUrl\": \"\" " + '\n' +\r
328                         "      }, " + '\n' +\r
329                         "      \"requestParameters\": { " + '\n' +\r
330                         "          \"backoutOnFailure\": true, " + '\n' +\r
331                         "          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +\r
332                         "          \"userParams\": [] " + '\n' +\r
333                         "      }        " + '\n' +\r
334                         " } " + '\n' +\r
335                         "}";\r
336         return request;\r
337 \r
338     }\r
339 \r
340 }