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