2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
20 package org.onap.so.bpmn.vcpe.scripts
23 import org.camunda.bpm.engine.ProcessEngineServices
24 import org.camunda.bpm.engine.RepositoryService
25 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
26 import org.camunda.bpm.engine.repository.ProcessDefinition
27 import org.junit.Before
28 import org.junit.BeforeClass
31 import org.junit.Ignore
32 import org.mockito.MockitoAnnotations
33 import org.camunda.bpm.engine.delegate.BpmnError
34 import org.onap.so.bpmn.core.WorkflowException
35 import org.onap.so.bpmn.core.domain.HomingSolution
36 import org.onap.so.bpmn.mock.FileUtil
38 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse
39 import static com.github.tomakehurst.wiremock.client.WireMock.get
40 import static com.github.tomakehurst.wiremock.client.WireMock.patch
41 import static com.github.tomakehurst.wiremock.client.WireMock.put
42 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor
43 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching
44 import static org.junit.Assert.*;
45 import static org.mockito.Mockito.*
46 import static org.onap.so.bpmn.mock.StubResponseAAI.MockGetAllottedResource
47 import org.onap.so.bpmn.core.domain.ServiceDecomposition
48 import org.onap.so.bpmn.core.domain.VnfResource
49 import org.onap.so.bpmn.core.domain.AllottedResource
50 import org.onap.so.bpmn.core.domain.ModelInfo
51 import org.onap.so.bpmn.core.domain.HomingSolution
52 import org.onap.so.bpmn.core.RollbackData
53 import org.onap.so.bpmn.vcpe.scripts.MapGetter
54 import org.onap.so.bpmn.vcpe.scripts.MapSetter
56 import com.github.tomakehurst.wiremock.junit.WireMockRule
58 class CreateVcpeResCustServiceTest extends GroovyTestBase {
60 private static String request
63 public WireMockRule wireMockRule = new WireMockRule(PORT)
65 String Prefix = "CVRCS_"
66 String RbType = "DCRENI_"
69 public static void setUpBeforeClass() {
70 request = FileUtil.readResourceFile("__files/VCPE/CreateVcpeResCustService/request.json")
76 MockitoAnnotations.initMocks(this)
79 public CreateVcpeResCustServiceTest() {
80 super("CreateVcpeResCustService")
84 // ***** preProcessRequest *****
88 public void preProcessRequest() {
89 ExecutionEntity mex = setupMock()
90 def map = setupMap(mex)
93 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
94 CreateVcpeResCustService.preProcessRequest(mex)
96 verify(mex).getVariable(DBGFLAG)
97 verify(mex).setVariable("prefix", Prefix)
98 verify(mex).setVariable("aaiDistDelay", "aaidelay")
99 verify(mex).setVariable("createVcpeServiceRequest", request)
100 verify(mex).setVariable("msoRequestId", "mri")
101 assertEquals("sii", map.get("serviceInstanceId"))
102 verify(mex).setVariable("requestAction", "ra")
103 verify(mex).setVariable("source", "VID")
104 verify(mex).setVariable("globalSubscriberId", CUST)
105 verify(mex).setVariable("globalCustomerId", CUST)
106 verify(mex).setVariable("subscriptionServiceType", SVC)
107 verify(mex).setVariable("disableRollback", "false")
108 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
109 assertTrue(map.containsKey("subscriberInfo"))
111 verify(mex).setVariable("brgWanMacAddress", "brgmac")
112 verify(mex).setVariable("customerLocation", ["customerLatitude":"32.897480", "customerLongitude":"-97.040443", "customerName":"some_company"])
113 verify(mex).setVariable("homingService", "sniro")
114 assertTrue(map.containsKey("serviceInputParams"))
115 assertTrue(map.containsKey(Prefix+"requestInfo"))
117 def reqinfo = map.get(Prefix+"requestInfo")
118 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
119 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
124 public void preProcessRequest_MissingAaiDistDelay() {
125 ExecutionEntity mex = setupMock()
126 def map = setupMap(mex)
129 when(mex.getVariable("URN_mso_workflow_aai_distribution_delay")).thenReturn(null)
131 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
133 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
137 @Ignore // 1802 merge
138 public void preProcessRequest_EmptyParts() {
139 ExecutionEntity mex = setupMock()
140 def map = setupMap(mex)
144 .replace('"source"', '"sourceXXX"')
145 .replace('"BRG_WAN_MAC_Address"', '"BRG_WAN_MAC_AddressXXX"')
146 .replace('"Customer_Location"', '"Customer_LocationXXX"')
148 when(mex.getVariable("bpmnRequest")).thenReturn(req)
149 when(mex.getVariable("serviceInstanceId")).thenReturn(null)
151 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
152 CreateVcpeResCustService.preProcessRequest(mex)
154 verify(mex).getVariable(DBGFLAG)
155 verify(mex).setVariable("prefix", Prefix)
156 verify(mex).setVariable("createVcpeServiceRequest", req)
157 verify(mex).setVariable("msoRequestId", "mri")
158 assertNotNull(map.get("serviceInstanceId"))
159 assertFalse(map.get("serviceInstanceId").isEmpty())
160 verify(mex).setVariable("requestAction", "ra")
161 verify(mex).setVariable("source", "VID")
162 verify(mex).setVariable("globalSubscriberId", CUST)
163 verify(mex).setVariable("globalCustomerId", CUST)
164 verify(mex).setVariable("subscriptionServiceType", SVC)
165 verify(mex).setVariable("disableRollback", "false")
166 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
167 assertTrue(map.containsKey("subscriberInfo"))
169 assertEquals("", map.get("brgWanMacAddress"))
170 assertEquals("", map.get("customerLocation"))
171 assertEquals("oof", map.get("homingService"))
172 assertTrue(map.containsKey("serviceInputParams"))
173 assertTrue(map.containsKey(Prefix+"requestInfo"))
175 def reqinfo = map.get(Prefix+"requestInfo")
177 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
178 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
183 public void preProcessRequest_MissingSubscriberId() {
184 ExecutionEntity mex = setupMock()
185 def map = setupMap(mex)
189 .replace('"globalSubscriberId"', '"globalSubscriberIdXXX"')
191 when(mex.getVariable("bpmnRequest")).thenReturn(req)
192 when(mex.getVariable("serviceInstanceId")).thenReturn(null)
194 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
196 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
201 public void preProcessRequest_BpmnError() {
202 ExecutionEntity mex = setupMock()
205 when(mex.getVariable("bpmnRequest")).thenThrow(new BpmnError("expected exception"))
207 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
209 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
214 public void preProcessRequest_Ex() {
215 ExecutionEntity mex = setupMock()
218 when(mex.getVariable("bpmnRequest")).thenThrow(new RuntimeException("expected exception"))
220 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
222 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
225 // ***** sendSyncResponse *****
229 public void sendSyncResponse() {
230 ExecutionEntity mex = setupMock()
231 def map = setupMap(mex)
232 initSendSyncResponse(mex)
234 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
235 CreateVcpeResCustService.sendSyncResponse(mex)
237 verify(mex, times(2)).getVariable(DBGFLAG)
239 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
241 assertEquals("202", map.get(processName+"ResponseCode"))
242 assertEquals("Success", map.get(processName+"Status"))
244 def resp = map.get(processName+"Response")
246 assertTrue(resp.indexOf('"instanceId":"sii"') >= 0)
247 assertTrue(resp.indexOf('"requestId":"mri"') >= 0)
252 public void sendSyncResponse_Ex() {
253 ExecutionEntity mex = setupMock()
254 initSendSyncResponse(mex)
256 when(mex.getVariable("serviceInstanceId")).thenThrow(new RuntimeException("expected exception"))
258 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
260 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.sendSyncResponse(mex) }))
264 // ***** prepareDecomposeService *****
268 public void prepareDecomposeService() {
269 ExecutionEntity mex = setupMock()
270 initPrepareDecomposeService(mex)
272 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
273 CreateVcpeResCustService.prepareDecomposeService(mex)
275 verify(mex).getVariable(DBGFLAG)
276 verify(mex).setVariable("serviceModelInfo", "mi")
281 public void prepareDecomposeService_Ex() {
282 ExecutionEntity mex = setupMock()
283 initPrepareDecomposeService(mex)
285 when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
287 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
289 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareDecomposeService(mex) }))
293 // ***** prepareCreateServiceInstance *****
297 public void prepareCreateServiceInstance() {
298 ExecutionEntity mex = setupMock()
299 initPrepareCreateServiceInstance(mex)
301 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
302 CreateVcpeResCustService.prepareCreateServiceInstance(mex)
304 verify(mex).getVariable(DBGFLAG)
305 verify(mex).setVariable("serviceInstanceName", "VCPE1")
306 verify(mex).setVariable("serviceDecompositionString", "mydecomp")
311 public void prepareCreateServiceInstance_Ex() {
312 ExecutionEntity mex = setupMock()
313 initPrepareCreateServiceInstance(mex)
315 when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
317 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
319 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareCreateServiceInstance(mex) }))
323 // ***** postProcessServiceInstanceCreate *****
327 public void postProcessServiceInstanceCreate() {
328 ExecutionEntity mex = setupMock()
329 def map = setupMap(mex)
330 initPostProcessServiceInstanceCreate(mex)
332 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
333 CreateVcpeResCustService.postProcessServiceInstanceCreate(mex)
335 verify(mex).getVariable(DBGFLAG)
337 def reqinfo = map.get(Prefix+"setUpdateDbInstancePayload")
339 assertTrue(reqinfo.indexOf("<requestId>mri</") >= 0)
340 assertTrue(reqinfo.indexOf("<serviceInstanceId>sii</") >= 0)
341 assertTrue(reqinfo.indexOf("<serviceInstanceName>sin</") >= 0)
346 public void postProcessServiceInstanceCreate_BpmnError() {
347 ExecutionEntity mex = setupMock()
348 initPostProcessServiceInstanceCreate(mex)
350 doThrow(new BpmnError("expected exception")).when(mex).setVariable(endsWith("setUpdateDbInstancePayload"), any())
352 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
354 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessServiceInstanceCreate(mex) }))
359 public void postProcessServiceInstanceCreate_Ex() {
360 ExecutionEntity mex = setupMock()
361 initPostProcessServiceInstanceCreate(mex)
363 doThrow(new RuntimeException("expected exception")).when(mex).setVariable(endsWith("setUpdateDbInstancePayload"), any())
365 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
367 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessServiceInstanceCreate(mex) }))
371 // ***** processDecomposition *****
375 public void processDecomposition() {
376 ExecutionEntity mex = setupMock()
377 def svcdecomp = initProcessDecomposition(mex)
379 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
380 CreateVcpeResCustService.processDecomposition(mex)
382 verify(mex).getVariable(DBGFLAG)
384 verify(mex).setVariable("vnfList", svcdecomp.getVnfResources())
385 verify(mex).setVariable("vnfListString", '[myvnf]')
386 verify(mex).setVariable(Prefix+"VNFsCount", 1)
388 verify(mex).setVariable("vnfModelInfo", "mymodel")
389 verify(mex).setVariable("vnfModelInfoString", "mymodel")
394 public void processDecomposition_EmptyNet_EmptyVnf() {
395 ExecutionEntity mex = setupMock()
396 def svcdecomp = initProcessDecomposition(mex)
398 when(svcdecomp.getVnfResources()).thenReturn(new LinkedList<VnfResource>())
400 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
401 CreateVcpeResCustService.processDecomposition(mex)
403 verify(mex).getVariable(DBGFLAG)
405 verify(mex).setVariable("vnfList", svcdecomp.getVnfResources())
406 verify(mex).setVariable("vnfListString", '[]')
407 verify(mex).setVariable(Prefix+"VNFsCount", 0)
409 verify(mex).setVariable("vnfModelInfo", "")
410 verify(mex).setVariable("vnfModelInfoString", "")
415 public void processDecomposition_Ex() {
416 ExecutionEntity mex = setupMock()
417 def svcdecomp = initProcessDecomposition(mex)
419 when(svcdecomp.getVnfResources()).thenThrow(new RuntimeException("expected exception"))
421 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
423 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.processDecomposition(mex) }))
427 // ***** filterVnfs *****
431 public void filterVnfs() {
432 ExecutionEntity mex = setupMock()
433 def svcdecomp = initFilterVnfs(mex)
435 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
436 CreateVcpeResCustService.processDecomposition(mex)
438 verify(mex).setVariable("vnfListString", '[myvnf3, myvnf5]')
443 public void filterVnfs_Null() {
444 ExecutionEntity mex = setupMock()
445 def svcdecomp = initFilterVnfs(mex)
447 when(svcdecomp.getVnfResources()).thenReturn(null)
449 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
450 CreateVcpeResCustService.processDecomposition(mex)
452 // nothing more to check, as long as it didn't throw an exception
456 // ***** prepareCreateAllottedResourceTXC *****
460 public void prepareCreateAllottedResourceTXC() {
461 ExecutionEntity mex = setupMock()
462 initPrepareCreateAllottedResourceTXC(mex)
464 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
465 CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex)
467 verify(mex).getVariable(DBGFLAG)
469 verify(mex).setVariable("createTXCAR", true)
470 verify(mex).setVariable("allottedResourceModelInfoTXC", "modelB")
471 verify(mex).setVariable("allottedResourceRoleTXC", "TXCr")
472 verify(mex).setVariable("allottedResourceTypeTXC", "Tunnel XConn")
473 verify(mex).setVariable("parentServiceInstanceIdTXC", "homeB")
478 public void prepareCreateAllottedResourceTXC_NullArList() {
479 ExecutionEntity mex = setupMock()
480 def svcdecomp = initPrepareCreateAllottedResourceTXC(mex)
482 when(svcdecomp.getAllottedResources()).thenReturn(null)
484 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
485 CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex)
487 verify(mex).getVariable(DBGFLAG)
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")
498 public void prepareCreateAllottedResourceTXC_Ex() {
499 ExecutionEntity mex = setupMock()
500 initPrepareCreateAllottedResourceTXC(mex)
502 when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
504 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
506 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex) }))
510 // ***** prepareCreateAllottedResourceBRG *****
514 public void prepareCreateAllottedResourceBRG() {
515 ExecutionEntity mex = setupMock()
516 initPrepareCreateAllottedResourceBRG(mex)
518 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
519 CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex)
521 verify(mex).getVariable(DBGFLAG)
523 verify(mex).setVariable("createBRGAR", true)
524 verify(mex).setVariable("allottedResourceModelInfoBRG", "modelB")
525 verify(mex).setVariable("allottedResourceRoleBRG", "BRGr")
526 verify(mex).setVariable("allottedResourceTypeBRG", "BRG")
527 verify(mex).setVariable("parentServiceInstanceIdBRG", "homeB")
532 public void prepareCreateAllottedResourceBRG_NullArList() {
533 ExecutionEntity mex = setupMock()
534 def svcdecomp = initPrepareCreateAllottedResourceBRG(mex)
536 when(svcdecomp.getAllottedResources()).thenReturn(null)
538 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
539 CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex)
541 verify(mex).getVariable(DBGFLAG)
543 verify(mex, never()).setVariable("createBRGAR", true)
544 verify(mex, never()).setVariable("allottedResourceModelInfoBRG", "modelB")
545 verify(mex, never()).setVariable("allottedResourceRoleBRG", "BRGr")
546 verify(mex, never()).setVariable("allottedResourceTypeBRG", "BRG")
547 verify(mex, never()).setVariable("parentServiceInstanceIdBRG", "homeB")
552 public void prepareCreateAllottedResourceBRG_Ex() {
553 ExecutionEntity mex = setupMock()
554 initPrepareCreateAllottedResourceBRG(mex)
556 when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
558 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
560 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex) }))
564 // ***** prepareVnfAndModulesCreate *****
568 public void prepareVnfAndModulesCreate() {
569 ExecutionEntity mex = setupMock()
570 initPrepareVnfAndModulesCreate(mex)
572 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
573 CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
575 verify(mex).getVariable(DBGFLAG)
577 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
578 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
579 verify(mex).setVariable("cloudOwner", "my-cloud-owner")
580 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
585 public void prepareVnfAndModulesCreate_EmptyList() {
586 ExecutionEntity mex = setupMock()
587 initPrepareVnfAndModulesCreate(mex)
589 when(mex.getVariable("vnfList")).thenReturn(new LinkedList<VnfResource>())
591 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
592 CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
594 verify(mex).getVariable(DBGFLAG)
596 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
597 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
598 verify(mex).setVariable("cloudOwner", "my-cloud-owner")
599 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
604 public void prepareVnfAndModulesCreate_NullList() {
605 ExecutionEntity mex = setupMock()
606 initPrepareVnfAndModulesCreate(mex)
608 when(mex.getVariable("vnfList")).thenReturn(null)
610 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
611 CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
613 verify(mex).getVariable(DBGFLAG)
615 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
616 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
617 verify(mex).setVariable("cloudOwner", "my-cloud-owner")
618 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
623 public void prepareVnfAndModulesCreate_Ex() {
624 ExecutionEntity mex = setupMock()
625 initPrepareVnfAndModulesCreate(mex)
627 when(mex.getVariable("vnfList")).thenThrow(new RuntimeException("expected exception"))
629 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
631 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareVnfAndModulesCreate(mex) }))
635 // ***** validateVnfCreate *****
639 public void validateVnfCreate() {
640 ExecutionEntity mex = setupMock()
641 initValidateVnfCreate(mex)
643 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
644 CreateVcpeResCustService.validateVnfCreate(mex)
646 verify(mex).getVariable(DBGFLAG)
648 verify(mex).setVariable(Prefix+"VnfsCreatedCount", 3)
653 public void validateVnfCreate_Ex() {
654 ExecutionEntity mex = setupMock()
655 initValidateVnfCreate(mex)
657 when(mex.getVariable(Prefix+"VnfsCreatedCount")).thenThrow(new RuntimeException("expected exception"))
659 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
661 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.validateVnfCreate(mex) }))
665 // ***** postProcessResponse *****
669 public void postProcessResponse() {
670 ExecutionEntity mex = setupMock()
671 def map = setupMap(mex)
672 initPostProcessResponse(mex)
674 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
675 CreateVcpeResCustService.postProcessResponse(mex)
677 verify(mex).getVariable(DBGFLAG)
679 verify(mex).setVariable(Prefix+"Success", true)
681 def reqinfo = map.get(Prefix+"CompleteMsoProcessRequest")
683 assertTrue(reqinfo.indexOf("request-id>mri</") >= 0)
684 assertTrue(reqinfo.indexOf("source>mysrc</") >= 0)
685 assertTrue(reqinfo.indexOf("serviceInstanceId>sii</") >= 0)
690 public void postProcessResponse_BpmnError() {
691 ExecutionEntity mex = setupMock()
692 def map = setupMap(mex)
693 initPostProcessResponse(mex)
695 when(mex.getVariable("source")).thenThrow(new BpmnError("expected exception"))
697 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
699 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessResponse(mex) }))
704 public void postProcessResponse_Ex() {
705 ExecutionEntity mex = setupMock()
706 def map = setupMap(mex)
707 initPostProcessResponse(mex)
709 when(mex.getVariable("source")).thenThrow(new RuntimeException("expected exception"))
711 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
713 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessResponse(mex) }))
717 // ***** preProcessRollback *****
721 public void preProcessRollback() {
722 ExecutionEntity mex = setupMock()
723 def wfe = initPreProcessRollback(mex)
725 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
726 CreateVcpeResCustService.preProcessRollback(mex)
728 verify(mex).getVariable(DBGFLAG)
730 verify(mex).setVariable("prevWorkflowException", wfe)
735 public void preProcessRollback_NullWfe() {
736 ExecutionEntity mex = setupMock()
737 def map = setupMap(mex)
738 def wfe = initPreProcessRollback(mex)
740 when(mex.getVariable("WorkflowException")).thenReturn(null)
742 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
743 CreateVcpeResCustService.preProcessRollback(mex)
745 verify(mex).getVariable(DBGFLAG)
747 assertFalse(map.containsKey("prevWorkflowException"))
752 public void preProcessRollback_BpmnError() {
753 ExecutionEntity mex = setupMock()
754 def map = setupMap(mex)
755 def wfe = initPreProcessRollback(mex)
757 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
759 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
760 CreateVcpeResCustService.preProcessRollback(mex)
762 verify(mex).getVariable(DBGFLAG)
764 assertFalse(map.containsKey("prevWorkflowException"))
769 public void preProcessRollback_Ex() {
770 ExecutionEntity mex = setupMock()
771 def map = setupMap(mex)
772 def wfe = initPreProcessRollback(mex)
774 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
776 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
777 CreateVcpeResCustService.preProcessRollback(mex)
779 verify(mex).getVariable(DBGFLAG)
781 assertFalse(map.containsKey("prevWorkflowException"))
785 // ***** postProcessRollback *****
789 public void postProcessRollback() {
790 ExecutionEntity mex = setupMock()
791 def wfe = initPostProcessRollback(mex)
793 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
794 CreateVcpeResCustService.postProcessRollback(mex)
796 verify(mex).getVariable(DBGFLAG)
798 verify(mex).setVariable("WorkflowException", wfe)
803 public void postProcessRollback_NullWfe() {
804 ExecutionEntity mex = setupMock()
805 def map = setupMap(mex)
806 def wfe = initPostProcessRollback(mex)
808 when(mex.getVariable("prevWorkflowException")).thenReturn(null)
810 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
811 CreateVcpeResCustService.postProcessRollback(mex)
813 verify(mex).getVariable(DBGFLAG)
815 assertFalse(map.containsKey("WorkflowException"))
820 public void postProcessRollback_BpmnError() {
821 ExecutionEntity mex = setupMock()
822 def map = setupMap(mex)
823 def wfe = initPostProcessRollback(mex)
825 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
827 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
828 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessRollback(mex) }))
833 public void postProcessRollback_Ex() {
834 ExecutionEntity mex = setupMock()
835 def map = setupMap(mex)
836 def wfe = initPostProcessRollback(mex)
838 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
840 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
841 CreateVcpeResCustService.postProcessRollback(mex)
843 verify(mex).getVariable(DBGFLAG)
845 assertFalse(map.containsKey("WorkflowException"))
849 // ***** prepareFalloutRequest *****
853 public void prepareFalloutRequest() {
854 ExecutionEntity mex = setupMock()
855 def map = setupMap(mex)
856 initPrepareFalloutRequest(mex)
858 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
859 CreateVcpeResCustService.prepareFalloutRequest(mex)
861 verify(mex, times(2)).getVariable(DBGFLAG)
863 def fo = map.get(Prefix+"falloutRequest")
865 assertTrue(fo.indexOf("<hello>world</") >= 0)
866 assertTrue(fo.indexOf("ErrorMessage>mymsg</") >= 0)
867 assertTrue(fo.indexOf("ErrorCode>999</") >= 0)
872 public void prepareFalloutRequest_Ex() {
873 ExecutionEntity mex = setupMock()
874 def map = setupMap(mex)
875 initPrepareFalloutRequest(mex)
877 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
879 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
881 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareFalloutRequest(mex) }))
884 // ***** sendSyncError *****
888 public void sendSyncError() {
889 ExecutionEntity mex = setupMock()
890 def map = setupMap(mex)
891 initSendSyncError(mex)
893 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
894 CreateVcpeResCustService.sendSyncError(mex)
896 verify(mex, times(2)).getVariable(DBGFLAG)
898 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
900 assertEquals("500", map.get(processName+"ResponseCode"))
901 assertEquals("Fail", map.get(processName+"Status"))
903 def resp = map.get(processName+"Response")
905 assertTrue(resp.indexOf("ErrorMessage>mymsg</") >= 0)
907 verify(mex).setVariable("WorkflowResponse", resp)
912 public void sendSyncError_NotWfe() {
913 ExecutionEntity mex = setupMock()
914 def map = setupMap(mex)
915 initSendSyncError(mex)
917 when(mex.getVariable("WorkflowException")).thenReturn("not a WFE")
919 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
920 CreateVcpeResCustService.sendSyncError(mex)
922 verify(mex, times(2)).getVariable(DBGFLAG)
924 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
926 assertEquals("500", map.get(processName+"ResponseCode"))
927 assertEquals("Fail", map.get(processName+"Status"))
929 def resp = map.get(processName+"Response")
931 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
933 verify(mex).setVariable("WorkflowResponse", resp)
938 public void sendSyncError_NullWfe() {
939 ExecutionEntity mex = setupMock()
940 def map = setupMap(mex)
941 initSendSyncError(mex)
943 when(mex.getVariable("WorkflowException")).thenReturn(null)
945 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
946 CreateVcpeResCustService.sendSyncError(mex)
948 verify(mex, times(2)).getVariable(DBGFLAG)
950 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
952 assertEquals("500", map.get(processName+"ResponseCode"))
953 assertEquals("Fail", map.get(processName+"Status"))
955 def resp = map.get(processName+"Response")
957 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
959 verify(mex).setVariable("WorkflowResponse", resp)
964 public void sendSyncError_Ex() {
965 ExecutionEntity mex = setupMock()
966 def map = setupMap(mex)
967 initSendSyncError(mex)
969 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
971 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
973 CreateVcpeResCustService.sendSyncError(mex)
975 assertFalse(map.containsKey(processName+"ResponseCode"))
979 // ***** processJavaException *****
983 public void processJavaException() {
984 ExecutionEntity mex = setupMock()
985 def map = setupMap(mex)
986 initProcessJavaException(mex)
988 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
990 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.processJavaException(mex) }))
992 verify(mex, times(2)).getVariable(DBGFLAG)
994 verify(mex).setVariable("prefix", Prefix)
996 def wfe = map.get("WorkflowException")
998 assertEquals("Caught a Java Lang Exception", wfe.getErrorMessage())
1003 public void processJavaException_BpmnError() {
1004 ExecutionEntity mex = setupMock()
1005 def map = setupMap(mex)
1006 initProcessJavaException(mex)
1008 when(mex.getVariables()).thenThrow(new BpmnError("expected exception"))
1010 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
1012 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.processJavaException(mex) }))
1014 assertFalse(map.containsKey("WorkflowException"))
1019 public void processJavaException_Ex() {
1020 ExecutionEntity mex = setupMock()
1021 def map = setupMap(mex)
1022 initProcessJavaException(mex)
1024 when(mex.getVariables()).thenThrow(new RuntimeException("expected exception"))
1026 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
1028 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.processJavaException(mex) }))
1030 def wfe = map.get("WorkflowException")
1032 assertEquals("Exception in processJavaException method", wfe.getErrorMessage())
1036 private void initPreProcess(ExecutionEntity mex) {
1037 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1038 when(mex.getVariable("bpmnRequest")).thenReturn(request)
1039 when(mex.getVariable("URN_mso_workflow_aai_distribution_delay")).thenReturn("aaidelay")
1040 when(mex.getVariable("mso-request-id")).thenReturn("mri")
1041 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1042 when(mex.getVariable("requestAction")).thenReturn("ra")
1045 private initSendSyncResponse(ExecutionEntity mex) {
1046 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1047 when(mex.getVariable("mso-request-id")).thenReturn("mri")
1048 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1051 private void initPrepareDecomposeService(ExecutionEntity mex) {
1052 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1053 when(mex.getVariable("createVcpeServiceRequest")).thenReturn('{"requestDetails":{"modelInfo":"mi"}}')
1056 private void initPrepareCreateServiceInstance(ExecutionEntity mex) {
1057 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1059 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1060 when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1061 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1063 when(svcdecomp.toJsonStringNoRootName()).thenReturn("mydecomp")
1066 private void initPostProcessServiceInstanceCreate(ExecutionEntity mex) {
1067 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1068 when(mex.getVariable("mso-request-id")).thenReturn("mri")
1069 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1070 when(mex.getVariable("serviceInstanceName")).thenReturn("sin")
1073 private ServiceDecomposition initProcessDecomposition(ExecutionEntity mex) {
1074 List<VnfResource> vnflst = new LinkedList<>()
1075 vnflst.add(makeVnf("", ""))
1076 vnflst.add(makeVnf("2", "BRG"))
1077 vnflst.add(makeVnf("3", "BRG"))
1079 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1080 when(svcdecomp.getVnfResources()).thenReturn(vnflst)
1082 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1083 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1084 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1085 when(mex.getVariable("serviceInstanceName")).thenReturn("sin")
1090 private ServiceDecomposition initFilterVnfs(ExecutionEntity mex) {
1091 List<VnfResource> vnflst = new LinkedList<>()
1092 vnflst.add(makeVnf("", "BRG"))
1093 vnflst.add(makeVnf("2", "Tunnel XConn"))
1094 vnflst.add(makeVnf("3", ""))
1095 vnflst.add(makeVnf("4", "BRG"))
1096 vnflst.add(makeVnf("5", "other"))
1098 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1099 when(svcdecomp.getVnfResources()).thenReturn(vnflst)
1101 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1102 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1103 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1104 when(mex.getVariable("serviceInstanceName")).thenReturn("sin")
1109 private initAwaitAaiDistribution(ExecutionEntity mex) {
1110 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1113 private ServiceDecomposition initPrepareCreateAllottedResourceTXC(ExecutionEntity mex) {
1114 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1115 List<AllottedResource> arlst = new LinkedList<>()
1117 arlst.add(makeArBRG("A"))
1118 arlst.add(makeArTXC("B"))
1119 arlst.add(makeArBRG("C"))
1121 when(svcdecomp.getAllottedResources()).thenReturn(arlst)
1123 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1124 when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1125 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1126 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
1131 private ServiceDecomposition initPrepareCreateAllottedResourceBRG(ExecutionEntity mex) {
1132 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1133 List<AllottedResource> arlst = new LinkedList<>()
1135 arlst.add(makeArTXC("A"))
1136 arlst.add(makeArBRG("B"))
1137 arlst.add(makeArTXC("C"))
1139 when(svcdecomp.getAllottedResources()).thenReturn(arlst)
1141 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1142 when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1143 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1144 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
1149 private AllottedResource makeArTXC(String id) {
1150 AllottedResource ar = mock(AllottedResource.class)
1151 ModelInfo mod = mock(ModelInfo.class)
1152 HomingSolution home = mock(HomingSolution.class)
1154 when(ar.toJsonStringNoRootName()).thenReturn("json"+id)
1155 when(ar.getAllottedResourceType()).thenReturn("Tunnel XConn")
1156 when(ar.getModelInfo()).thenReturn(mod)
1157 when(ar.getAllottedResourceRole()).thenReturn("TXCr")
1158 when(ar.getHomingSolution()).thenReturn(home)
1160 when(mod.toJsonStringNoRootName()).thenReturn("model"+id)
1162 when(home.getServiceInstanceId()).thenReturn("home"+id)
1167 private AllottedResource makeArBRG(String id) {
1168 AllottedResource ar = mock(AllottedResource.class)
1169 ModelInfo mod = mock(ModelInfo.class)
1170 HomingSolution home = mock(HomingSolution.class)
1172 when(ar.toJsonStringNoRootName()).thenReturn("json"+id)
1173 when(ar.getAllottedResourceType()).thenReturn("BRG")
1174 when(ar.getModelInfo()).thenReturn(mod)
1175 when(ar.getAllottedResourceRole()).thenReturn("BRGr")
1176 when(ar.getHomingSolution()).thenReturn(home)
1178 when(mod.toJsonStringNoRootName()).thenReturn("model"+id)
1180 when(home.getServiceInstanceId()).thenReturn("home"+id)
1185 private initPrepareVnfAndModulesCreate(ExecutionEntity mex) {
1187 List<VnfResource> vnflst = new LinkedList<>()
1189 vnflst.add(makeVnf("A", "BRG"))
1190 vnflst.add(makeVnf("B", ""))
1191 vnflst.add(makeVnf("C", ""))
1192 vnflst.add(makeVnf("D", "Tunnel XConn"))
1194 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1195 when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1196 when(mex.getVariable("vnfList")).thenReturn(vnflst)
1197 when(mex.getVariable(Prefix+"VnfsCreatedCount")).thenReturn(2)
1198 when(mex.getVariable("vnfModelInfo")).thenReturn("nomodel")
1199 when(mex.getVariable("sdncVersion")).thenReturn("myvers")
1202 private VnfResource makeVnf(String id, String role) {
1203 ModelInfo mod = mock(ModelInfo.class)
1204 VnfResource vnf = mock(VnfResource.class)
1206 when(mod.toString()).thenReturn('{"modelInfo":"mymodel'+id+'"}')
1208 when(vnf.toString()).thenReturn("myvnf"+id)
1209 when(vnf.getModelInfo()).thenReturn(mod)
1210 when(vnf.getNfRole()).thenReturn(role)
1215 private initValidateVnfCreate(ExecutionEntity mex) {
1216 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1217 when(mex.getVariable(Prefix+"VnfsCreatedCount")).thenReturn(2)
1220 private initPostProcessResponse(ExecutionEntity mex) {
1221 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1222 when(mex.getVariable("source")).thenReturn("mysrc")
1223 when(mex.getVariable("mso-request-id")).thenReturn("mri")
1224 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1227 private WorkflowException initPreProcessRollback(ExecutionEntity mex) {
1228 WorkflowException wfe = mock(WorkflowException.class)
1230 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1231 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1236 private WorkflowException initPostProcessRollback(ExecutionEntity mex) {
1237 WorkflowException wfe = mock(WorkflowException.class)
1239 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1240 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
1245 private initPrepareFalloutRequest(ExecutionEntity mex) {
1246 WorkflowException wfe = mock(WorkflowException.class)
1248 when(wfe.getErrorMessage()).thenReturn("mymsg")
1249 when(wfe.getErrorCode()).thenReturn(999)
1251 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1252 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1253 when(mex.getVariable(Prefix+"requestInfo")).thenReturn("<hello>world</hello>")
1258 private initSendSyncError(ExecutionEntity mex) {
1259 WorkflowException wfe = mock(WorkflowException.class)
1261 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1262 when(mex.getVariable("mso-request-id")).thenReturn("mri")
1263 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1265 when(wfe.getErrorMessage()).thenReturn("mymsg")
1268 private initProcessJavaException(ExecutionEntity mex) {
1269 when(mex.getVariable(DBGFLAG)).thenReturn("true")