AT&T 1712 and 1802 release code
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / UpdateNetworkInstanceTest.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.MockNetworkAdapterRestPut;
26 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapterTopology;
27 import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;
28 import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;
29 import static org.junit.Assert.assertEquals;
30
31 import java.util.HashMap;
32 import java.util.Map;
33
34 import org.camunda.bpm.engine.test.Deployment;
35 import org.junit.Assert;
36 import org.junit.Ignore;
37 import org.junit.Rule;
38 import org.junit.Test;
39
40 import org.openecomp.mso.bpmn.common.BPMNUtil;
41 import org.openecomp.mso.bpmn.common.WorkflowTest;
42 import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;
43 import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;
44 import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;
45
46 import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
47
48 /**
49  * Unit test cases for DoUpdateNetworkInstance.bpmn
50  *
51  */
52 public class UpdateNetworkInstanceTest extends WorkflowTest {
53         @WorkflowTestTransformer
54         public static final ResponseTransformer sdncAdapterMockTransformer =
55                 new SDNCAdapterNetworkTopologyMockTransformer();
56
57         @Rule
58         public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =
59                 new SDNCAdapterCallbackRule(processEngineRule);
60
61         /**
62          * End-to-End flow - Unit test for DoUpdateNetworkInstance.bpmn
63          *  - String input & String response
64          */
65
66         @Test
67         @Ignore // 1802 merge
68         @Deployment(resources = {"process/UpdateNetworkInstance.bpmn",
69                                                          "subprocess/DoUpdateNetworkInstance.bpmn",
70                                          "subprocess/FalloutHandler.bpmn",
71                                  "subprocess/CompleteMsoProcess.bpmn",
72                                  "subprocess/GenericGetService.bpmn",
73                                  "subprocess/SDNCAdapterV1.bpmn"})
74
75         public void shouldInvokeServiceUpdateNetworkInstance_SuccessVID1() throws Exception {
76
77                 System.out.println("----------------------------------------------------------");
78                 System.out.println("            Success1 - UpdateNetworkInstance flow Started!       ");
79                 System.out.println("----------------------------------------------------------");
80
81                 // setup simulators
82                 mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
83                 MockNetworkAdapterRestPut("UpdateNetworkV2/updateNetworkResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
84                 MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
85                 MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "all");
86                 MockPutNetworkIdWithDepth("UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "all");
87                 MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
88                 MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
89                 MockGetNetworkPolicy("UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
90                 MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
91                 MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
92                 MockUpdateRequestDB("DBUpdateResponse.xml");
93                 //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml", "v8");
94                 MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
95
96                 Map<String, String> variables = setupVariablesVID1();
97                 //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
98                 executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
99                 System.out.println("----------------------------------------------------------");
100                 System.out.println("- got workflow response -");
101                 System.out.println("----------------------------------------------------------");
102                 //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
103
104             assertEquals("true", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_Success"));
105             Assert.assertNotNull("UPDNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_CompleteMsoProcessRequest"));
106
107                 String workflowResp = BPMNUtil.getVariable(processEngineRule, "UpdateNetworkInstance", "WorkflowResponse");
108                 Assert.assertNotNull(workflowResp);
109
110                 System.out.println("----------------------------------------------------------");
111                 System.out.println("     Success1 - UpdateNetworkInstance flow Completed      ");
112                 System.out.println("----------------------------------------------------------");
113
114         }
115
116         @Test
117         @Ignore // 1802 merge
118         @Deployment(resources = {"process/UpdateNetworkInstance.bpmn",
119                                          "subprocess/DoUpdateNetworkInstance.bpmn",
120                                          "subprocess/FalloutHandler.bpmn",
121                                  "subprocess/CompleteMsoProcess.bpmn",
122                                  "subprocess/GenericGetService.bpmn",
123                                  "subprocess/SDNCAdapterV1.bpmn"})
124
125         public void shouldInvokeServiceUpdateNetworkInstance_SuccessVIPER1() throws Exception {
126
127                 System.out.println("----------------------------------------------------------");
128                 System.out.println("            Success2 - UpdateNetworkInstance flow Started!      ");
129                 System.out.println("----------------------------------------------------------");
130
131                 // setup simulators
132                 mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
133                 MockNetworkAdapterRestPut("UpdateNetworkV2/updateNetworkResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
134                 MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
135                 MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "all");
136                 MockPutNetworkIdWithDepth("UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "all");
137                 MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
138                 MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
139                 MockGetNetworkPolicy("UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
140                 MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
141                 MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
142                 MockUpdateRequestDB("DBUpdateResponse.xml");
143                 //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml", "v8");
144                 MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
145
146                 Map<String, String> variables = setupVariablesVIPER1();
147                 //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
148                 executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
149                 //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
150
151             assertEquals("true", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_Success"));
152             Assert.assertNotNull("UPDNI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_CompleteMsoProcessRequest"));
153
154             String completeMsoProcessRequest =
155                         "<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\""  + '\n'
156                   + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\""  + '\n'
157                   + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">"  + '\n'
158                   + "   <request-info>"  + '\n'
159                   + "      <request-id>testRequestId</request-id>"  + '\n'
160                   + "      <action>UPDATE</action>"  + '\n'
161                   + "      <source>VID</source>"  + '\n'
162                   + "   </request-info>"  + '\n'
163                   + "   <aetgt:status-message>Network has been updated successfully.</aetgt:status-message>" + '\n'
164                   + "   <aetgt:mso-bpel-name>BPMN Network action: UPDATE</aetgt:mso-bpel-name>" + '\n'
165                   + "</aetgt:MsoCompletionRequest>";
166
167             Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_CompleteMsoProcessRequest"));
168
169                 System.out.println("----------------------------------------------------------");
170                 System.out.println("     Success2 - UpdateNetworkInstance flow Completed     ");
171                 System.out.println("----------------------------------------------------------");
172
173         }
174
175
176         @Test
177         //@Ignore
178         @Deployment(resources = {"process/UpdateNetworkInstance.bpmn",
179                                          "subprocess/DoUpdateNetworkInstance.bpmn",
180                                          "subprocess/FalloutHandler.bpmn",
181                                  "subprocess/CompleteMsoProcess.bpmn",
182                                  "subprocess/GenericGetService.bpmn",
183                                  "subprocess/SDNCAdapterV1.bpmn"})
184
185         public void shouldInvokeServiceUpdateNetworkInstance_MissingNetworkId() throws Exception {
186
187                 System.out.println("--------------------------------------------------------------------");
188                 System.out.println("     Missing networkId - UpdateNetworkInstance flow Started!   ");
189                 System.out.println("--------------------------------------------------------------------");
190
191                 // setup simulators
192                 MockUpdateRequestDB("DBUpdateResponse.xml");
193                 //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml", "v8");
194                 MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
195
196                 Map<String, String> variables = setupVariablesMissingNetworkId();
197                 //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
198                 executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
199                 //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
200
201             assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_Success"));
202             Assert.assertNotNull("UPDNI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_FalloutHandlerRequest"));
203
204             String falloutHandlerActual = getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_FalloutHandlerRequest");
205             String falloutHandlerExpected =
206 "<aetgt:FalloutHandlerRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + "\n" +
207 "                                                                    xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + "\n" +
208 "                                                                    xmlns:wfsch=\"http://org.openecomp/mso/workflow/schema/v1\">" + "\n" +
209 "                                          <request-info xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + "\n" +
210 "                                             <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>" + "\n" +
211 "                                             <action>UPDATE</action>" + "\n" +
212 "                                             <source>VID</source>" + "\n" +
213 "                                          </request-info>" + "\n" +
214 "                                               <aetgt:WorkflowException xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\">" + "\n" +
215 "                                                       <aetgt:ErrorMessage>Variable 'network-id' value/element is missing.</aetgt:ErrorMessage>" + "\n" +
216 "                                                       <aetgt:ErrorCode>7000</aetgt:ErrorCode>" + "\n" +
217 "                                               </aetgt:WorkflowException>" + "\n" +
218 "                                       </aetgt:FalloutHandlerRequest>";
219
220                 assertEquals("Response", falloutHandlerExpected, falloutHandlerActual);
221
222                 System.out.println("------------------------------------------------------------------");
223                 System.out.println("    Missing networkId - UpdateNetworkInstance flow Completed ");
224                 System.out.println("------------------------------------------------------------------");
225
226         }
227
228
229         @Test
230         //@Ignore
231         @Deployment(resources = {"process/UpdateNetworkInstance.bpmn",
232                                                  "subprocess/DoUpdateNetworkInstance.bpmn",
233                                                  "subprocess/DoUpdateNetworkInstanceRollback.bpmn",
234                                          "subprocess/FalloutHandler.bpmn",
235                                  "subprocess/CompleteMsoProcess.bpmn",
236                                  "subprocess/GenericGetService.bpmn",
237                                  "subprocess/SDNCAdapterV1.bpmn"})
238
239         public void shouldInvokeServiceUpdateNetworkInstance_Network_SDNC_Rollback() throws Exception {
240
241                 System.out.println("---------------------------------------------------------------");
242                 System.out.println("    Network and SDNC Rollback - UpdateNetworkInstance flow Started!       ");
243                 System.out.println("---------------------------------------------------------------");
244
245                 // setup simulators
246                 mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
247                 mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>rollback");
248                 MockNetworkAdapterRestPut("UpdateNetworkV2/updateNetworkResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
249                 MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
250                 MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
251                 MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017");
252                 MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6");
253                 MockGetNetworkPolicy("UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg");
254                 MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1");
255                 MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2");
256                 MockUpdateRequestDB("DBUpdateResponse.xml");
257                 //MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml", "v8");
258                 MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
259
260                 Map<String, String> variables = setupVariablesVID1();
261                 //WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
262                 executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstance", variables);
263                 //waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
264
265             assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_Success"));
266             Assert.assertNotNull("UPDNI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstance", "UPDNI_FalloutHandlerRequest"));
267
268                 System.out.println("---------------------------------------------------------------------");
269                 System.out.println(" Network and SCNC Rollback - UpdateNetworkInstance flow Completed   ");
270                 System.out.println("---------------------------------------------------------------------");
271
272         }
273
274         // *****************
275         // Utility Section
276         // *****************
277
278         String networkModelInfo =
279                        "  {\"modelUuid\": \"mod-inst-uuid-123\", " + '\n' +
280             "   \"modelName\": \"mod_inst_z_123\", " + '\n' +
281                        "   \"modelVersion\": \"1.0\", " + '\n' +
282                        "   \"modelCustomizationUuid\": \"mod-inst-uuid-123\", " + '\n' +
283                        "   \"modelInvariantUuid\": \"mod-invar-uuid-123\" " + '\n' +
284                        "  }";
285
286         String serviceModelInfo =
287                        "  {\"modelUuid\": \"36a3a8ea-49a6-4ac8-b06c-89a54544b9b6\", " + '\n' +
288             "   \"modelName\": \"HNGW Protected OAM\", " + '\n' +
289                        "   \"modelVersion\": \"1.0\", " + '\n' +
290                        "   \"modelInvariantUuid\": \"fcc85cb0-ad74-45d7-a5a1-17c8744fdb71\" " + '\n' +
291                        "  }";
292
293         // Success Scenario
294         private Map<String, String> setupVariablesVID1() {
295                 Map<String, String> variables = new HashMap<>();
296                 variables.put("bpmnRequest", getCreateNetworkRequest1());
297                 variables.put("mso-request-id", "testRequestId");
298                 variables.put("requestId", "testRequestId");
299                 variables.put("isBaseVfModule", "true");
300                 variables.put("recipeTimeout", "0");
301                 variables.put("requestAction", "UPDATE");
302                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
303                 variables.put("vnfId", "");
304                 variables.put("vfModuleId", "");
305                 variables.put("volumeGroupId", "");
306                 variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
307                 variables.put("serviceType", "vMOG");
308                 variables.put("vfModuleType", "");
309                 variables.put("networkType", "modelName");
310                 return variables;
311
312         }
313
314         public String getCreateNetworkRequest1() {
315
316                 String request =
317                                 "{ \"requestDetails\": { " + '\n' +
318                                 "      \"modelInfo\": { " + '\n' +
319                                 "         \"modelType\": \"modelType\", " + '\n' +
320                                 "         \"modelCustomizationId\": \"f21df226-8093-48c3-be7e-0408fcda0422\", " + '\n' +
321                                 "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
322                                 "         \"modelVersion\": \"1.0\" " + '\n' +
323                                 "      }, " + '\n' +
324                                 "      \"cloudConfiguration\": { " + '\n' +
325                                 "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
326                                 "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
327                                 "      }, " + '\n' +
328                                 "      \"requestInfo\": { " + '\n' +
329                                 "          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_1\", " + '\n' +
330                                 "          \"source\": \"VID\", " + '\n' +
331                                 "          \"callbackUrl\": \"\", " + '\n' +
332                                 "          \"suppressRollback\": \"false\" ," + '\n' +
333                                 "          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
334                                 "      }, " + '\n' +
335                                 "      \"requestParameters\": { " + '\n' +
336                                 "          \"backoutOnFailure\": true, " + '\n' +
337                                 "          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
338                                 "          \"userParams\": [] " + '\n' +
339                                 "      }        " + '\n' +
340                             " } " + '\n' +
341                             "}";
342
343                 return request;
344         }
345
346         public String getCreateNetworkRequest2() {
347
348                 String request =
349                                 "{ \"requestDetails\": { " + '\n' +
350                                 "      \"modelInfo\": { " + '\n' +
351                                 "         \"modelType\": \"modelType\", " + '\n' +
352                                 "         \"modelId\": \"modelId\", " + '\n' +
353                                 "         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
354                                 "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
355                                 "         \"modelVersion\": \"1\" " + '\n' +
356                                 "      }, " + '\n' +
357                                 "      \"cloudConfiguration\": { " + '\n' +
358                                 "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
359                                 "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
360                                 "      }, " + '\n' +
361                                 "      \"requestInfo\": { " + '\n' +
362                                 "          \"instanceName\": \"myOwn_Network\", " + '\n' +
363                                 "          \"source\": \"VID\", " + '\n' +
364                                 "          \"callbackUrl\": \"\", " + '\n' +
365                                 "          \"suppressRollback\": \"true\" ," + '\n' +
366                                 "          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
367                                 "      }, " + '\n' +
368                                 "      \"requestParameters\": { " + '\n' +
369                                 "          \"backoutOnFailure\": true, " + '\n' +
370                                 "          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
371                                 "          \"userParams\": [] " + '\n' +
372                                 "      }        " + '\n' +
373                             " } " + '\n' +
374                             "}";
375
376                 return request;
377
378         }
379
380         // Success Scenario
381         private Map<String, String> setupVariablesVIPER1() {
382                 Map<String, String> variables = new HashMap<>();
383                 variables.put("testMessageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
384                 variables.put("msoRequestId", "testRequestId");
385                 variables.put("requestId", "testRequestId");
386                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
387                 variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
388                 variables.put("networkName", "MNS-25180-L-01-dmz_direct_net_1");
389                 variables.put("lcpCloudRegionId", "RDM2WAGPLCP");
390                 variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");
391                 variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
392                 variables.put("disableRollback", "false"); // macro
393                 variables.put("failIfExists", "false");
394                 //variables.put("sdncVersion", "1702");
395                 variables.put("sdncVersion", "1707");
396                 variables.put("subscriptionServiceType", "MSO-dev-service-type");
397                 variables.put("globalSubscriberId", "globalId_45678905678");
398                 variables.put("networkModelInfo", networkModelInfo);
399                 variables.put("serviceModelInfo", serviceModelInfo);
400                 return variables;
401
402         }
403
404         // Missing Name Scenario
405         private Map<String, String> setupVariablesMissingNetworkId() {
406                 Map<String, String> variables = new HashMap<>();
407                 variables.put("mso-request-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
408                 variables.put("bpmnRequest", getCreateNetworkRequestNetworkId());
409                 variables.put("requestId", "testRequestId");
410                 variables.put("isBaseVfModule", "true");
411                 variables.put("recipeTimeout", "0");
412                 variables.put("requestAction", "UPDATE");
413                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
414                 variables.put("vnfId", "");
415                 variables.put("vfModuleId", "");
416                 variables.put("volumeGroupId", "");
417                 //variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4"); // missing, ok
418                 variables.put("serviceType", "vMOG");
419                 variables.put("vfModuleType", "");
420                 variables.put("networkType", "modelName");
421
422                 return variables;
423
424         }
425
426         public String getCreateNetworkRequestNetworkId() {
427
428                 String request =
429                                 "{ \"requestDetails\": { " + '\n' +
430                                 "      \"modelInfo\": { " + '\n' +
431                                 "         \"modelType\": \"modelType\", " + '\n' +
432                                 "         \"modelId\": \"modelId\", " + '\n' +
433                                 "         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
434                                 "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
435                                 "         \"modelVersion\": \"1\" " + '\n' +
436                                 "      }, " + '\n' +
437                                 "      \"cloudConfiguration\": { " + '\n' +
438                                 "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
439                                 "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
440                                 "      }, " + '\n' +
441                                 "      \"requestInfo\": { " + '\n' +
442                                 "          \"source\": \"VID\", " + '\n' +
443                                 "          \"callbackUrl\": \"\", " + '\n' +
444                                 "          \"suppressRollback\": \"true\" ," + '\n' +
445                                 "          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
446                                 "      }, " + '\n' +
447                                 "      \"requestParameters\": { " + '\n' +
448                                 "          \"userParams\": [] " + '\n' +
449                                 "      }        " + '\n' +
450                             " } " + '\n' +
451                             "}";
452
453                         return request;
454
455         }
456
457         public String getCreateNetworkRequestSDNCRollback() {
458
459                 String request =
460                                 "{ \"requestDetails\": { " + '\n' +
461                                 "      \"modelInfo\": { " + '\n' +
462                                 "         \"modelType\": \"modelType\", " + '\n' +
463                                 "         \"modelId\": \"modelId\", " + '\n' +
464                                 "         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
465                                 "         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
466                                 "         \"modelVersion\": \"1\" " + '\n' +
467                                 "      }, " + '\n' +
468                                 "      \"cloudConfiguration\": { " + '\n' +
469                                 "          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
470                                 "          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
471                                 "      }, " + '\n' +
472                                 "      \"requestInfo\": { " + '\n' +
473                                 "          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_3\", " + '\n' +
474                                 "          \"source\": \"VID\", " + '\n' +
475                                 "          \"callbackUrl\": \"\", " + '\n' +
476                                 "          \"suppressRollback\": \"true\" ," + '\n' +
477                                 "          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
478                                 "      }, " + '\n' +
479                                 "      \"requestParameters\": { " + '\n' +
480                                 "          \"userParams\": [] " + '\n' +
481                                 "      }        " + '\n' +
482                             " } " + '\n' +
483                             "}";
484
485
486                 return request;
487         }
488
489 }