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