Run groovy bpmn/vcpe tests
[so.git] / bpmn / so-bpmn-infrastructure-common / src / test / groovy / org / onap / so / bpmn / vcpe / scripts / CreateVcpeResCustServiceTest.groovy
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Modifications Copyright (c) 2019 Samsung
8  * ================================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=========================================================
21  */
22 package org.onap.so.bpmn.vcpe.scripts
23
24 import com.github.tomakehurst.wiremock.junit.WireMockRule
25 import org.camunda.bpm.engine.delegate.BpmnError
26 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
27 import org.junit.Before
28 import org.junit.BeforeClass
29 import org.junit.Rule
30 import org.junit.Test
31 import org.mockito.MockitoAnnotations
32 import org.onap.so.bpmn.core.UrnPropertiesReader
33 import org.onap.so.bpmn.core.WorkflowException
34 import org.onap.so.bpmn.core.domain.*
35 import org.onap.so.bpmn.mock.FileUtil
36
37 import static org.junit.Assert.*
38 import static org.mockito.ArgumentMatchers.any
39 import static org.mockito.ArgumentMatchers.endsWith
40 import static org.mockito.Mockito.*
41
42 class CreateVcpeResCustServiceTest extends GroovyTestBase {
43
44     private static String request
45
46     @Rule
47     public WireMockRule wireMockRule = new WireMockRule(PORT)
48
49     String Prefix = "CVRCS_"
50
51     @BeforeClass
52     public static void setUpBeforeClass() {
53         request = FileUtil.readResourceFile("__files/VCPE/CreateVcpeResCustService/request.json")
54     }
55
56     @Before
57     public void init() {
58         MockitoAnnotations.initMocks(this)
59     }
60
61     public CreateVcpeResCustServiceTest() {
62         super("CreateVcpeResCustService")
63     }
64
65     // ***** preProcessRequest *****
66
67     @Test
68     public void preProcessRequest() {
69         ExecutionEntity mex = setupMock()
70         def map = setupMap(mex)
71
72         initPreProcess(mex)
73
74         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
75         CreateVcpeResCustService.preProcessRequest(mex)
76
77         verify(mex).getVariable(DBGFLAG)
78         verify(mex).setVariable("prefix", Prefix)
79         verify(mex).setVariable("createVcpeServiceRequest", request)
80         verify(mex).setVariable("msoRequestId", "mri")
81         assertEquals("sii", map.get("serviceInstanceId"))
82         verify(mex).setVariable("requestAction", "ra")
83         verify(mex).setVariable("source", "VID")
84         verify(mex).setVariable("globalSubscriberId", CUST)
85         verify(mex).setVariable("globalCustomerId", CUST)
86         verify(mex).setVariable("subscriptionServiceType", SVC)
87         verify(mex).setVariable("disableRollback", "false")
88         verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
89         assertTrue(map.containsKey("subscriberInfo"))
90
91         verify(mex).setVariable("brgWanMacAddress", "brgmac")
92         verify(mex).setVariable("customerLocation", ["customerLatitude": "32.897480", "customerLongitude": "-97.040443", "customerName": "some_company"])
93         verify(mex).setVariable("homingService", "sniro")
94         assertTrue(map.containsKey("serviceInputParams"))
95         assertTrue(map.containsKey(Prefix + "requestInfo"))
96
97         def reqinfo = map.get(Prefix + "requestInfo")
98         assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
99         assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
100
101         assertTrue(map.containsKey("vfModuleNames"))
102     }
103
104     @Test
105     public void preProcessRequest_MissingAaiDistDelay() {
106         ExecutionEntity mex = setupMock()
107         setupMap(mex)
108         initPreProcess(mex)
109
110         when(mex.getVariable("aai.workflowAaiDistributionDelay")).thenReturn(null)
111
112         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
113
114         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
115     }
116
117     @Test
118     public void preProcessRequest_EmptyParts() {
119         ExecutionEntity mex = setupMock()
120         def map = setupMap(mex)
121         initPreProcess(mex)
122
123         def req = request
124                 .replace('"source"', '"sourceXXX"')
125                 .replace('"BRG_WAN_MAC_Address"', '"BRG_WAN_MAC_AddressXXX"')
126                 .replace('"Customer_Location"', '"Customer_LocationXXX"')
127
128         when(mex.getVariable("bpmnRequest")).thenReturn(req)
129         when(mex.getVariable("serviceInstanceId")).thenReturn(null)
130
131         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
132         CreateVcpeResCustService.preProcessRequest(mex)
133
134         verify(mex).getVariable(DBGFLAG)
135         verify(mex).setVariable("prefix", Prefix)
136         verify(mex).setVariable("createVcpeServiceRequest", req)
137         verify(mex).setVariable("msoRequestId", "mri")
138         assertNotNull(map.get("serviceInstanceId"))
139         assertFalse(map.get("serviceInstanceId").isEmpty())
140         verify(mex).setVariable("requestAction", "ra")
141         verify(mex).setVariable("source", "VID")
142         verify(mex).setVariable("globalSubscriberId", CUST)
143         verify(mex).setVariable("globalCustomerId", CUST)
144         verify(mex).setVariable("subscriptionServiceType", SVC)
145         verify(mex).setVariable("disableRollback", "false")
146         verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
147         assertTrue(map.containsKey("subscriberInfo"))
148
149         assertEquals("", map.get("brgWanMacAddress"))
150         assertEquals("", map.get("customerLocation"))
151         assertEquals("sniro", map.get("homingService"))
152         assertTrue(map.containsKey("serviceInputParams"))
153         assertTrue(map.containsKey(Prefix + "requestInfo"))
154
155         def reqinfo = map.get(Prefix + "requestInfo")
156         println reqinfo
157         assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
158         assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
159     }
160
161     @Test
162     public void preProcessRequest_MissingSubscriberId() {
163         ExecutionEntity mex = setupMock()
164         def map = setupMap(mex)
165         initPreProcess(mex)
166
167         def req = request
168                 .replace('"globalSubscriberId"', '"globalSubscriberIdXXX"')
169
170         when(mex.getVariable("bpmnRequest")).thenReturn(req)
171         when(mex.getVariable("serviceInstanceId")).thenReturn(null)
172
173         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
174
175         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
176     }
177
178     @Test
179     public void preProcessRequest_vimId() {
180         ExecutionEntity mex = setupMock()
181         def map = setupMap(mex)
182         initPreProcess(mex)
183         UrnPropertiesReader
184
185         def req = request
186                 .replace('"mdt1"', '"CloudOwner_CloudRegion1"')
187
188         when(mex.getVariable("bpmnRequest")).thenReturn(req)
189         when(mex.getVariable("aai.workflowAaiDistributionDelay")).thenReturn("PT5S")
190
191         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
192         CreateVcpeResCustService.preProcessRequest(mex)
193
194         verify(mex).setVariable("cloudRegionId", "CloudRegion1")
195         verify(mex).setVariable("cloudOwner", "CloudOwner")
196     }
197
198     @Test
199     public void preProcessRequest_noVimId() {
200         ExecutionEntity mex = setupMock()
201         def map = setupMap(mex)
202         initPreProcess(mex)
203
204         def req = request
205                 .replace('"mdt1"', '"CloudRegion1_"')
206
207         when(mex.getVariable("bpmnRequest")).thenReturn(req)
208         when(mex.getVariable("aai.workflowAaiDistributionDelay")).thenReturn("PT5S")
209
210         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
211         CreateVcpeResCustService.preProcessRequest(mex)
212
213         verify(mex).setVariable("prefix", Prefix)
214         verify(mex).setVariable("cloudRegionId", "CloudRegion1_")
215         verify(mex).setVariable("cloudOwner", "CloudOwner")
216
217     }
218
219
220     @Test
221     public void preProcessRequest_BpmnError() {
222         ExecutionEntity mex = setupMock()
223         initPreProcess(mex)
224
225         when(mex.getVariable("bpmnRequest")).thenThrow(new BpmnError("expected exception"))
226
227         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
228
229         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
230     }
231
232     @Test
233     public void preProcessRequest_Ex() {
234         ExecutionEntity mex = setupMock()
235         initPreProcess(mex)
236
237         when(mex.getVariable("bpmnRequest")).thenThrow(new RuntimeException("expected exception"))
238
239         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
240
241         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
242     }
243
244     // ***** sendSyncResponse *****
245
246     @Test
247     public void sendSyncResponse() {
248         ExecutionEntity mex = setupMock()
249         def map = setupMap(mex)
250         initSendSyncResponse(mex)
251
252         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
253         CreateVcpeResCustService.sendSyncResponse(mex)
254
255         verify(mex).getVariable(DBGFLAG)
256
257         verify(mex).setVariable(processName + "WorkflowResponseSent", "true")
258
259         assertEquals("202", map.get(processName + "ResponseCode"))
260         assertEquals("Success", map.get(processName + "Status"))
261
262         def resp = map.get(processName + "Response")
263
264         assertTrue(resp.indexOf('"instanceId":"sii"') >= 0)
265         assertTrue(resp.indexOf('"requestId":"mri"') >= 0)
266     }
267
268     @Test
269     public void sendSyncResponse_Ex() {
270         ExecutionEntity mex = setupMock()
271         initSendSyncResponse(mex)
272
273         when(mex.getVariable("serviceInstanceId")).thenThrow(new RuntimeException("expected exception"))
274
275         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
276
277         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.sendSyncResponse(mex) }))
278     }
279
280     // ***** prepareDecomposeService *****
281
282     @Test
283     public void prepareDecomposeService() {
284         ExecutionEntity mex = setupMock()
285         initPrepareDecomposeService(mex)
286
287         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
288         CreateVcpeResCustService.prepareDecomposeService(mex)
289
290         verify(mex).getVariable("createVcpeServiceRequest")
291         verify(mex).setVariable("serviceModelInfo", "mi")
292     }
293
294     @Test
295     public void prepareDecomposeService_Ex() {
296         ExecutionEntity mex = setupMock()
297         initPrepareDecomposeService(mex)
298
299         when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
300
301         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
302
303         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.prepareDecomposeService(mex) }))
304     }
305
306     // ***** prepareCreateServiceInstance *****
307
308     @Test
309     public void prepareCreateServiceInstance() {
310         ExecutionEntity mex = setupMock()
311         ServiceDecomposition svcdecomp = initPrepareCreateServiceInstance(mex)
312         when(svcdecomp.toJsonStringNoRootName()).thenReturn("mydecomp")
313
314         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
315         CreateVcpeResCustService.prepareCreateServiceInstance(mex)
316
317         verify(mex).getVariable("createVcpeServiceRequest")
318         verify(mex).setVariable("serviceInstanceName", "VCPE1")
319         verify(mex).setVariable("serviceDecompositionString", "mydecomp")
320     }
321
322     @Test
323     public void prepareCreateServiceInstance_Ex() {
324         ExecutionEntity mex = setupMock()
325         initPrepareCreateServiceInstance(mex)
326
327         when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
328
329         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
330
331         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.prepareCreateServiceInstance(mex) }))
332     }
333
334     // ***** postProcessServiceInstanceCreate *****
335
336     @Test
337     public void postProcessServiceInstanceCreate() {
338         ExecutionEntity mex = setupMock()
339         def map = setupMap(mex)
340         initPostProcessServiceInstanceCreate(mex)
341
342         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
343         CreateVcpeResCustService.postProcessServiceInstanceCreate(mex)
344
345         verify(mex).getVariable("mso-request-id")
346         verify(mex).getVariable("serviceInstanceId")
347         verify(mex).getVariable("serviceInstanceName")
348
349         def reqinfo = map.get(Prefix + "setUpdateDbInstancePayload")
350
351         assertTrue(reqinfo.indexOf("<requestId>mri</") >= 0)
352         assertTrue(reqinfo.indexOf("<serviceInstanceId>sii</") >= 0)
353         assertTrue(reqinfo.indexOf("<serviceInstanceName>sin</") >= 0)
354     }
355
356     @Test
357     public void postProcessServiceInstanceCreate_BpmnError() {
358         ExecutionEntity mex = setupMock()
359         initPostProcessServiceInstanceCreate(mex)
360
361         doThrow(new BpmnError("expected exception")).when(mex).setVariable(endsWith("setUpdateDbInstancePayload"), any())
362
363         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
364
365         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.postProcessServiceInstanceCreate(mex) }))
366     }
367
368     @Test
369     public void postProcessServiceInstanceCreate_Ex() {
370         ExecutionEntity mex = setupMock()
371         initPostProcessServiceInstanceCreate(mex)
372
373         doThrow(new RuntimeException("expected exception")).when(mex).setVariable(endsWith("setUpdateDbInstancePayload"), any())
374
375         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
376
377         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.postProcessServiceInstanceCreate(mex) }))
378     }
379
380     // ***** processDecomposition *****
381
382     @Test
383     public void processDecomposition() {
384         ExecutionEntity mex = setupMock()
385         def svcdecomp = initProcessDecomposition(mex)
386
387         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
388         CreateVcpeResCustService.processDecomposition(mex)
389
390         verify(mex).getVariable("serviceDecomposition")
391
392         verify(mex).setVariable("vnfList", svcdecomp.getVnfResources())
393         verify(mex).setVariable("vnfListString", '[myvnf]')
394         verify(mex).setVariable(Prefix + "VNFsCount", 1)
395
396         verify(mex).setVariable("vnfModelInfo", "mymodel")
397         verify(mex).setVariable("vnfModelInfoString", "mymodel")
398     }
399
400     @Test
401     public void processDecomposition_EmptyNet_EmptyVnf() {
402         ExecutionEntity mex = setupMock()
403         def svcdecomp = initProcessDecomposition(mex)
404
405         when(svcdecomp.getVnfResources()).thenReturn(new LinkedList<VnfResource>())
406
407         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
408         CreateVcpeResCustService.processDecomposition(mex)
409
410         verify(mex).getVariable("serviceDecomposition")
411
412         verify(mex).setVariable("vnfList", svcdecomp.getVnfResources())
413         verify(mex).setVariable("vnfListString", '[]')
414         verify(mex).setVariable(Prefix + "VNFsCount", 0)
415
416         verify(mex).setVariable("vnfModelInfo", "")
417         verify(mex).setVariable("vnfModelInfoString", "")
418     }
419
420     @Test
421     public void processDecomposition_Ex() {
422         ExecutionEntity mex = setupMock()
423         def svcdecomp = initProcessDecomposition(mex)
424
425         when(svcdecomp.getVnfResources()).thenThrow(new RuntimeException("expected exception"))
426
427         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
428
429         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.processDecomposition(mex) }))
430     }
431
432     // ***** filterVnfs *****
433
434     @Test
435     public void filterVnfs() {
436         ExecutionEntity mex = setupMock()
437         initFilterVnfs(mex)
438
439         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
440         CreateVcpeResCustService.processDecomposition(mex)
441
442         verify(mex).setVariable("vnfListString", '[myvnf3, myvnf5]')
443     }
444
445     @Test
446     public void filterVnfs_Null() {
447         ExecutionEntity mex = setupMock()
448         def svcdecomp = initFilterVnfs(mex)
449
450         when(svcdecomp.getVnfResources()).thenReturn(null)
451
452         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
453         CreateVcpeResCustService.processDecomposition(mex)
454
455         // nothing more to check, as long as it didn't throw an exception
456     }
457
458     // ***** prepareCreateAllottedResourceTXC *****
459
460     @Test
461     public void prepareCreateAllottedResourceTXC() {
462         ExecutionEntity mex = setupMock()
463         initPrepareCreateAllottedResourceTXC(mex)
464
465         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
466         CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex)
467
468         verify(mex).getVariable("serviceDecomposition")
469
470         verify(mex).setVariable("createTXCAR", true)
471         verify(mex).setVariable("allottedResourceModelInfoTXC", "modelB")
472         verify(mex).setVariable("allottedResourceRoleTXC", "TXCr")
473         verify(mex).setVariable("allottedResourceTypeTXC", "Tunnel XConn")
474         verify(mex).setVariable("parentServiceInstanceIdTXC", "homeB")
475     }
476
477     @Test
478     public void prepareCreateAllottedResourceTXC_NullArList() {
479         ExecutionEntity mex = setupMock()
480         def svcdecomp = initPrepareCreateAllottedResourceTXC(mex)
481
482         when(svcdecomp.getAllottedResources()).thenReturn(null)
483
484         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
485         CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex)
486
487         verify(mex).getVariable("serviceDecomposition")
488
489         verify(mex, never()).setVariable("createTXCAR", true)
490         verify(mex, never()).setVariable("allottedResourceModelInfoTXC", "modelB")
491         verify(mex, never()).setVariable("allottedResourceRoleTXC", "TXCr")
492         verify(mex, never()).setVariable("allottedResourceTypeTXC", "Tunnel XConn")
493         verify(mex, never()).setVariable("parentServiceInstanceIdTXC", "homeB")
494     }
495
496     @Test
497     public void prepareCreateAllottedResourceTXC_Ex() {
498         ExecutionEntity mex = setupMock()
499         initPrepareCreateAllottedResourceTXC(mex)
500
501         when(mex.getVariable("serviceDecomposition")).thenThrow(new RuntimeException("expected exception"))
502
503         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
504
505         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex) }))
506     }
507
508     // ***** prepareCreateAllottedResourceBRG *****
509
510     @Test
511     public void prepareCreateAllottedResourceBRG() {
512         ExecutionEntity mex = setupMock()
513         initPrepareCreateAllottedResourceBRG(mex)
514
515         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
516         CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex)
517
518         verify(mex).getVariable("serviceDecomposition")
519
520         verify(mex).setVariable("createBRGAR", true)
521         verify(mex).setVariable("allottedResourceModelInfoBRG", "modelB")
522         verify(mex).setVariable("allottedResourceRoleBRG", "BRGr")
523         verify(mex).setVariable("allottedResourceTypeBRG", "BRG")
524         verify(mex).setVariable("parentServiceInstanceIdBRG", "homeB")
525     }
526
527     @Test
528     public void prepareCreateAllottedResourceBRG_NullArList() {
529         ExecutionEntity mex = setupMock()
530         def svcdecomp = initPrepareCreateAllottedResourceBRG(mex)
531
532         when(svcdecomp.getAllottedResources()).thenReturn(null)
533
534         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
535         CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex)
536
537         verify(mex).getVariable("serviceDecomposition")
538
539         verify(mex, never()).setVariable("createBRGAR", true)
540         verify(mex, never()).setVariable("allottedResourceModelInfoBRG", "modelB")
541         verify(mex, never()).setVariable("allottedResourceRoleBRG", "BRGr")
542         verify(mex, never()).setVariable("allottedResourceTypeBRG", "BRG")
543         verify(mex, never()).setVariable("parentServiceInstanceIdBRG", "homeB")
544     }
545
546     @Test
547     public void prepareCreateAllottedResourceBRG_Ex() {
548         ExecutionEntity mex = setupMock()
549         initPrepareCreateAllottedResourceBRG(mex)
550
551         when(mex.getVariable("serviceDecomposition")).thenThrow(new RuntimeException("expected exception"))
552
553         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
554
555         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex) }))
556     }
557
558     // ***** prepareVnfAndModulesCreate *****
559
560     @Test
561     public void prepareVnfAndModulesCreate() {
562         ExecutionEntity mex = setupMock()
563         initPrepareVnfAndModulesCreate(mex)
564
565         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
566         CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
567
568         verify(mex).getVariable("createVcpeServiceRequest")
569
570         verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
571         verify(mex).setVariable("lcpCloudRegionId", "mdt1")
572         verify(mex).setVariable("cloudOwner", "CloudOwner")
573         verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
574     }
575
576     @Test
577     public void prepareVnfAndModulesCreate_noVimId() {
578         ExecutionEntity mex = setupMock()
579         initPrepareVnfAndModulesCreate(mex)
580
581         def req = request
582                 .replace('"mdt1"', '"CloudRegion1_"')
583
584         when(mex.getVariable("createVcpeServiceRequest")).thenReturn(req)
585
586         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
587         CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
588
589         verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
590         verify(mex).setVariable("cloudRegionId", "CloudRegion1_")
591         verify(mex).setVariable("lcpCloudRegionId", "CloudRegion1_")
592         verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
593     }
594
595     @Test
596     public void prepareVnfAndModulesCreate_vimId() {
597         ExecutionEntity mex = setupMock()
598         initPrepareVnfAndModulesCreate(mex)
599
600         def req = request
601                 .replace('"mdt1"', '"CloudOwner_CloudRegion1"')
602
603         when(mex.getVariable("createVcpeServiceRequest")).thenReturn(req)
604
605         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
606         CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
607
608         verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
609         verify(mex).setVariable("cloudOwner", "CloudOwner")
610         verify(mex).setVariable("cloudRegionId", "CloudRegion1")
611         verify(mex).setVariable("lcpCloudRegionId", "CloudRegion1")
612         verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
613     }
614
615     @Test
616     public void prepareVnfAndModulesCreate_EmptyList() {
617         ExecutionEntity mex = setupMock()
618         initPrepareVnfAndModulesCreate(mex)
619
620         when(mex.getVariable("vnfList")).thenReturn(new LinkedList<VnfResource>())
621
622         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
623         CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
624
625         verify(mex).getVariable("createVcpeServiceRequest")
626
627         verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
628         verify(mex).setVariable("lcpCloudRegionId", "mdt1")
629         verify(mex).setVariable("cloudOwner", "CloudOwner")
630         verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
631     }
632
633     @Test
634     public void prepareVnfAndModulesCreate_NullList() {
635         ExecutionEntity mex = setupMock()
636         initPrepareVnfAndModulesCreate(mex)
637
638         when(mex.getVariable("vnfList")).thenReturn(null)
639
640         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
641         CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
642
643         verify(mex).getVariable("createVcpeServiceRequest")
644
645         verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
646         verify(mex).setVariable("lcpCloudRegionId", "mdt1")
647         verify(mex).setVariable("cloudOwner", "CloudOwner")
648         verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
649     }
650
651     @Test
652     public void prepareVnfAndModulesCreate_Ex() {
653         ExecutionEntity mex = setupMock()
654         initPrepareVnfAndModulesCreate(mex)
655
656         when(mex.getVariable("vnfList")).thenThrow(new RuntimeException("expected exception"))
657
658         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
659
660         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.prepareVnfAndModulesCreate(mex) }))
661     }
662
663     // ***** validateVnfCreate *****
664
665     @Test
666     public void validateVnfCreate() {
667         ExecutionEntity mex = setupMock()
668         initValidateVnfCreate(mex)
669
670         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
671         CreateVcpeResCustService.validateVnfCreate(mex)
672
673         verify(mex).getVariable(Prefix + "VnfsCreatedCount")
674
675         verify(mex).setVariable(Prefix + "VnfsCreatedCount", 3)
676     }
677
678     @Test
679     public void validateVnfCreate_Ex() {
680         ExecutionEntity mex = setupMock()
681         initValidateVnfCreate(mex)
682
683         when(mex.getVariable(Prefix + "VnfsCreatedCount")).thenThrow(new RuntimeException("expected exception"))
684
685         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
686
687         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.validateVnfCreate(mex) }))
688     }
689
690     // ***** postProcessResponse *****
691
692     @Test
693     public void postProcessResponse() {
694         ExecutionEntity mex = setupMock()
695         def map = setupMap(mex)
696         initPostProcessResponse(mex)
697
698         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
699         CreateVcpeResCustService.postProcessResponse(mex)
700
701         verify(mex).getVariable("source")
702         verify(mex).getVariable("mso-request-id")
703         verify(mex).getVariable("serviceInstanceId")
704
705         verify(mex).setVariable(Prefix + "Success", true)
706
707         def reqinfo = map.get(Prefix + "CompleteMsoProcessRequest")
708
709         assertTrue(reqinfo.indexOf("request-id>mri</") >= 0)
710         assertTrue(reqinfo.indexOf("source>mysrc</") >= 0)
711         assertTrue(reqinfo.indexOf("serviceInstanceId>sii</") >= 0)
712     }
713
714     @Test
715     public void postProcessResponse_BpmnError() {
716         ExecutionEntity mex = setupMock()
717         setupMap(mex)
718         initPostProcessResponse(mex)
719
720         when(mex.getVariable("source")).thenThrow(new BpmnError("expected exception"))
721
722         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
723
724         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.postProcessResponse(mex) }))
725     }
726
727     @Test
728     public void postProcessResponse_Ex() {
729         ExecutionEntity mex = setupMock()
730         setupMap(mex)
731         initPostProcessResponse(mex)
732
733         when(mex.getVariable("source")).thenThrow(new BpmnError("expected exception"))
734
735         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
736
737         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.postProcessResponse(mex) }))
738     }
739
740     // ***** preProcessRollback *****
741
742     @Test
743     public void preProcessRollback() {
744         ExecutionEntity mex = setupMock()
745         def wfe = initPreProcessRollback(mex)
746
747         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
748         CreateVcpeResCustService.preProcessRollback(mex)
749
750         verify(mex).getVariable("WorkflowException")
751
752         verify(mex).setVariable("prevWorkflowException", wfe)
753     }
754
755     @Test
756     public void preProcessRollback_NullWfe() {
757         ExecutionEntity mex = setupMock()
758         def map = setupMap(mex)
759         initPreProcessRollback(mex)
760
761         when(mex.getVariable("WorkflowException")).thenReturn(null)
762
763         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
764         CreateVcpeResCustService.preProcessRollback(mex)
765
766         verify(mex).getVariable("WorkflowException")
767
768         assertFalse(map.containsKey("prevWorkflowException"))
769     }
770
771     @Test
772     public void preProcessRollback_BpmnError() {
773         ExecutionEntity mex = setupMock()
774         def map = setupMap(mex)
775         initPreProcessRollback(mex)
776
777         when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
778
779         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
780         CreateVcpeResCustService.preProcessRollback(mex)
781
782         verify(mex).getVariable("WorkflowException")
783
784         assertFalse(map.containsKey("prevWorkflowException"))
785     }
786
787     @Test
788     public void preProcessRollback_Ex() {
789         ExecutionEntity mex = setupMock()
790         def map = setupMap(mex)
791         initPreProcessRollback(mex)
792
793         when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
794
795         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
796         CreateVcpeResCustService.preProcessRollback(mex)
797
798         verify(mex).getVariable("WorkflowException")
799
800         assertFalse(map.containsKey("prevWorkflowException"))
801     }
802
803     // ***** postProcessRollback *****
804
805     @Test
806     public void postProcessRollback() {
807         ExecutionEntity mex = setupMock()
808         def wfe = initPostProcessRollback(mex)
809
810         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
811         CreateVcpeResCustService.postProcessRollback(mex)
812
813         verify(mex).getVariable("prevWorkflowException")
814
815         verify(mex).setVariable("WorkflowException", wfe)
816     }
817
818     @Test
819     public void postProcessRollback_NullWfe() {
820         ExecutionEntity mex = setupMock()
821         def map = setupMap(mex)
822         initPostProcessRollback(mex)
823
824         when(mex.getVariable("prevWorkflowException")).thenReturn(null)
825
826         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
827         CreateVcpeResCustService.postProcessRollback(mex)
828
829         verify(mex).getVariable("prevWorkflowException")
830
831         assertFalse(map.containsKey("WorkflowException"))
832     }
833
834     @Test
835     public void postProcessRollback_BpmnError() {
836         ExecutionEntity mex = setupMock()
837         setupMap(mex)
838         initPostProcessRollback(mex)
839
840         when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
841
842         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
843         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.postProcessRollback(mex) }))
844     }
845
846
847     @Test
848     public void postProcessRollback_Ex() {
849         ExecutionEntity mex = setupMock()
850         def map = setupMap(mex)
851         initPostProcessRollback(mex)
852
853         when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
854
855         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
856         CreateVcpeResCustService.postProcessRollback(mex)
857
858         verify(mex).getVariable("prevWorkflowException")
859
860         assertFalse(map.containsKey("WorkflowException"))
861     }
862
863     // ***** prepareFalloutRequest *****
864
865     @Test
866     public void prepareFalloutRequest() {
867         ExecutionEntity mex = setupMock()
868         def map = setupMap(mex)
869         WorkflowException wfe = initPrepareFalloutRequest(mex)
870         when(wfe.getErrorMessage()).thenReturn("mymsg")
871         when(wfe.getErrorCode()).thenReturn(999)
872
873         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
874         CreateVcpeResCustService.prepareFalloutRequest(mex)
875
876         verify(mex, times(4)).getVariable("WorkflowException")
877
878         def fo = map.get(Prefix + "falloutRequest")
879
880         assertTrue(fo.indexOf("<hello>world</") >= 0)
881         assertTrue(fo.indexOf("ErrorMessage>mymsg</") >= 0)
882         assertTrue(fo.indexOf("ErrorCode>999</") >= 0)
883     }
884
885     @Test
886     public void prepareFalloutRequest_Ex() {
887         ExecutionEntity mex = setupMock()
888         setupMap(mex)
889         initPrepareFalloutRequest(mex)
890
891         when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
892
893         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
894
895         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.prepareFalloutRequest(mex) }))
896     }
897
898     // ***** sendSyncError *****
899
900     @Test
901     public void sendSyncError() {
902         ExecutionEntity mex = setupMock()
903         def map = setupMap(mex)
904         initSendSyncError(mex)
905
906         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
907         CreateVcpeResCustService.sendSyncError(mex)
908
909         verify(mex).getVariable(DBGFLAG)
910
911         verify(mex).setVariable(processName + "WorkflowResponseSent", "true")
912
913         assertEquals("500", map.get(processName + "ResponseCode"))
914         assertEquals("Fail", map.get(processName + "Status"))
915
916         def resp = map.get(processName + "Response")
917
918         assertTrue(resp.indexOf("ErrorMessage>mymsg</") >= 0)
919
920         verify(mex).setVariable("WorkflowResponse", resp)
921     }
922
923     @Test
924     public void sendSyncError_NotWfe() {
925         ExecutionEntity mex = setupMock()
926         def map = setupMap(mex)
927         initSendSyncError(mex)
928
929         when(mex.getVariable("WorkflowException")).thenReturn("not a WFE")
930
931         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
932         CreateVcpeResCustService.sendSyncError(mex)
933
934         verify(mex).getVariable(DBGFLAG)
935
936         verify(mex).setVariable(processName + "WorkflowResponseSent", "true")
937
938         assertEquals("500", map.get(processName + "ResponseCode"))
939         assertEquals("Fail", map.get(processName + "Status"))
940
941         def resp = map.get(processName + "Response")
942
943         assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
944
945         verify(mex).setVariable("WorkflowResponse", resp)
946     }
947
948     @Test
949     public void sendSyncError_NullWfe() {
950         ExecutionEntity mex = setupMock()
951         def map = setupMap(mex)
952         initSendSyncError(mex)
953
954         when(mex.getVariable("WorkflowException")).thenReturn(null)
955
956         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
957         CreateVcpeResCustService.sendSyncError(mex)
958
959         verify(mex).getVariable(DBGFLAG)
960
961         verify(mex).setVariable(processName + "WorkflowResponseSent", "true")
962
963         assertEquals("500", map.get(processName + "ResponseCode"))
964         assertEquals("Fail", map.get(processName + "Status"))
965
966         def resp = map.get(processName + "Response")
967
968         assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
969
970         verify(mex).setVariable("WorkflowResponse", resp)
971     }
972
973     @Test
974     public void sendSyncError_Ex() {
975         ExecutionEntity mex = setupMock()
976         def map = setupMap(mex)
977         initSendSyncError(mex)
978
979         when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
980
981         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
982
983         CreateVcpeResCustService.sendSyncError(mex)
984
985         assertFalse(map.containsKey(processName + "ResponseCode"))
986     }
987
988     // ***** processJavaException *****
989
990     @Test
991     public void processJavaException() {
992         ExecutionEntity mex = setupMock()
993         def map = setupMap(mex)
994         initProcessJavaException(mex)
995
996         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
997
998         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.processJavaException(mex) }))
999
1000         verify(mex).getVariable("testProcessKey")
1001
1002         verify(mex).setVariable("prefix", Prefix)
1003
1004         def wfe = map.get("WorkflowException")
1005
1006         assertEquals("Caught a Java Lang Exception", wfe.getErrorMessage())
1007     }
1008
1009     @Test
1010     public void processJavaException_BpmnError() {
1011         ExecutionEntity mex = setupMock()
1012         def map = setupMap(mex)
1013         initProcessJavaException(mex)
1014
1015         when(mex.getVariables()).thenThrow(new BpmnError("expected exception"))
1016
1017         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
1018
1019         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.processJavaException(mex) }))
1020
1021         assertFalse(map.containsKey("WorkflowException"))
1022     }
1023
1024     @Test
1025     public void processJavaException_Ex() {
1026         ExecutionEntity mex = setupMock()
1027         def map = setupMap(mex)
1028         initProcessJavaException(mex)
1029
1030         when(mex.getVariables()).thenThrow(new RuntimeException("expected exception"))
1031
1032         CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
1033
1034         assertTrue(doBpmnError({ _ -> CreateVcpeResCustService.processJavaException(mex) }))
1035
1036         def wfe = map.get("WorkflowException")
1037
1038         assertEquals("Exception in processJavaException method", wfe.getErrorMessage())
1039     }
1040
1041
1042     private void initPreProcess(ExecutionEntity mex) {
1043         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1044         when(mex.getVariable("bpmnRequest")).thenReturn(request)
1045         when(mex.getVariable("aai.workflowAaiDistributionDelay")).thenReturn("PT5S")
1046         when(mex.getVariable("mso-request-id")).thenReturn("mri")
1047         when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1048         when(mex.getVariable("requestAction")).thenReturn("ra")
1049     }
1050
1051     private initSendSyncResponse(ExecutionEntity mex) {
1052         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1053         when(mex.getVariable("mso-request-id")).thenReturn("mri")
1054         when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1055     }
1056
1057     private void initPrepareDecomposeService(ExecutionEntity mex) {
1058         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1059         when(mex.getVariable("createVcpeServiceRequest")).thenReturn('{"requestDetails":{"modelInfo":"mi"}}')
1060     }
1061
1062     private ServiceDecomposition initPrepareCreateServiceInstance(ExecutionEntity mex) {
1063         ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1064
1065         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1066         when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1067         when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1068
1069         return svcdecomp
1070     }
1071
1072     private void initPostProcessServiceInstanceCreate(ExecutionEntity mex) {
1073         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1074         when(mex.getVariable("mso-request-id")).thenReturn("mri")
1075         when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1076         when(mex.getVariable("serviceInstanceName")).thenReturn("sin")
1077     }
1078
1079     private ServiceDecomposition initProcessDecomposition(ExecutionEntity mex) {
1080         List<VnfResource> vnflst = new LinkedList<>()
1081         vnflst.add(makeVnf("", ""))
1082         vnflst.add(makeVnf("2", "BRG"))
1083         vnflst.add(makeVnf("3", "BRG"))
1084
1085         ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1086         when(svcdecomp.getVnfResources()).thenReturn(vnflst)
1087
1088         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1089         when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1090         when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1091         when(mex.getVariable("serviceInstanceName")).thenReturn("sin")
1092
1093         return svcdecomp
1094     }
1095
1096     private ServiceDecomposition initFilterVnfs(ExecutionEntity mex) {
1097         List<VnfResource> vnflst = new LinkedList<>()
1098         vnflst.add(makeVnf("", "BRG"))
1099         vnflst.add(makeVnf("2", "Tunnel XConn"))
1100         vnflst.add(makeVnf("3", ""))
1101         vnflst.add(makeVnf("4", "BRG"))
1102         vnflst.add(makeVnf("5", "other"))
1103
1104         ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1105         when(svcdecomp.getVnfResources()).thenReturn(vnflst)
1106
1107         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1108         when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1109         when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1110         when(mex.getVariable("serviceInstanceName")).thenReturn("sin")
1111
1112         return svcdecomp
1113     }
1114
1115     private ServiceDecomposition initPrepareCreateAllottedResourceTXC(ExecutionEntity mex) {
1116         ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1117         List<AllottedResource> arlst = new LinkedList<>()
1118
1119         arlst.add(makeArBRG("A"))
1120         arlst.add(makeArTXC("B"))
1121         arlst.add(makeArBRG("C"))
1122
1123         when(svcdecomp.getAllottedResources()).thenReturn(arlst)
1124
1125         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1126         when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1127         when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1128         when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
1129
1130         return svcdecomp
1131     }
1132
1133     private ServiceDecomposition initPrepareCreateAllottedResourceBRG(ExecutionEntity mex) {
1134         ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1135         List<AllottedResource> arlst = new LinkedList<>()
1136
1137         arlst.add(makeArTXC("A"))
1138         arlst.add(makeArBRG("B"))
1139         arlst.add(makeArTXC("C"))
1140
1141         when(svcdecomp.getAllottedResources()).thenReturn(arlst)
1142
1143         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1144         when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1145         when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1146         when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
1147
1148         return svcdecomp
1149     }
1150
1151     private AllottedResource makeArTXC(String id) {
1152         AllottedResource ar = mock(AllottedResource.class)
1153         ModelInfo mod = mock(ModelInfo.class)
1154         HomingSolution home = mock(HomingSolution.class)
1155
1156         when(ar.toJsonStringNoRootName()).thenReturn("json" + id)
1157         when(ar.getAllottedResourceType()).thenReturn("Tunnel XConn")
1158         when(ar.getModelInfo()).thenReturn(mod)
1159         when(ar.getAllottedResourceRole()).thenReturn("TXCr")
1160         when(ar.getHomingSolution()).thenReturn(home)
1161
1162         when(mod.toJsonStringNoRootName()).thenReturn("model" + id)
1163
1164         when(home.getServiceInstanceId()).thenReturn("home" + id)
1165
1166         return ar
1167     }
1168
1169     private AllottedResource makeArBRG(String id) {
1170         AllottedResource ar = mock(AllottedResource.class)
1171         ModelInfo mod = mock(ModelInfo.class)
1172         HomingSolution home = mock(HomingSolution.class)
1173
1174         when(ar.toJsonStringNoRootName()).thenReturn("json" + id)
1175         when(ar.getAllottedResourceType()).thenReturn("BRG")
1176         when(ar.getModelInfo()).thenReturn(mod)
1177         when(ar.getAllottedResourceRole()).thenReturn("BRGr")
1178         when(ar.getHomingSolution()).thenReturn(home)
1179
1180         when(mod.toJsonStringNoRootName()).thenReturn("model" + id)
1181
1182         when(home.getServiceInstanceId()).thenReturn("home" + id)
1183
1184         return ar
1185     }
1186
1187     private initPrepareVnfAndModulesCreate(ExecutionEntity mex) {
1188
1189         List<VnfResource> vnflst = new LinkedList<>()
1190
1191         vnflst.add(makeVnf("A", "BRG"))
1192         vnflst.add(makeVnf("B", ""))
1193         vnflst.add(makeVnf("C", ""))
1194         vnflst.add(makeVnf("D", "Tunnel XConn"))
1195
1196         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1197         when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1198         when(mex.getVariable("vnfList")).thenReturn(vnflst)
1199         when(mex.getVariable(Prefix + "VnfsCreatedCount")).thenReturn(2)
1200         when(mex.getVariable("vnfModelInfo")).thenReturn("nomodel")
1201         when(mex.getVariable("sdncVersion")).thenReturn("myvers")
1202     }
1203
1204     private VnfResource makeVnf(String id, String role) {
1205         ModelInfo mod = mock(ModelInfo.class)
1206         VnfResource vnf = mock(VnfResource.class)
1207
1208         when(mod.toString()).thenReturn('{"modelInfo":"mymodel' + id + '"}')
1209
1210         when(vnf.toString()).thenReturn("myvnf" + id)
1211         when(vnf.getModelInfo()).thenReturn(mod)
1212         when(vnf.getNfRole()).thenReturn(role)
1213
1214         return vnf
1215     }
1216
1217     private initValidateVnfCreate(ExecutionEntity mex) {
1218         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1219         when(mex.getVariable(Prefix + "VnfsCreatedCount")).thenReturn(2)
1220     }
1221
1222     private initPostProcessResponse(ExecutionEntity mex) {
1223         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1224         when(mex.getVariable("source")).thenReturn("mysrc")
1225         when(mex.getVariable("mso-request-id")).thenReturn("mri")
1226         when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1227     }
1228
1229     private WorkflowException initPreProcessRollback(ExecutionEntity mex) {
1230         WorkflowException wfe = mock(WorkflowException.class)
1231
1232         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1233         when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1234
1235         return wfe
1236     }
1237
1238     private WorkflowException initPostProcessRollback(ExecutionEntity mex) {
1239         WorkflowException wfe = mock(WorkflowException.class)
1240
1241         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1242         when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
1243
1244         return wfe
1245     }
1246
1247     private initPrepareFalloutRequest(ExecutionEntity mex) {
1248         WorkflowException wfe = mock(WorkflowException.class)
1249
1250         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1251         when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1252         when(mex.getVariable(Prefix + "requestInfo")).thenReturn("<hello>world</hello>")
1253
1254         return wfe
1255     }
1256
1257     private initSendSyncError(ExecutionEntity mex) {
1258         WorkflowException wfe = mock(WorkflowException.class)
1259
1260         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1261         when(mex.getVariable("mso-request-id")).thenReturn("mri")
1262         when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1263
1264         when(wfe.getErrorMessage()).thenReturn("mymsg")
1265     }
1266
1267     private initProcessJavaException(ExecutionEntity mex) {
1268         when(mex.getVariable(DBGFLAG)).thenReturn("true")
1269     }
1270
1271 }