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