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.openecomp.mso.bpmn.vcpe.scripts
23 import org.camunda.bpm.engine.ProcessEngineServices
\r
24 import org.camunda.bpm.engine.RepositoryService
\r
25 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
\r
26 import org.camunda.bpm.engine.repository.ProcessDefinition
\r
27 import org.camunda.bpm.engine.runtime.Execution
\r
28 import org.junit.Before
29 import org.junit.BeforeClass
\r
30 import org.junit.Rule
\r
32 import org.junit.Ignore
\r
33 import org.mockito.MockitoAnnotations
34 import org.camunda.bpm.engine.delegate.BpmnError
\r
35 import org.openecomp.mso.bpmn.core.WorkflowException
36 import org.openecomp.mso.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.*;
\r
45 import static org.mockito.Mockito.*
46 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetAllottedResource
47 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition
48 import org.openecomp.mso.bpmn.core.domain.VnfResource
49 import org.openecomp.mso.bpmn.core.domain.AllottedResource
50 import org.openecomp.mso.bpmn.core.domain.ModelInfo
51 import org.openecomp.mso.bpmn.core.domain.HomingSolution
52 import org.openecomp.mso.bpmn.core.RollbackData
53 import org.openecomp.mso.bpmn.vcpe.scripts.MapGetter
54 import org.openecomp.mso.bpmn.vcpe.scripts.MapSetter
56 import com.github.tomakehurst.wiremock.junit.WireMockRule
\r
58 class CreateVcpeResCustServiceTest extends GroovyTestBase {
60 private static String request
\r
63 public WireMockRule wireMockRule = new WireMockRule(PORT)
65 String Prefix = "CVRCS_"
66 String RbType = "DCRENI_"
\r
69 public static void setUpBeforeClass() {
70 super.setUpBeforeClass()
71 request = FileUtil.readResourceFile("__files/VCPE/CreateVcpeResCustService/request.json")
77 MockitoAnnotations.initMocks(this)
\r
80 public CreateVcpeResCustServiceTest() {
81 super("CreateVcpeResCustService")
85 // ***** preProcessRequest *****
\r
89 public void preProcessRequest() {
\r
90 ExecutionEntity mex = setupMock()
91 def map = setupMap(mex)
94 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
\r
95 CreateVcpeResCustService.preProcessRequest(mex)
\r
97 verify(mex).getVariable(DBGFLAG)
\r
98 verify(mex).setVariable("prefix", Prefix)
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 assertTrue(map.containsKey("serviceInputParams"))
113 assertTrue(map.containsKey(Prefix+"requestInfo"))
115 def reqinfo = map.get(Prefix+"requestInfo")
116 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
117 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
\r
122 public void preProcessRequest_EmptyParts() {
123 ExecutionEntity mex = setupMock()
124 def map = setupMap(mex)
128 .replace('"source"', '"sourceXXX"')
129 .replace('"BRG_WAN_MAC_Address"', '"BRG_WAN_MAC_AddressXXX"')
131 when(mex.getVariable("bpmnRequest")).thenReturn(req)
132 when(mex.getVariable("serviceInstanceId")).thenReturn(null)
134 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
135 CreateVcpeResCustService.preProcessRequest(mex)
137 verify(mex).getVariable(DBGFLAG)
138 verify(mex).setVariable("prefix", Prefix)
139 verify(mex).setVariable("createVcpeServiceRequest", req)
140 verify(mex).setVariable("msoRequestId", "mri")
141 assertNotNull(map.get("serviceInstanceId"))
142 assertFalse(map.get("serviceInstanceId").isEmpty())
143 verify(mex).setVariable("requestAction", "ra")
144 verify(mex).setVariable("source", "VID")
145 verify(mex).setVariable("globalSubscriberId", CUST)
146 verify(mex).setVariable("globalCustomerId", CUST)
147 verify(mex).setVariable("subscriptionServiceType", SVC)
148 verify(mex).setVariable("disableRollback", "false")
149 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
150 assertTrue(map.containsKey("subscriberInfo"))
152 assertEquals("", map.get("brgWanMacAddress"))
153 assertTrue(map.containsKey("serviceInputParams"))
154 assertTrue(map.containsKey(Prefix+"requestInfo"))
156 def reqinfo = map.get(Prefix+"requestInfo")
158 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
159 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
164 public void preProcessRequest_MissingSubscriberId() {
165 ExecutionEntity mex = setupMock()
166 def map = setupMap(mex)
170 .replace('"globalSubscriberId"', '"globalSubscriberIdXXX"')
172 when(mex.getVariable("bpmnRequest")).thenReturn(req)
173 when(mex.getVariable("serviceInstanceId")).thenReturn(null)
175 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
177 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
182 public void preProcessRequest_BpmnError() {
183 ExecutionEntity mex = setupMock()
186 when(mex.getVariable("bpmnRequest")).thenThrow(new BpmnError("expected exception"))
188 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
190 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
195 public void preProcessRequest_Ex() {
196 ExecutionEntity mex = setupMock()
199 when(mex.getVariable("bpmnRequest")).thenThrow(new RuntimeException("expected exception"))
201 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
203 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.preProcessRequest(mex) }))
206 // ***** sendSyncResponse *****
210 public void sendSyncResponse() {
211 ExecutionEntity mex = setupMock()
212 def map = setupMap(mex)
213 initSendSyncResponse(mex)
215 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
216 CreateVcpeResCustService.sendSyncResponse(mex)
218 verify(mex, times(2)).getVariable(DBGFLAG)
220 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
222 assertEquals("202", map.get(processName+"ResponseCode"))
223 assertEquals("Success", map.get(processName+"Status"))
225 def resp = map.get(processName+"Response")
227 assertTrue(resp.indexOf('"instanceId":"sii"') >= 0)
228 assertTrue(resp.indexOf('"requestId":"mri"') >= 0)
233 public void sendSyncResponse_Ex() {
234 ExecutionEntity mex = setupMock()
235 initSendSyncResponse(mex)
237 when(mex.getVariable("serviceInstanceId")).thenThrow(new RuntimeException("expected exception"))
239 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
241 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.sendSyncResponse(mex) }))
245 // ***** prepareDecomposeService *****
249 public void prepareDecomposeService() {
250 ExecutionEntity mex = setupMock()
251 initPrepareDecomposeService(mex)
253 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
254 CreateVcpeResCustService.prepareDecomposeService(mex)
256 verify(mex).getVariable(DBGFLAG)
257 verify(mex).setVariable("serviceModelInfo", "mi")
262 public void prepareDecomposeService_Ex() {
263 ExecutionEntity mex = setupMock()
264 initPrepareDecomposeService(mex)
266 when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
268 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
270 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareDecomposeService(mex) }))
274 // ***** prepareCreateServiceInstance *****
278 public void prepareCreateServiceInstance() {
279 ExecutionEntity mex = setupMock()
280 initPrepareCreateServiceInstance(mex)
282 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
283 CreateVcpeResCustService.prepareCreateServiceInstance(mex)
285 verify(mex).getVariable(DBGFLAG)
286 verify(mex).setVariable("serviceInstanceName", "VCPE1")
287 verify(mex).setVariable("serviceDecompositionString", "mydecomp")
292 public void prepareCreateServiceInstance_Ex() {
293 ExecutionEntity mex = setupMock()
294 initPrepareCreateServiceInstance(mex)
296 when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
298 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
300 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareCreateServiceInstance(mex) }))
304 // ***** postProcessServiceInstanceCreate *****
308 public void postProcessServiceInstanceCreate() {
309 ExecutionEntity mex = setupMock()
310 def map = setupMap(mex)
311 initPostProcessServiceInstanceCreate(mex)
313 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
314 CreateVcpeResCustService.postProcessServiceInstanceCreate(mex)
316 verify(mex).getVariable(DBGFLAG)
318 def reqinfo = map.get(Prefix+"setUpdateDbInstancePayload")
320 assertTrue(reqinfo.indexOf("<requestId>mri</") >= 0)
321 assertTrue(reqinfo.indexOf("<serviceInstanceId>sii</") >= 0)
322 assertTrue(reqinfo.indexOf("<serviceInstanceName>sin</") >= 0)
327 public void postProcessServiceInstanceCreate_BpmnError() {
328 ExecutionEntity mex = setupMock()
329 initPostProcessServiceInstanceCreate(mex)
331 doThrow(new BpmnError("expected exception")).when(mex).setVariable(endsWith("setUpdateDbInstancePayload"), any())
333 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
335 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessServiceInstanceCreate(mex) }))
340 public void postProcessServiceInstanceCreate_Ex() {
341 ExecutionEntity mex = setupMock()
342 initPostProcessServiceInstanceCreate(mex)
344 doThrow(new RuntimeException("expected exception")).when(mex).setVariable(endsWith("setUpdateDbInstancePayload"), any())
346 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
348 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessServiceInstanceCreate(mex) }))
352 // ***** processDecomposition *****
356 public void processDecomposition() {
357 ExecutionEntity mex = setupMock()
358 def svcdecomp = initProcessDecomposition(mex, true, true)
360 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
361 CreateVcpeResCustService.processDecomposition(mex)
363 verify(mex).getVariable(DBGFLAG)
365 verify(mex).setVariable("vnfList", svcdecomp.getServiceVnfs())
366 verify(mex).setVariable("vnfListString", '[myvnf, myvnf2, myvnf3]')
367 verify(mex).setVariable(Prefix+"VNFsCount", 3)
369 verify(mex).setVariable("vnfModelInfo", "mymodel")
370 verify(mex).setVariable("vnfModelInfoString", "mymodel")
375 public void processDecomposition_EmptyNet_EmptyVnf() {
376 ExecutionEntity mex = setupMock()
377 def svcdecomp = initProcessDecomposition(mex, true, true)
379 when(svcdecomp.getServiceVnfs()).thenReturn(new LinkedList<VnfResource>())
381 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
382 CreateVcpeResCustService.processDecomposition(mex)
384 verify(mex).getVariable(DBGFLAG)
386 verify(mex).setVariable("vnfList", svcdecomp.getServiceVnfs())
387 verify(mex).setVariable("vnfListString", '[]')
388 verify(mex).setVariable(Prefix+"VNFsCount", 0)
390 verify(mex).setVariable("vnfModelInfo", "")
391 verify(mex).setVariable("vnfModelInfoString", "")
396 public void processDecomposition_Ex() {
397 ExecutionEntity mex = setupMock()
398 def svcdecomp = initProcessDecomposition(mex, true, true)
400 when(svcdecomp.getServiceVnfs()).thenThrow(new RuntimeException("expected exception"))
402 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
404 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.processDecomposition(mex) }))
408 // ***** prepareCreateAllottedResourceTXC *****
412 public void prepareCreateAllottedResourceTXC() {
413 ExecutionEntity mex = setupMock()
414 initPrepareCreateAllottedResourceTXC(mex)
416 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
417 CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex)
419 verify(mex).getVariable(DBGFLAG)
421 verify(mex).setVariable("createTXCAR", true)
422 verify(mex).setVariable("allottedResourceModelInfoTXC", "modelB")
423 verify(mex).setVariable("allottedResourceRoleTXC", "TXCr")
424 verify(mex).setVariable("allottedResourceTypeTXC", "TunnelXConn")
425 verify(mex).setVariable("parentServiceInstanceIdTXC", "homeB")
430 public void prepareCreateAllottedResourceTXC_NullArList() {
431 ExecutionEntity mex = setupMock()
432 def svcdecomp = initPrepareCreateAllottedResourceTXC(mex)
434 when(svcdecomp.getServiceAllottedResources()).thenReturn(null)
436 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
437 CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex)
439 verify(mex).getVariable(DBGFLAG)
441 verify(mex, never()).setVariable("createTXCAR", true)
442 verify(mex, never()).setVariable("allottedResourceModelInfoTXC", "modelB")
443 verify(mex, never()).setVariable("allottedResourceRoleTXC", "TXCr")
444 verify(mex, never()).setVariable("allottedResourceTypeTXC", "TunnelXConn")
445 verify(mex, never()).setVariable("parentServiceInstanceIdTXC", "homeB")
450 public void prepareCreateAllottedResourceTXC_Ex() {
451 ExecutionEntity mex = setupMock()
452 initPrepareCreateAllottedResourceTXC(mex)
454 when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
456 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
458 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareCreateAllottedResourceTXC(mex) }))
462 // ***** prepareCreateAllottedResourceBRG *****
466 public void prepareCreateAllottedResourceBRG() {
467 ExecutionEntity mex = setupMock()
468 initPrepareCreateAllottedResourceBRG(mex)
470 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
471 CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex)
473 verify(mex).getVariable(DBGFLAG)
475 verify(mex).setVariable("createBRGAR", true)
476 verify(mex).setVariable("allottedResourceModelInfoBRG", "modelB")
477 verify(mex).setVariable("allottedResourceRoleBRG", "BRGr")
478 verify(mex).setVariable("allottedResourceTypeBRG", "BRG")
479 verify(mex).setVariable("parentServiceInstanceIdBRG", "homeB")
484 public void prepareCreateAllottedResourceBRG_NullArList() {
485 ExecutionEntity mex = setupMock()
486 def svcdecomp = initPrepareCreateAllottedResourceBRG(mex)
488 when(svcdecomp.getServiceAllottedResources()).thenReturn(null)
490 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
491 CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex)
493 verify(mex).getVariable(DBGFLAG)
495 verify(mex, never()).setVariable("createBRGAR", true)
496 verify(mex, never()).setVariable("allottedResourceModelInfoBRG", "modelB")
497 verify(mex, never()).setVariable("allottedResourceRoleBRG", "BRGr")
498 verify(mex, never()).setVariable("allottedResourceTypeBRG", "BRG")
499 verify(mex, never()).setVariable("parentServiceInstanceIdBRG", "homeB")
504 public void prepareCreateAllottedResourceBRG_Ex() {
505 ExecutionEntity mex = setupMock()
506 initPrepareCreateAllottedResourceBRG(mex)
508 when(mex.getVariable("createVcpeServiceRequest")).thenThrow(new RuntimeException("expected exception"))
510 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
512 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareCreateAllottedResourceBRG(mex) }))
516 // ***** prepareVnfAndModulesCreate *****
520 public void prepareVnfAndModulesCreate() {
521 ExecutionEntity mex = setupMock()
522 initPrepareVnfAndModulesCreate(mex)
524 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
525 CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
527 verify(mex).getVariable(DBGFLAG)
529 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
530 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
531 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
536 public void prepareVnfAndModulesCreate_EmptyList() {
537 ExecutionEntity mex = setupMock()
538 initPrepareVnfAndModulesCreate(mex)
540 when(mex.getVariable("vnfList")).thenReturn(new LinkedList<VnfResource>())
542 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
543 CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
545 verify(mex).getVariable(DBGFLAG)
547 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
548 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
549 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
554 public void prepareVnfAndModulesCreate_NullList() {
555 ExecutionEntity mex = setupMock()
556 initPrepareVnfAndModulesCreate(mex)
558 when(mex.getVariable("vnfList")).thenReturn(null)
560 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
561 CreateVcpeResCustService.prepareVnfAndModulesCreate(mex)
563 verify(mex).getVariable(DBGFLAG)
565 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
566 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
567 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
572 public void prepareVnfAndModulesCreate_Ex() {
573 ExecutionEntity mex = setupMock()
574 initPrepareVnfAndModulesCreate(mex)
576 when(mex.getVariable("vnfList")).thenThrow(new RuntimeException("expected exception"))
578 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
580 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareVnfAndModulesCreate(mex) }))
584 // ***** validateVnfCreate *****
588 public void validateVnfCreate() {
589 ExecutionEntity mex = setupMock()
590 initValidateVnfCreate(mex)
592 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
593 CreateVcpeResCustService.validateVnfCreate(mex)
595 verify(mex).getVariable(DBGFLAG)
597 verify(mex).setVariable(Prefix+"VnfsCreatedCount", 3)
602 public void validateVnfCreate_Ex() {
603 ExecutionEntity mex = setupMock()
604 initValidateVnfCreate(mex)
606 when(mex.getVariable(Prefix+"VnfsCreatedCount")).thenThrow(new RuntimeException("expected exception"))
608 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
610 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.validateVnfCreate(mex) }))
614 // ***** postProcessResponse *****
618 public void postProcessResponse() {
619 ExecutionEntity mex = setupMock()
620 def map = setupMap(mex)
621 initPostProcessResponse(mex)
623 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
624 CreateVcpeResCustService.postProcessResponse(mex)
626 verify(mex).getVariable(DBGFLAG)
628 verify(mex).setVariable(Prefix+"Success", true)
630 def reqinfo = map.get(Prefix+"CompleteMsoProcessRequest")
632 assertTrue(reqinfo.indexOf("request-id>mri</") >= 0)
633 assertTrue(reqinfo.indexOf("source>mysrc</") >= 0)
634 assertTrue(reqinfo.indexOf("serviceInstanceId>sii</") >= 0)
639 public void postProcessResponse_BpmnError() {
640 ExecutionEntity mex = setupMock()
641 def map = setupMap(mex)
642 initPostProcessResponse(mex)
644 when(mex.getVariable("source")).thenThrow(new BpmnError("expected exception"))
646 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
648 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessResponse(mex) }))
653 public void postProcessResponse_Ex() {
654 ExecutionEntity mex = setupMock()
655 def map = setupMap(mex)
656 initPostProcessResponse(mex)
658 when(mex.getVariable("source")).thenThrow(new RuntimeException("expected exception"))
660 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
662 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessResponse(mex) }))
666 // ***** preProcessRollback *****
670 public void preProcessRollback() {
671 ExecutionEntity mex = setupMock()
672 def wfe = initPreProcessRollback(mex)
674 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
675 CreateVcpeResCustService.preProcessRollback(mex)
677 verify(mex).getVariable(DBGFLAG)
679 verify(mex).setVariable("prevWorkflowException", wfe)
684 public void preProcessRollback_NullWfe() {
685 ExecutionEntity mex = setupMock()
686 def map = setupMap(mex)
687 def wfe = initPreProcessRollback(mex)
689 when(mex.getVariable("WorkflowException")).thenReturn(null)
691 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
692 CreateVcpeResCustService.preProcessRollback(mex)
694 verify(mex).getVariable(DBGFLAG)
696 assertFalse(map.containsKey("prevWorkflowException"))
701 public void preProcessRollback_BpmnError() {
702 ExecutionEntity mex = setupMock()
703 def map = setupMap(mex)
704 def wfe = initPreProcessRollback(mex)
706 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
708 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
709 CreateVcpeResCustService.preProcessRollback(mex)
711 verify(mex).getVariable(DBGFLAG)
713 assertFalse(map.containsKey("prevWorkflowException"))
718 public void preProcessRollback_Ex() {
719 ExecutionEntity mex = setupMock()
720 def map = setupMap(mex)
721 def wfe = initPreProcessRollback(mex)
723 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
725 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
726 CreateVcpeResCustService.preProcessRollback(mex)
728 verify(mex).getVariable(DBGFLAG)
730 assertFalse(map.containsKey("prevWorkflowException"))
734 // ***** postProcessRollback *****
738 public void postProcessRollback() {
739 ExecutionEntity mex = setupMock()
740 def wfe = initPostProcessRollback(mex)
742 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
743 CreateVcpeResCustService.postProcessRollback(mex)
745 verify(mex).getVariable(DBGFLAG)
747 verify(mex).setVariable("WorkflowException", wfe)
752 public void postProcessRollback_NullWfe() {
753 ExecutionEntity mex = setupMock()
754 def map = setupMap(mex)
755 def wfe = initPostProcessRollback(mex)
757 when(mex.getVariable("prevWorkflowException")).thenReturn(null)
759 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
760 CreateVcpeResCustService.postProcessRollback(mex)
762 verify(mex).getVariable(DBGFLAG)
764 assertFalse(map.containsKey("WorkflowException"))
769 public void postProcessRollback_BpmnError() {
770 ExecutionEntity mex = setupMock()
771 def map = setupMap(mex)
772 def wfe = initPostProcessRollback(mex)
774 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
776 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
777 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.postProcessRollback(mex) }))
782 public void postProcessRollback_Ex() {
783 ExecutionEntity mex = setupMock()
784 def map = setupMap(mex)
785 def wfe = initPostProcessRollback(mex)
787 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
789 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
790 CreateVcpeResCustService.postProcessRollback(mex)
792 verify(mex).getVariable(DBGFLAG)
794 assertFalse(map.containsKey("WorkflowException"))
798 // ***** prepareFalloutRequest *****
802 public void prepareFalloutRequest() {
803 ExecutionEntity mex = setupMock()
804 def map = setupMap(mex)
805 initPrepareFalloutRequest(mex)
807 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
808 CreateVcpeResCustService.prepareFalloutRequest(mex)
810 verify(mex, times(2)).getVariable(DBGFLAG)
812 def fo = map.get(Prefix+"falloutRequest")
814 assertTrue(fo.indexOf("<hello>world</") >= 0)
815 assertTrue(fo.indexOf("ErrorMessage>mymsg</") >= 0)
816 assertTrue(fo.indexOf("ErrorCode>999</") >= 0)
821 public void prepareFalloutRequest_Ex() {
822 ExecutionEntity mex = setupMock()
823 def map = setupMap(mex)
824 initPrepareFalloutRequest(mex)
826 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
828 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
830 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.prepareFalloutRequest(mex) }))
833 // ***** sendSyncError *****
837 public void sendSyncError() {
838 ExecutionEntity mex = setupMock()
839 def map = setupMap(mex)
840 initSendSyncError(mex)
842 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
843 CreateVcpeResCustService.sendSyncError(mex)
845 verify(mex, times(2)).getVariable(DBGFLAG)
847 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
849 assertEquals("500", map.get(processName+"ResponseCode"))
850 assertEquals("Fail", map.get(processName+"Status"))
852 def resp = map.get(processName+"Response")
854 assertTrue(resp.indexOf("ErrorMessage>mymsg</") >= 0)
856 verify(mex).setVariable("WorkflowResponse", resp)
861 public void sendSyncError_NotWfe() {
862 ExecutionEntity mex = setupMock()
863 def map = setupMap(mex)
864 initSendSyncError(mex)
866 when(mex.getVariable("WorkflowException")).thenReturn("not a WFE")
868 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
869 CreateVcpeResCustService.sendSyncError(mex)
871 verify(mex, times(2)).getVariable(DBGFLAG)
873 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
875 assertEquals("500", map.get(processName+"ResponseCode"))
876 assertEquals("Fail", map.get(processName+"Status"))
878 def resp = map.get(processName+"Response")
880 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
882 verify(mex).setVariable("WorkflowResponse", resp)
887 public void sendSyncError_NullWfe() {
888 ExecutionEntity mex = setupMock()
889 def map = setupMap(mex)
890 initSendSyncError(mex)
892 when(mex.getVariable("WorkflowException")).thenReturn(null)
894 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
895 CreateVcpeResCustService.sendSyncError(mex)
897 verify(mex, times(2)).getVariable(DBGFLAG)
899 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
901 assertEquals("500", map.get(processName+"ResponseCode"))
902 assertEquals("Fail", map.get(processName+"Status"))
904 def resp = map.get(processName+"Response")
906 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
908 verify(mex).setVariable("WorkflowResponse", resp)
913 public void sendSyncError_Ex() {
914 ExecutionEntity mex = setupMock()
915 def map = setupMap(mex)
916 initSendSyncError(mex)
918 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
920 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
922 CreateVcpeResCustService.sendSyncError(mex)
924 assertFalse(map.containsKey(processName+"ResponseCode"))
928 // ***** processJavaException *****
932 public void processJavaException() {
933 ExecutionEntity mex = setupMock()
934 def map = setupMap(mex)
935 initProcessJavaException(mex)
937 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
939 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.processJavaException(mex) }))
941 verify(mex, times(2)).getVariable(DBGFLAG)
943 verify(mex).setVariable("prefix", Prefix)
945 def wfe = map.get("WorkflowException")
947 assertEquals("Caught a Java Lang Exception", wfe.getErrorMessage())
952 public void processJavaException_BpmnError() {
953 ExecutionEntity mex = setupMock()
954 def map = setupMap(mex)
955 initProcessJavaException(mex)
957 when(mex.getVariables()).thenThrow(new BpmnError("expected exception"))
959 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
961 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.processJavaException(mex) }))
963 assertFalse(map.containsKey("WorkflowException"))
968 public void processJavaException_Ex() {
969 ExecutionEntity mex = setupMock()
970 def map = setupMap(mex)
971 initProcessJavaException(mex)
973 when(mex.getVariables()).thenThrow(new RuntimeException("expected exception"))
975 CreateVcpeResCustService CreateVcpeResCustService = new CreateVcpeResCustService()
977 assertTrue(doBpmnError( { _ -> CreateVcpeResCustService.processJavaException(mex) }))
979 def wfe = map.get("WorkflowException")
981 assertEquals("Exception in processJavaException method", wfe.getErrorMessage())
985 private void initPreProcess(ExecutionEntity mex) {
986 when(mex.getVariable(DBGFLAG)).thenReturn("true")
987 when(mex.getVariable("bpmnRequest")).thenReturn(request)
988 when(mex.getVariable("mso-request-id")).thenReturn("mri")
989 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
990 when(mex.getVariable("requestAction")).thenReturn("ra")
993 private initSendSyncResponse(ExecutionEntity mex) {
994 when(mex.getVariable(DBGFLAG)).thenReturn("true")
995 when(mex.getVariable("mso-request-id")).thenReturn("mri")
996 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
999 private void initPrepareDecomposeService(ExecutionEntity mex) {
1000 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1001 when(mex.getVariable("createVcpeServiceRequest")).thenReturn('{"requestDetails":{"modelInfo":"mi"}}')
1004 private void initPrepareCreateServiceInstance(ExecutionEntity mex) {
1005 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1007 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1008 when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1009 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1011 when(svcdecomp.toJsonString()).thenReturn("mydecomp")
1014 private void initPostProcessServiceInstanceCreate(ExecutionEntity mex) {
1015 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1016 when(mex.getVariable("mso-request-id")).thenReturn("mri")
1017 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1018 when(mex.getVariable("serviceInstanceName")).thenReturn("sin")
1021 private ServiceDecomposition initProcessDecomposition(ExecutionEntity mex, boolean haveNet, boolean haveVnf) {
1022 List<VnfResource> vnflst = new LinkedList<>()
1024 vnflst.add(makeVnf(""))
1025 vnflst.add(makeVnf("2"))
1026 vnflst.add(makeVnf("3"))
1029 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1030 when(svcdecomp.getServiceVnfs()).thenReturn(vnflst)
1032 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1033 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1034 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1035 when(mex.getVariable("serviceInstanceName")).thenReturn("sin")
1040 private ServiceDecomposition initPrepareCreateAllottedResourceTXC(ExecutionEntity mex) {
1041 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1042 List<AllottedResource> arlst = new LinkedList<>()
1044 arlst.add(makeArBRG("A"))
1045 arlst.add(makeArTXC("B"))
1046 arlst.add(makeArBRG("C"))
1048 when(svcdecomp.getServiceAllottedResources()).thenReturn(arlst)
1050 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1051 when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1052 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1053 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
1058 private ServiceDecomposition initPrepareCreateAllottedResourceBRG(ExecutionEntity mex) {
1059 ServiceDecomposition svcdecomp = mock(ServiceDecomposition.class)
1060 List<AllottedResource> arlst = new LinkedList<>()
1062 arlst.add(makeArTXC("A"))
1063 arlst.add(makeArBRG("B"))
1064 arlst.add(makeArTXC("C"))
1066 when(svcdecomp.getServiceAllottedResources()).thenReturn(arlst)
1068 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1069 when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1070 when(mex.getVariable("serviceDecomposition")).thenReturn(svcdecomp)
1071 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
1076 private AllottedResource makeArTXC(String id) {
1077 AllottedResource ar = mock(AllottedResource.class)
1078 ModelInfo mod = mock(ModelInfo.class)
1079 HomingSolution home = mock(HomingSolution.class)
1081 when(ar.toJsonString()).thenReturn("json"+id)
1082 when(ar.getAllottedResourceType()).thenReturn("TunnelXConn")
1083 when(ar.getModelInfo()).thenReturn(mod)
1084 when(ar.getAllottedResourceRole()).thenReturn("TXCr")
1085 when(ar.getHomingSolution()).thenReturn(home)
1087 when(mod.toJsonString()).thenReturn("model"+id)
1089 when(home.getServiceInstanceId()).thenReturn("home"+id)
1094 private AllottedResource makeArBRG(String id) {
1095 AllottedResource ar = mock(AllottedResource.class)
1096 ModelInfo mod = mock(ModelInfo.class)
1097 HomingSolution home = mock(HomingSolution.class)
1099 when(ar.toJsonString()).thenReturn("json"+id)
1100 when(ar.getAllottedResourceType()).thenReturn("BRG")
1101 when(ar.getModelInfo()).thenReturn(mod)
1102 when(ar.getAllottedResourceRole()).thenReturn("BRGr")
1103 when(ar.getHomingSolution()).thenReturn(home)
1105 when(mod.toJsonString()).thenReturn("model"+id)
1107 when(home.getServiceInstanceId()).thenReturn("home"+id)
1112 private initPrepareVnfAndModulesCreate(ExecutionEntity mex) {
1114 List<VnfResource> vnflst = new LinkedList<>()
1116 vnflst.add(makeVnf("A"))
1117 vnflst.add(makeVnf("B"))
1118 vnflst.add(makeVnf("C"))
1119 vnflst.add(makeVnf("D"))
1121 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1122 when(mex.getVariable("createVcpeServiceRequest")).thenReturn(request)
1123 when(mex.getVariable("vnfList")).thenReturn(vnflst)
1124 when(mex.getVariable(Prefix+"VnfsCreatedCount")).thenReturn(2)
1125 when(mex.getVariable("vnfModelInfo")).thenReturn("nomodel")
1126 when(mex.getVariable("sdncVersion")).thenReturn("myvers")
1129 private VnfResource makeVnf(String id) {
1130 ModelInfo mod = mock(ModelInfo.class)
1131 VnfResource vnf = mock(VnfResource.class)
1133 when(mod.toString()).thenReturn('{"modelInfo":"mymodel'+id+'"}')
1135 when(vnf.toString()).thenReturn("myvnf"+id)
1136 when(vnf.getModelInfo()).thenReturn(mod)
1141 private initValidateVnfCreate(ExecutionEntity mex) {
1142 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1143 when(mex.getVariable(Prefix+"VnfsCreatedCount")).thenReturn(2)
1146 private initPostProcessResponse(ExecutionEntity mex) {
1147 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1148 when(mex.getVariable("source")).thenReturn("mysrc")
1149 when(mex.getVariable("mso-request-id")).thenReturn("mri")
1150 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
1153 private WorkflowException initPreProcessRollback(ExecutionEntity mex) {
1154 WorkflowException wfe = mock(WorkflowException.class)
1156 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1157 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1162 private WorkflowException initPostProcessRollback(ExecutionEntity mex) {
1163 WorkflowException wfe = mock(WorkflowException.class)
1165 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1166 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
1171 private initPrepareFalloutRequest(ExecutionEntity mex) {
1172 WorkflowException wfe = mock(WorkflowException.class)
1174 when(wfe.getErrorMessage()).thenReturn("mymsg")
1175 when(wfe.getErrorCode()).thenReturn(999)
1177 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1178 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1179 when(mex.getVariable(Prefix+"requestInfo")).thenReturn("<hello>world</hello>")
1184 private initSendSyncError(ExecutionEntity mex) {
1185 WorkflowException wfe = mock(WorkflowException.class)
1187 when(mex.getVariable(DBGFLAG)).thenReturn("true")
1188 when(mex.getVariable("mso-request-id")).thenReturn("mri")
1189 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
1191 when(wfe.getErrorMessage()).thenReturn("mymsg")
1194 private initProcessJavaException(ExecutionEntity mex) {
1195 when(mex.getVariable(DBGFLAG)).thenReturn("true")