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=========================================================
21 package org.onap.so.bpmn.vcpe.scripts
24 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
25 import org.junit.Before
26 import org.junit.BeforeClass
29 import org.junit.Ignore
30 import org.mockito.MockitoAnnotations
31 import org.camunda.bpm.engine.delegate.BpmnError
32 import org.onap.so.bpmn.core.UrnPropertiesReader
33 import org.onap.so.bpmn.core.WorkflowException
34 import org.onap.so.bpmn.mock.FileUtil
35 import org.onap.so.client.aai.AAIObjectType
36 import org.onap.so.client.aai.AAIResourcesClient
37 import org.onap.so.client.aai.entities.uri.AAIUriFactory
39 import javax.ws.rs.core.UriBuilder
41 import static org.junit.Assert.*;
42 import static org.mockito.Mockito.*
43 import static org.onap.so.bpmn.mock.StubResponseAAI.MockGetAllottedResource
44 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPatchAllottedResource
45 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource
46 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource_500
48 import org.onap.so.bpmn.core.RollbackData
50 import com.github.tomakehurst.wiremock.junit.WireMockRule
52 class DoCreateAllottedResourceTXCTest extends GroovyTestBase {
55 public WireMockRule wireMockRule = new WireMockRule(PORT)
57 String Prefix = "DCARTXC_"
60 public static void setUpBeforeClass() {
61 aaiUriPfx = UrnPropertiesReader.getVariable("aai.endpoint")
67 MockitoAnnotations.initMocks(this)
70 public DoCreateAllottedResourceTXCTest() {
71 super("DoCreateAllottedResourceTXC")
75 // ***** preProcessRequest *****
79 public void preProcessRequest() {
80 ExecutionEntity mex = setupMock()
83 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
84 DoCreateAllottedResourceTXC.preProcessRequest(mex)
86 //verify(mex).getVariable(DBGFLAG)
87 verify(mex).setVariable("prefix", Prefix)
89 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdncadapter.callback"))
90 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdnc.replication.delay"))
91 assertTrue(checkMissingPreProcessRequest("serviceInstanceId"))
92 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
93 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
94 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
95 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
96 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
100 // ***** getAaiAR *****
104 public void getAaiAR() {
105 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
107 ExecutionEntity mex = setupMock()
110 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
111 DoCreateAllottedResourceTXC.getAaiAR(mex)
113 verify(mex).setVariable("foundActiveAR", true)
118 public void getAaiAR_Duplicate() {
119 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
121 ExecutionEntity mex = setupMock()
125 when(mex.getVariable("failExists")).thenReturn("true")
127 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
129 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
134 public void getAaiAR_NotActive() {
135 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
137 ExecutionEntity mex = setupMock()
141 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
143 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
145 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
150 public void getAaiAR_NoStatus() {
151 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
153 ExecutionEntity mex = setupMock()
156 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
158 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
159 DoCreateAllottedResourceTXC.getAaiAR(mex)
161 verify(mex, never()).setVariable("foundActiveAR", true)
165 // ***** createAaiAR *****
168 public void createAaiAR() {
169 ExecutionEntity mex = setupMock()
171 when(mex.getVariable("PSI_resourceLink")).thenReturn(AAIUriFactory.createResourceFromExistingURI(AAIObjectType.SERVICE_INSTANCE, UriBuilder.fromPath( "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST).build()))
172 when(mex.getVariable("CSI_resourceLink")).thenReturn("/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST)
173 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("{\n" +
174 " \"modelInvariantUuid\":\"modelInvariantUuid\",\n" +
175 " \"modelUuid\" : \"modelUuid\"\n" +
177 AAIResourcesClient client = mock(AAIResourcesClient.class)
178 DoCreateAllottedResourceTXC doCreateAllottedResourceTXC = spy(DoCreateAllottedResourceTXC.class)
179 when(doCreateAllottedResourceTXC.getAAIClient()).thenReturn(client)
180 doCreateAllottedResourceTXC.createAaiAR(mex)
185 public void createAaiAR_MissingPsiLink() {
186 ExecutionEntity mex = setupMock()
189 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
191 MockPutAllottedResource(CUST, SVC, INST, ARID)
193 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
195 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
200 public void createAaiAR_HttpFailed() {
201 ExecutionEntity mex = setupMock()
204 MockPutAllottedResource_500(CUST, SVC, INST, ARID)
206 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
208 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
213 public void createAaiAR_BpmnError() {
214 ExecutionEntity mex = setupMock()
217 when(mex.getVariable("aai.endpoint")).thenThrow(new BpmnError("expected exception"))
219 MockPutAllottedResource(CUST, SVC, INST, ARID)
221 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
223 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
228 public void createAaiAR_Ex() {
229 ExecutionEntity mex = setupMock()
232 when(mex.getVariable("aai.endpoint")).thenThrow(new RuntimeException("expected exception"))
234 MockPutAllottedResource(CUST, SVC, INST, ARID)
236 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
238 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
242 // ***** buildSDNCRequest *****
246 public void buildSDNCRequest() {
247 ExecutionEntity mex = setupMock()
248 initBuildSDNCRequest(mex)
250 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
252 String result = DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq")
254 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
255 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
256 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
257 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
258 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
259 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
260 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
261 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
262 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
263 assertTrue(result.indexOf("<request-id>mri</") >= 0)
264 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
265 assertTrue(result.indexOf("<model-uuid/>") >= 0)
266 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
267 assertTrue(result.indexOf("<model-version/>") >= 0)
268 assertTrue(result.indexOf("<model-name/>") >= 0)
273 public void buildSDNCRequest_Ex() {
274 ExecutionEntity mex = setupMock()
275 initBuildSDNCRequest(mex)
277 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
279 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
281 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
285 // ***** preProcessSDNCAssign *****
289 public void preProcessSDNCAssign() {
290 ExecutionEntity mex = setupMock()
291 def map = setupMap(mex)
292 def data = initPreProcessSDNC(mex)
294 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
295 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
297 def req = map.get("sdncAssignRequest")
300 assertEquals(data, map.get("rollbackData"))
302 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
304 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
305 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
306 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
308 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
309 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
310 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
315 public void preProcessSDNCAssign_BpmnError() {
316 ExecutionEntity mex = setupMock()
317 initPreProcessSDNC(mex)
319 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
321 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
323 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
328 public void preProcessSDNCAssign_Ex() {
329 ExecutionEntity mex = setupMock()
330 initPreProcessSDNC(mex)
332 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
334 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
336 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
340 // ***** preProcessSDNCCreate *****
344 public void preProcessSDNCCreate() {
345 ExecutionEntity mex = setupMock()
346 def map = setupMap(mex)
347 def data = initPreProcessSDNC(mex)
349 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
350 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
352 def req = map.get("sdncCreateRequest")
355 assertEquals(data, map.get("rollbackData"))
357 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
359 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
360 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
361 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
363 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
364 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
365 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
371 public void preProcessSDNCCreate_BpmnError() {
372 ExecutionEntity mex = setupMock()
373 initPreProcessSDNC(mex)
375 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
377 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
379 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
384 public void preProcessSDNCCreate_Ex() {
385 ExecutionEntity mex = setupMock()
386 initPreProcessSDNC(mex)
388 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
390 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
392 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
396 // ***** preProcessSDNCActivate *****
400 public void preProcessSDNCActivate() {
401 ExecutionEntity mex = setupMock()
402 def map = setupMap(mex)
403 def data = initPreProcessSDNC(mex)
405 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
406 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
408 def req = map.get("sdncActivateRequest")
411 assertEquals(data, map.get("rollbackData"))
413 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
415 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
416 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
417 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
419 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
420 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
421 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
427 public void preProcessSDNCActivate_BpmnError() {
428 ExecutionEntity mex = setupMock()
429 initPreProcessSDNC(mex)
431 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
433 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
435 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
440 public void preProcessSDNCActivate_Ex() {
441 ExecutionEntity mex = setupMock()
442 initPreProcessSDNC(mex)
444 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
446 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
448 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
452 // ***** validateSDNCResp *****
456 public void validateSDNCResp() {
457 ExecutionEntity mex = setupMock()
458 def map = setupMap(mex)
459 def data = initValidateSDNCResp(mex)
460 def resp = initValidateSDNCResp_Resp()
462 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
464 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
466 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
468 verify(mex).getVariable("WorkflowException")
469 verify(mex).getVariable("SDNCA_SuccessIndicator")
470 verify(mex).getVariable("rollbackData")
472 assertEquals(data, map.get("rollbackData"))
474 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
480 public void validateSDNCResp_Get() {
481 ExecutionEntity mex = setupMock()
482 def data = initValidateSDNCResp(mex)
483 def resp = initValidateSDNCResp_Resp()
485 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
487 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
489 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
491 verify(mex).getVariable("WorkflowException")
492 verify(mex).getVariable("SDNCA_SuccessIndicator")
494 verify(mex, never()).getVariable("rollbackData")
499 public void validateSDNCResp_Unsuccessful() {
500 ExecutionEntity mex = setupMock()
501 initValidateSDNCResp(mex)
502 def resp = initValidateSDNCResp_Resp()
505 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(false)
507 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
509 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
514 public void validateSDNCResp_BpmnError() {
515 ExecutionEntity mex = setupMock()
516 initValidateSDNCResp(mex)
517 def resp = initValidateSDNCResp_Resp()
519 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
521 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
523 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
528 public void validateSDNCResp_Ex() {
529 ExecutionEntity mex = setupMock()
530 initValidateSDNCResp(mex)
531 def resp = initValidateSDNCResp_Resp()
533 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
535 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
537 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
541 // ***** preProcessSDNCGet *****
545 public void preProcessSDNCGet_FoundAR() {
546 ExecutionEntity mex = setupMock()
547 def map = setupMap(mex)
548 initPreProcessSDNCGet(mex)
550 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
551 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
553 String req = map.get("sdncGetRequest")
555 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
556 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
557 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
558 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
564 public void preProcessSDNCGet_NotFoundAR() {
565 ExecutionEntity mex = setupMock()
566 def map = setupMap(mex)
567 initPreProcessSDNCGet(mex)
569 when(mex.getVariable("foundActiveAR")).thenReturn(false)
571 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
572 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
574 String req = map.get("sdncGetRequest")
576 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
577 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
578 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
579 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
585 public void preProcessSDNCGet_Ex() {
586 ExecutionEntity mex = setupMock()
587 initPreProcessSDNCGet(mex)
589 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
591 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
593 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
597 // ***** updateAaiAROrchStatus *****
601 public void updateAaiAROrchStatus() {
602 MockPatchAllottedResource(CUST, SVC, INST, ARID)
604 ExecutionEntity mex = setupMock()
605 initUpdateAaiAROrchStatus(mex)
607 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
608 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
612 // ***** generateOutputs *****
616 public void generateOutputs() {
617 ExecutionEntity mex = setupMock()
618 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
620 when(mex.getVariable(DBGFLAG)).thenReturn("true")
621 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
623 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
624 DoCreateAllottedResourceTXC.generateOutputs(mex)
626 verify(mex).setVariable("allotedResourceName", "namefromrequest")
627 verify(mex).setVariable("vni", "my-vni")
628 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
629 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
635 public void generateOutputs_BadXml() {
636 ExecutionEntity mex = setupMock()
638 when(mex.getVariable(DBGFLAG)).thenReturn("true")
639 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
641 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
642 DoCreateAllottedResourceTXC.generateOutputs(mex)
644 verify(mex, never()).setVariable(anyString(), anyString())
650 public void generateOutputs_BpmnError() {
651 ExecutionEntity mex = setupMock()
653 when(mex.getVariable(DBGFLAG)).thenReturn("true")
654 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
656 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
658 DoCreateAllottedResourceTXC.generateOutputs(mex)
659 verify(mex, never()).setVariable(anyString(), anyString())
665 public void generateOutputs_Ex() {
666 ExecutionEntity mex = setupMock()
668 when(mex.getVariable(DBGFLAG)).thenReturn("true")
669 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
671 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
673 DoCreateAllottedResourceTXC.generateOutputs(mex)
674 verify(mex, never()).setVariable(anyString(), anyString())
679 // ***** preProcessRollback *****
683 public void preProcessRollback() {
684 ExecutionEntity mex = setupMock()
685 WorkflowException wfe = mock(WorkflowException.class)
687 when(mex.getVariable(DBGFLAG)).thenReturn("true")
688 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
690 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
691 DoCreateAllottedResourceTXC.preProcessRollback(mex)
693 verify(mex).setVariable("prevWorkflowException", wfe)
699 public void preProcessRollback_NotWFE() {
700 ExecutionEntity mex = setupMock()
702 when(mex.getVariable(DBGFLAG)).thenReturn("true")
703 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
705 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
706 DoCreateAllottedResourceTXC.preProcessRollback(mex)
708 // verify(mex, never()).setVariable("prevWorkflowException", any())
714 public void preProcessRollback_BpmnError() {
715 ExecutionEntity mex = setupMock()
717 when(mex.getVariable(DBGFLAG)).thenReturn("true")
718 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
720 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
722 DoCreateAllottedResourceTXC.preProcessRollback(mex)
728 public void preProcessRollback_Ex() {
729 ExecutionEntity mex = setupMock()
731 when(mex.getVariable(DBGFLAG)).thenReturn("true")
732 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
734 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
736 DoCreateAllottedResourceTXC.preProcessRollback(mex)
741 // ***** postProcessRollback *****
745 public void postProcessRollback() {
746 ExecutionEntity mex = setupMock()
747 WorkflowException wfe = mock(WorkflowException.class)
749 when(mex.getVariable(DBGFLAG)).thenReturn("true")
750 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
752 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
753 DoCreateAllottedResourceTXC.postProcessRollback(mex)
755 verify(mex).setVariable("WorkflowException", wfe)
756 verify(mex).setVariable("rollbackData", null)
762 public void postProcessRollback_NotWFE() {
763 ExecutionEntity mex = setupMock()
765 when(mex.getVariable(DBGFLAG)).thenReturn("true")
766 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
768 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
769 DoCreateAllottedResourceTXC.postProcessRollback(mex)
771 // verify(mex, never()).setVariable("WorkflowException", any())
772 verify(mex).setVariable("rollbackData", null)
778 public void postProcessRollback_BpmnError() {
779 ExecutionEntity mex = setupMock()
781 when(mex.getVariable(DBGFLAG)).thenReturn("true")
782 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
784 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
786 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
787 verify(mex, never()).setVariable("rollbackData", null)
793 public void postProcessRollback_Ex() {
794 ExecutionEntity mex = setupMock()
796 when(mex.getVariable(DBGFLAG)).thenReturn("true")
797 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
799 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
801 DoCreateAllottedResourceTXC.postProcessRollback(mex)
802 verify(mex, never()).setVariable("rollbackData", null)
806 private boolean checkMissingPreProcessRequest(String fieldnm) {
807 ExecutionEntity mex = setupMock()
810 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
812 when(mex.getVariable(fieldnm)).thenReturn("")
814 return doBpmnError( { _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
817 private void initPreProcess(ExecutionEntity mex) {
818 when(mex.getVariable(DBGFLAG)).thenReturn("true")
819 when(mex.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("sdncurn")
820 when(mex.getVariable("mso.workflow.sdnc.replication.delay")).thenReturn("sdncdelay")
821 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
822 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
823 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
824 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
825 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
826 when(mex.getVariable("allottedResourceType")).thenReturn("art")
829 private void initGetAaiAR(ExecutionEntity mex) {
830 when(mex.getVariable(DBGFLAG)).thenReturn("true")
831 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
832 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
833 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/getAR.xml"))
834 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
835 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
838 private initCreateAaiAr(ExecutionEntity mex) {
839 when(mex.getVariable("disableRollback")).thenReturn(45)
840 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
841 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
842 when(mex.getVariable(DBGFLAG)).thenReturn("true")
843 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
844 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
845 when(mex.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn(UrnPropertiesReader.getVariable("mso.workflow.global.default.aai.namespace"))
846 when(mex.getVariable("PSI_resourceLink")).thenReturn(AAIUriFactory.createResourceFromExistingURI(AAIObjectType.SERVICE_INSTANCE, UriBuilder.fromPath( "/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST).build()))
847 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
848 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
849 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx+"/aai/v9/mycsi")
850 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
852 "modelInvariantUuid":"modelinvuuid",
853 "modelUuid":"modeluuid",
854 "modelCustomizationUuid":"modelcustuuid"
859 private initBuildSDNCRequest(ExecutionEntity mex) {
860 when(mex.getVariable(DBGFLAG)).thenReturn("true")
861 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
862 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
863 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
864 when(mex.getVariable("subscriptionServiceType")).thenReturn("sst")
865 when(mex.getVariable("globalCustomerId")).thenReturn("gci")
866 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
867 when(mex.getVariable("msoRequestId")).thenReturn("mri")
870 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
871 def data = new RollbackData()
873 when(mex.getVariable(DBGFLAG)).thenReturn("true")
874 when(mex.getVariable("rollbackData")).thenReturn(data)
879 private initPreProcessSDNCGet(ExecutionEntity mex) {
880 when(mex.getVariable(DBGFLAG)).thenReturn("true")
881 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
882 when(mex.getVariable("foundActiveAR")).thenReturn(true)
883 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
884 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
885 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
886 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
889 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
890 def data = new RollbackData()
892 when(mex.getVariable(DBGFLAG)).thenReturn("true")
893 when(mex.getVariable("prefix")).thenReturn(Prefix)
894 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
895 when(mex.getVariable("rollbackData")).thenReturn(data)
900 private String initValidateSDNCResp_Resp() {
901 return "<response-data><response-code>200</response-code></response-data>"
904 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
905 when(mex.getVariable(DBGFLAG)).thenReturn("true")
906 when(mex.getVariable("aaiARPath")).thenReturn("/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST+"/allotted-resources/allotted-resource/"+ARID)