32ed557b9bed33ad00fee180567d21e958b83626
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.mso.bpmn.infrastructure;
22
23 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.*;
24 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.MockUpdateRequestDB;
25 import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterPost;
26 import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockNetworkAdapterRestRollbackDelete;
27 // new mock methods
28 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapterTopology;
29 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter_500;
30
31 import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;
32
33 import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;
34 import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;
35 import static org.junit.Assert.assertEquals;
36
37 import java.util.HashMap;
38 import java.util.Map;
39
40 import org.camunda.bpm.engine.test.Deployment;
41 import org.junit.Assert;
42 import org.junit.Rule;
43 import org.junit.Test;
44
45 import org.openecomp.mso.bpmn.common.BPMNUtil;
46 import org.openecomp.mso.bpmn.common.WorkflowTest;
47 import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;
48 import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;
49 import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
50
51 /**
52  * Unit test cases for CreateNetworkInstance.bpmn
53  */
54 public class CreateNetworkInstanceTest extends WorkflowTest {
55     @WorkflowTestTransformer
56     public static final ResponseTransformer sdncAdapterMockTransformer =
57             new SDNCAdapterNetworkTopologyMockTransformer();
58
59     @Rule
60     public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =
61             new SDNCAdapterCallbackRule(processEngineRule);
62
63     /**
64      * End-to-End flow - Unit test for CreateNetworkInstance.bpmn
65      * - String input & String response
66      */
67
68
69     @Test
70     //@Ignore
71     @Deployment(resources = {"process/CreateNetworkInstance.bpmn",
72             "subprocess/DoCreateNetworkInstance.bpmn",
73             "subprocess/DoCreateNetworkInstanceRollback.bpmn",
74             "subprocess/FalloutHandler.bpmn",
75             "subprocess/CompleteMsoProcess.bpmn",
76             "subprocess/GenericGetService.bpmn",
77             "subprocess/SDNCAdapterV1.bpmn"})
78
79     public void shouldInvokeServiceCreateNetworkInstance_vIPER_Success1() throws Exception {
80
81         System.out.println("-----------------------------------------------------------------");
82         System.out.println("    Success vIPER 1 - CreateNetworkInstance flow Started!       ");
83         System.out.println("-----------------------------------------------------------------");
84
85         // setup simulators
86         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml", "SvcAction>assign");
87         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");
88         MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
89         MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");
90         MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
91         MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
92         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
93         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
94         MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
95         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
96         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
97         MockPutNetworkIdWithDepth("CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");
98         MockUpdateRequestDB("DBUpdateResponse.xml");
99         //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
100         MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
101
102         Map<String, String> variables = setupVariables1();
103         //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
104         executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
105         System.out.println("----------------------------------------------------------");
106         System.out.println("- got workflow response -");
107         System.out.println("----------------------------------------------------------");
108         //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
109
110         assertEquals("true", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
111         assertEquals("true", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
112         Assert.assertNotNull("CRENI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_CompleteMsoProcessRequest"));
113
114         String workflowResp = BPMNUtil.getVariable(processEngineRule, "CreateNetworkInstance", "WorkflowResponse");
115         Assert.assertNotNull(workflowResp);
116
117         System.out.println("----------------------------------------------------------");
118         System.out.println("   Success vIPER 1 - CreateNetworkInstance flow Completed      ");
119         System.out.println("----------------------------------------------------------");
120
121     }
122
123     @Test
124     //@Ignore
125     @Deployment(resources = {"process/CreateNetworkInstance.bpmn",
126             "subprocess/DoCreateNetworkInstance.bpmn",
127             "subprocess/DoCreateNetworkInstanceRollback.bpmn",
128             "subprocess/GenericGetService.bpmn",
129             "subprocess/FalloutHandler.bpmn",
130             "subprocess/CompleteMsoProcess.bpmn",
131             "subprocess/SDNCAdapterV1.bpmn"})
132
133     public void shouldInvokeServiceCreateNetworkInstance_vIPER_Success2() throws Exception {
134
135         System.out.println("----------------------------------------------------------------");
136         System.out.println("  Success viPER 2 - CreateNetworkInstance flow Started!      ");
137         System.out.println("----------------------------------------------------------------");
138
139         // setup simulators
140         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml", "SvcAction>assign");
141         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");
142         MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
143         MockGetNetworkByName_404("CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml", "myOwn_Network");
144         MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
145         MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
146         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
147         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
148         MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
149         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
150         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
151         MockPutNetworkIdWithDepth("CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");
152         MockUpdateRequestDB("DBUpdateResponse.xml");
153         //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
154         MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
155
156         Map<String, String> variables = setupVariables2();
157         //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
158         executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
159         //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
160
161         assertEquals("true", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
162         assertEquals("true", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
163         Assert.assertNotNull("CRENI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_CompleteMsoProcessRequest"));
164
165         String completeMsoProcessRequest =
166                 "<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + '\n'
167                         + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + '\n'
168                         + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + '\n'
169                         + "   <request-info>" + '\n'
170                         + "      <request-id>testRequestId</request-id>" + '\n'
171                         + "      <action>CREATE</action>" + '\n'
172                         + "      <source>VID</source>" + '\n'
173                         + "   </request-info>" + '\n'
174                         + "   <aetgt:status-message>Network has been created successfully.</aetgt:status-message>" + '\n'
175                         + "   <aetgt:mso-bpel-name>BPMN Network action: CREATE</aetgt:mso-bpel-name>" + '\n'
176                         + "</aetgt:MsoCompletionRequest>";
177
178         Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_CompleteMsoProcessRequest"));
179
180         System.out.println("---------------------------------------------------------");
181         System.out.println("  Success viPER 2 - CreateNetworkInstance flow Completed     ");
182         System.out.println("---------------------------------------------------------");
183
184     }
185
186     @Test
187     //@Ignore
188     @Deployment(resources = {"process/CreateNetworkInstance.bpmn",
189             "subprocess/DoCreateNetworkInstance.bpmn",
190             "subprocess/DoCreateNetworkInstanceRollback.bpmn",
191             "subprocess/GenericGetService.bpmn",
192             "subprocess/FalloutHandler.bpmn",
193             "subprocess/CompleteMsoProcess.bpmn",
194             "subprocess/SDNCAdapterV1.bpmn"})
195
196     public void shouldInvokeServiceCreateNetworkInstance_VID_1610_Network_SDNC_Rollback() throws Exception {
197
198         System.out.println("--------------------------------------------------------------------------");
199         System.out.println("    Network and SDNC Rollback - CreateNetworkInstance flow Started!       ");
200         System.out.println("--------------------------------------------------------------------------");
201
202         // setup simulators
203         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>assign");
204         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>rollback");
205         MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
206         MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");
207         MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
208         MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
209         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
210         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
211         MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
212         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
213         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
214         MockUpdateRequestDB("DBUpdateResponse.xml");
215         //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
216         MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
217         MockNetworkAdapterRestRollbackDelete("deleteNetworkResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
218
219         Map<String, String> variables = setupVariablesVID1();
220         executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
221         //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
222         //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
223
224         assertEquals("false", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
225         assertEquals("false", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
226         Assert.assertNotNull("CRENI_FalloutHandlerRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_FalloutHandlerRequest"));
227
228         System.out.println("--------------------------------------------------------------------");
229         System.out.println(" Network and SCNC Rollback - CreateNetworkInstance flow Completed   ");
230         System.out.println("--------------------------------------------------------------------");
231
232     }
233
234     @Test
235     //@Ignore
236     @Deployment(resources = {"process/CreateNetworkInstance.bpmn",
237             "subprocess/DoCreateNetworkInstance.bpmn",
238             "subprocess/DoCreateNetworkInstanceRollback.bpmn",
239             "subprocess/GenericGetService.bpmn",
240             "subprocess/FalloutHandler.bpmn",
241             "subprocess/CompleteMsoProcess.bpmn",
242             "subprocess/SDNCAdapterV1.bpmn"})
243
244     public void shouldInvokeServiceCreateNetworkInstance_vIPER_1702_Network_SDNC_Rollback() throws Exception {
245
246         System.out.println("--------------------------------------------------------------------------");
247         System.out.println("    Network and SDNC Rollback - CreateNetworkInstance flow Started!       ");
248         System.out.println("--------------------------------------------------------------------------");
249
250         // setup simulators
251         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologyRsrcAssignResponse.xml", "SvcAction>assign");
252         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>unassign");
253         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>activate");
254         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>deactivate");
255         MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
256         MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");
257         MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
258         MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
259         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
260         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
261         MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
262         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
263         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
264         MockUpdateRequestDB("DBUpdateResponse.xml");
265         //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
266         MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
267         MockNetworkAdapterRestRollbackDelete("deleteNetworkResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
268
269         Map<String, String> variables = setupVariables1();
270         executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
271         //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
272         //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
273
274         assertEquals("false", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
275         assertEquals("false", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
276         Assert.assertNotNull("CRENI_FalloutHandlerRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_FalloutHandlerRequest"));
277
278         System.out.println("--------------------------------------------------------------------");
279         System.out.println(" Network and SCNC Rollback - CreateNetworkInstance flow Completed   ");
280         System.out.println("--------------------------------------------------------------------");
281
282     }
283
284     @Test
285     //@Ignore
286     @Deployment(resources = {"process/CreateNetworkInstance.bpmn",
287             "subprocess/DoCreateNetworkInstance.bpmn",
288             "subprocess/DoCreateNetworkInstanceRollback.bpmn",
289             "subprocess/GenericGetService.bpmn",
290             "subprocess/FalloutHandler.bpmn",
291             "subprocess/CompleteMsoProcess.bpmn",
292             "subprocess/SDNCAdapterV1.bpmn"})
293
294     public void shouldInvokeServiceCreateNetworkInstance_sdncFailure() throws Exception {
295
296         System.out.println("----------------------------------------------------------------");
297         System.out.println("        SNDC Failure - CreateNetworkInstance flow Started!      ");
298         System.out.println("----------------------------------------------------------------");
299
300         // setup simulators
301         mockSDNCAdapter_500("SvcAction>query");
302         MockGetNetworkByName_404("CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml", "myOwn_Network");
303         MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
304         MockUpdateRequestDB("DBUpdateResponse.xml");
305         //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
306         MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
307
308         Map<String, String> variables = setupVariables2();
309         //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
310         executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
311         //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
312
313         assertEquals("false", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
314         assertEquals("false", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
315         Assert.assertNotNull("CRENI_FalloutHandlerRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_FalloutHandlerRequest"));
316
317         System.out.println("---------------------------------------------------------");
318         System.out.println("     SNDC Failure - CreateNetworkInstance flow Completed ");
319         System.out.println("---------------------------------------------------------");
320
321     }
322
323     @Test
324     //@Ignore
325     @Deployment(resources = {"process/CreateNetworkInstance.bpmn",
326             "subprocess/DoCreateNetworkInstance.bpmn",
327             "subprocess/DoCreateNetworkInstanceRollback.bpmn",
328             "subprocess/GenericGetService.bpmn",
329             "subprocess/FalloutHandler.bpmn",
330             "subprocess/CompleteMsoProcess.bpmn",
331             "subprocess/SDNCAdapterV1.bpmn"})
332
333     public void shouldInvokeServiceCreateNetworkInstance_queryServiceInstance404() throws Exception {
334
335         System.out.println("----------------------------------------------------------------------------------");
336         System.out.println(" Query ServiceIntance Not found - CreateNetworkInstance flow Started! ");
337         System.out.println("----------------------------------------------------------------------------------");
338
339         //setup simulators
340         mockSDNCAdapter_500("SvcAction>query");
341         MockGetNetworkByName_404("CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml", "myOwn_Network");
342         MockUpdateRequestDB("DBUpdateResponse.xml");
343         MockNodeQueryServiceInstanceById_404("f70e927b-6087-4974-9ef8-c5e4d5847ca4");
344
345         Map<String, String> variables = setupVariables2();
346         //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
347         executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
348         //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
349
350         assertEquals("false", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
351         assertEquals("false", getVariable(processEngineRule, "DoCreateNetworkInstance", "CRENWKI_Success"));
352         Assert.assertNotNull("CRENI_FalloutHandlerRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_FalloutHandlerRequest"));
353
354         System.out.println("---------------------------------------------------------------------------------");
355         System.out.println(" Query ServiceIntance Not found - CreateNetworkInstance flow Completed ");
356         System.out.println("---------------------------------------------------------------------------------");
357
358     }
359
360     @Test
361     //@Ignore
362     @Deployment(resources = {"process/CreateNetworkInstance.bpmn",
363             "subprocess/DoCreateNetworkInstance.bpmn",
364             "subprocess/DoCreateNetworkInstanceRollback.bpmn",
365             "subprocess/GenericGetService.bpmn",
366             "subprocess/FalloutHandler.bpmn",
367             "subprocess/CompleteMsoProcess.bpmn",
368             "subprocess/SDNCAdapterV1.bpmn"})
369
370     public void shouldInvokeServiceCreateNetworkInstance_VID_Success1() throws Exception {
371
372         System.out.println("----------------------------------------------------------");
373         System.out.println("  Success VID1 - CreateNetworkInstance flow Started!      ");
374         System.out.println("----------------------------------------------------------");
375
376         // setup simulators
377         mockSDNCAdapterTopology("CreateNetworkV2mock/sdncCreateNetworkTopologySimResponse.xml", "SvcAction>assign");
378         MockNetworkAdapterPost("CreateNetworkV2/createNetworkResponse_Success.xml", "createNetworkRequest");
379         MockGetNetworkByName("MNS-25180-L-01-dmz_direct_net_1", "CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml");
380         MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
381         MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
382         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
383         MockGetNetworkVpnBinding("CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
384         MockGetNetworkPolicy("CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
385         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
386         MockGetNetworkTableReference("CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
387         MockPutNetworkIdWithDepth("CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1");
388         MockUpdateRequestDB("DBUpdateResponse.xml");
389         //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml", "v8");
390         MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "CreateNetworkV2/createNetwork_queryInstance_Success.xml");
391
392         Map<String, String> variables = setupVariablesVID1();
393         //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
394         executeAsyncWorkflow(processEngineRule, "CreateNetworkInstance", variables);
395         System.out.println("----------------------------------------------------------");
396         System.out.println("- got workflow response -");
397         System.out.println("----------------------------------------------------------");
398         //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
399
400         assertEquals("true", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_Success"));
401         Assert.assertNotNull("CRENI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "CreateNetworkInstance", "CRENI_CompleteMsoProcessRequest"));
402
403         String workflowResp = BPMNUtil.getVariable(processEngineRule, "CreateNetworkInstance", "WorkflowResponse");
404         Assert.assertNotNull(workflowResp);
405
406         System.out.println("-----------------------------------------------------------");
407         System.out.println("  Success VID1 - CreateNetworkInstanceInfra flow Completed ");
408         System.out.println("-----------------------------------------------------------");
409
410     }
411
412     // *****************
413     // Utility Section
414     // *****************
415
416     String networkModelInfo =
417             "  {\"modelUuid\": \"mod-inst-uuid-123\", " + '\n' +
418                     "   \"modelName\": \"mod_inst_z_123\", " + '\n' +
419                     "   \"modelVersion\": \"mod-inst-uuid-123\", " + '\n' +
420                     "   \"modelCustomizationUuid\": \"z_network_123\", " + '\n' +
421                     "   \"modelInvariantUuid\": \"mod-invar-uuid-123\" " + '\n' +
422                     "  }";
423
424     String serviceModelInfo =
425             "  {\"modelUuid\": \"36a3a8ea-49a6-4ac8-b06c-89a54544b9b6\", " + '\n' +
426                     "   \"modelName\": \"HNGW Protected OAM\", " + '\n' +
427                     "   \"modelVersion\": \"1.0\", " + '\n' +
428                     "   \"modelInvariantUuid\": \"fcc85cb0-ad74-45d7-a5a1-17c8744fdb71\" " + '\n' +
429                     "  }";
430
431     // Success Scenario
432     private Map<String, String> setupVariables1() {
433         Map<String, String> variables = new HashMap<>();
434         variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
435         variables.put("msoRequestId", "testRequestId");
436         variables.put("requestId", "testRequestId");
437         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
438         variables.put("networkId", "networkId");
439         variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_1");
440         variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
441         variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
442         variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
443         variables.put("disableRollback", "false"); // macro
444         variables.put("failIfExists", "false");
445         variables.put("sdncVersion", "1702");
446         variables.put("subscriptionServiceType", "MSO-dev-service-type");
447         variables.put("globalSubscriberId", "globalId_45678905678");
448         variables.put("networkModelInfo", networkModelInfo);
449         variables.put("serviceModelInfo", serviceModelInfo);
450
451
452         return variables;
453
454     }
455
456     // Success Scenario 2
457     private Map<String, String> setupVariables2() {
458         Map<String, String> variables = new HashMap<>();
459         variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
460         variables.put("msoRequestId", "testRequestId");
461         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
462         variables.put("networkId", "networkId");
463         variables.put("networkName", "myOwn_Network");  // Name Not found in AA&I
464         variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
465         variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
466         variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
467         variables.put("disableRollback", "false");  // 1702
468         variables.put("failIfExists", "false");
469         //variables.put("sdncVersion", "1702");
470         variables.put("sdncVersion", "1707");
471         variables.put("subscriptionServiceType", "MSO-dev-service-type");
472         variables.put("globalSubscriberId", "globalId_45678905678");
473         variables.put("networkModelInfo", networkModelInfo);
474         variables.put("serviceModelInfo", serviceModelInfo);
475
476         return variables;
477
478     }
479
480     // Active Scenario
481     private Map<String, String> setupVariablesActive() {
482         Map<String, String> variables = new HashMap<>();
483         variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
484         variables.put("msoRequestId", "testRequestId");
485         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
486         variables.put("networkId", "networkId");
487         variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_2");   // Unique name for Active
488         variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
489         variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
490         variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
491         variables.put("suppressRollback", "false");
492         variables.put("disableRollback", "false");
493         variables.put("failIfExists", "false");
494         variables.put("sdncVersion", "1702");
495         variables.put("subscriptionServiceType", "MSO-dev-service-type");
496         variables.put("globalSubscriberId", "globalId_45678905678");
497         variables.put("networkModelInfo", networkModelInfo);
498         variables.put("serviceModelInfo", serviceModelInfo);
499
500         return variables;
501
502     }
503
504     // Missing Name Scenario
505     private Map<String, String> setupVariablesMissingName() {
506         Map<String, String> variables = new HashMap<>();
507         //variables.put("bpmnRequest", getCreateNetworkRequestMissingName());
508         variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
509         variables.put("msoRequestId", "testRequestId");
510         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
511         variables.put("networkId", "networkId");
512         // variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_2");  // Missing 'name' variable
513         // variables.put("networkName", "");                                 // Missing 'value' of name variable
514         variables.put("modelName", "CONTRAIL_EXTERNAL");
515         variables.put("cloudConfiguration", "RDM2WAGPLCP");
516         variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
517         variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
518         variables.put("suppressRollback", "true");
519         variables.put("failIfExists", "false");
520
521         return variables;
522
523     }
524
525     // SDNC Rollback Scenario
526     private Map<String, String> setupVariablesSDNCRollback() {
527         Map<String, String> variables = new HashMap<>();
528         variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
529         variables.put("msoRequestId", "testRequestId");
530         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
531         variables.put("networkId", "networkId");
532         variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_3");  // Unique name for Rollback
533         variables.put("modelName", "CONTRAIL_EXTERNAL");
534         variables.put("cloudConfiguration", "RDM2WAGPLCP");
535         variables.put("tenantId", "7dd5365547234ee8937416c65507d266");
536         variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
537         variables.put("suppressRollback", "true");
538         variables.put("disableRollback", "false");
539
540         return variables;
541
542     }
543
544     // old
545     public String getCreateNetworkRequestActive() {
546
547         String request =
548                 "{ \"requestDetails\": { " + '\n' +
549                         "      \"modelInfo\": { " + '\n' +
550                         "         \"modelType\": \"modelType\", " + '\n' +
551                         "         \"modelId\": \"modelId\", " + '\n' +
552                         "         \"modelCustomizationUuid\": \"modelCustUuid\", " + '\n' +
553                         "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
554                         "         \"modelVersion\": \"1\" " + '\n' +
555                         "      }, " + '\n' +
556                         "      \"cloudConfiguration\": { " + '\n' +
557                         "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
558                         "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
559                         "      }, " + '\n' +
560                         "      \"requestInfo\": { " + '\n' +
561                         "          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_2\", " + '\n' +
562                         "          \"source\": \"VID\", " + '\n' +
563                         "          \"callbackUrl\": \"\", " + '\n' +
564                         "          \"suppressRollback\": \"false\" ," + '\n' +
565                         "          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
566                         "      }, " + '\n' +
567                         "      \"requestParameters\": { " + '\n' +
568                         "          \"userParams\": [] " + '\n' +
569                         "      }        " + '\n' +
570                         " } " + '\n' +
571                         "}";
572
573         return request;
574
575     }
576
577     public String getCreateNetworkRequestSDNCRollback() {
578
579         String request =
580                 "{ \"requestDetails\": { " + '\n' +
581                         "      \"modelInfo\": { " + '\n' +
582                         "         \"modelType\": \"modelType\", " + '\n' +
583                         "         \"modelId\": \"modelId\", " + '\n' +
584                         "         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
585                         "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
586                         "         \"modelVersion\": \"1\" " + '\n' +
587                         "      }, " + '\n' +
588                         "      \"cloudConfiguration\": { " + '\n' +
589                         "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
590                         "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
591                         "      }, " + '\n' +
592                         "      \"requestInfo\": { " + '\n' +
593                         "          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_3\", " + '\n' +
594                         "          \"source\": \"VID\", " + '\n' +
595                         "          \"callbackUrl\": \"\", " + '\n' +
596                         "          \"suppressRollback\": \"true\" ," + '\n' +
597                         "          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
598                         "      }, " + '\n' +
599                         "      \"requestParameters\": { " + '\n' +
600                         "          \"userParams\": [] " + '\n' +
601                         "      }        " + '\n' +
602                         " } " + '\n' +
603                         "}";
604
605
606         return request;
607     }
608
609
610     // VID json input
611     private Map<String, String> setupVariablesVID1() {
612         Map<String, String> variables = new HashMap<>();
613         variables.put("bpmnRequest", getCreateNetworkRequestVID1());
614         variables.put("mso-request-id", "testRequestId");
615         //variables.put("msoRequestId", "testRequestId");
616         variables.put("requestId", "testRequestId");
617         variables.put("isBaseVfModule", "true");
618         variables.put("recipeTimeout", "0");
619         variables.put("requestAction", "CREATE");
620         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
621         variables.put("vnfId", "");
622         variables.put("vfModuleId", "");
623         variables.put("volumeGroupId", "");
624         //variables.put("networkId", "networkId");
625         variables.put("serviceType", "vMOG");
626         variables.put("vfModuleType", "");
627         variables.put("networkType", "modelName");
628
629         return variables;
630
631     }
632
633     public String getCreateNetworkRequestVID1() {
634
635         String request =
636                 "{ \"requestDetails\": { " + '\n' +
637                         "      \"modelInfo\": { " + '\n' +
638                         "         \"modelType\": \"modelType\", " + '\n' +
639                         "         \"modelCustomizationId\": \"f21df226-8093-48c3-be7e-0408fcda0422\", " + '\n' +
640                         "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
641                         "         \"modelVersion\": \"1.0\" " + '\n' +
642                         "      }, " + '\n' +
643                         "      \"cloudConfiguration\": { " + '\n' +
644                         "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
645                         "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
646                         "      }, " + '\n' +
647                         "      \"requestInfo\": { " + '\n' +
648                         "          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_1\", " + '\n' +
649                         "          \"source\": \"VID\", " + '\n' +
650                         "          \"callbackUrl\": \"\", " + '\n' +
651                         "          \"suppressRollback\": \"false\" ," + '\n' +
652                         "          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
653                         "      }, " + '\n' +
654                         "      \"requestParameters\": { " + '\n' +
655                         "          \"backoutOnFailure\": false, " + '\n' +
656                         "          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
657                         "          \"userParams\": [] " + '\n' +
658                         "      }        " + '\n' +
659                         " } " + '\n' +
660                         "}";
661
662         return request;
663     }
664
665 }