AT&T 1712 and 1802 release code
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / CreateNetworkInstanceTest.java
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 import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;
31
32 import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;
33 import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;
34 import static org.junit.Assert.assertEquals;
35
36 import java.util.HashMap;
37 import java.util.Map;
38
39 import org.camunda.bpm.engine.test.Deployment;
40 import org.junit.Assert;
41 import org.junit.Rule;
42 import org.junit.Test;
43
44 import org.openecomp.mso.bpmn.common.BPMNUtil;
45 import org.openecomp.mso.bpmn.common.WorkflowTest;
46 import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;
47 import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;
48 import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
49
50 /**
51  * Unit test cases for CreateNetworkInstance.bpmn
52  *
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", "all");
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", "all");
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", "all");
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", "all");
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", "all");
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", "all");
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 }