2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.bpmn.vcpe.scripts
25 import org.camunda.bpm.engine.delegate.BpmnError
26 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
28 import org.mockito.MockitoAnnotations
29 import org.onap.so.bpmn.core.UrnPropertiesReader
30 import org.onap.so.bpmn.core.WorkflowException
31 import org.onap.so.bpmn.mock.FileUtil
32 import org.onap.so.client.aai.AAIObjectType
33 import org.onap.so.client.aai.AAIResourcesClient
34 import org.onap.so.client.aai.entities.uri.AAIUriFactory
36 import javax.ws.rs.core.UriBuilder
38 import static org.junit.Assert.*
39 import static org.mockito.Mockito.*
40 import static org.onap.so.bpmn.mock.StubResponseAAI.MockGetAllottedResource
41 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPatchAllottedResource
42 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource
43 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource_500
45 import org.onap.so.bpmn.core.RollbackData
47 import com.github.tomakehurst.wiremock.junit.WireMockRule
49 class DoCreateAllottedResourceTXCTest extends GroovyTestBase {
52 public WireMockRule wireMockRule = new WireMockRule(PORT)
54 String Prefix = "DCARTXC_"
57 public static void setUpBeforeClass() {
58 aaiUriPfx = UrnPropertiesReader.getVariable("aai.endpoint")
63 MockitoAnnotations.initMocks(this)
66 public DoCreateAllottedResourceTXCTest() {
67 super("DoCreateAllottedResourceTXC")
70 // ***** preProcessRequest *****
72 public void preProcessRequest() {
73 ExecutionEntity mex = setupMock()
76 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
77 DoCreateAllottedResourceTXC.preProcessRequest(mex)
79 verify(mex).setVariable("prefix", Prefix)
81 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdncadapter.callback"))
82 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdnc.replication.delay"))
83 assertTrue(checkMissingPreProcessRequest("serviceInstanceId"))
84 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
85 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
86 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
87 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
88 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
91 // ***** getAaiAR *****
95 public void getAaiAR() {
96 MockGetAllottedResource(wireMockRule, CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
98 ExecutionEntity mex = setupMock()
101 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
102 DoCreateAllottedResourceTXC.getAaiAR(mex)
104 verify(mex).setVariable("foundActiveAR", true)
109 public void getAaiAR_Duplicate() {
110 MockGetAllottedResource(wireMockRule, CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
112 ExecutionEntity mex = setupMock()
116 when(mex.getVariable("failExists")).thenReturn("true")
118 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
120 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
124 public void getAaiAR_NotActive() {
125 MockGetAllottedResource(wireMockRule, CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
127 ExecutionEntity mex = setupMock()
131 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
133 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
135 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
140 public void getAaiAR_NoStatus() {
141 MockGetAllottedResource(wireMockRule, CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
143 ExecutionEntity mex = setupMock()
146 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
148 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
149 DoCreateAllottedResourceTXC.getAaiAR(mex)
151 verify(mex, never()).setVariable("foundActiveAR", true)
154 // ***** createAaiAR *****
157 public void createAaiAR() {
158 ExecutionEntity mex = setupMock()
160 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()))
161 when(mex.getVariable("CSI_resourceLink")).thenReturn("/aai/v9/business/customers/customer/" + CUST + "/service-subscriptions/service-subscription/" + SVC + "/service-instances/service-instance/" + INST)
162 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("{\n" +
163 " \"modelInvariantUuid\":\"modelInvariantUuid\",\n" +
164 " \"modelUuid\" : \"modelUuid\"\n" +
166 AAIResourcesClient client = mock(AAIResourcesClient.class)
167 DoCreateAllottedResourceTXC doCreateAllottedResourceTXC = spy(DoCreateAllottedResourceTXC.class)
168 when(doCreateAllottedResourceTXC.getAAIClient()).thenReturn(client)
169 doCreateAllottedResourceTXC.createAaiAR(mex)
174 public void createAaiAR_MissingPsiLink() {
175 ExecutionEntity mex = setupMock()
178 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
180 MockPutAllottedResource(wireMockRule, CUST, SVC, INST, ARID)
182 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
184 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
188 public void createAaiAR_HttpFailed() {
189 ExecutionEntity mex = setupMock()
192 MockPutAllottedResource_500(wireMockRule, CUST, SVC, INST, ARID)
194 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
196 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
200 public void createAaiAR_BpmnError() {
201 ExecutionEntity mex = setupMock()
204 when(mex.getVariable("aai.endpoint")).thenThrow(new BpmnError("expected exception"))
206 MockPutAllottedResource(wireMockRule, CUST, SVC, INST, ARID)
208 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
210 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
214 public void createAaiAR_Ex() {
215 ExecutionEntity mex = setupMock()
218 when(mex.getVariable("aai.endpoint")).thenThrow(new RuntimeException("expected exception"))
220 MockPutAllottedResource(wireMockRule, CUST, SVC, INST, ARID)
222 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
224 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
227 // ***** buildSDNCRequest *****
230 public void buildSDNCRequest() {
231 ExecutionEntity mex = setupMock()
232 initBuildSDNCRequest(mex)
234 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
236 String result = DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq")
238 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
239 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
240 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
241 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
242 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
243 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
244 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
245 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
246 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
247 assertTrue(result.indexOf("<request-id>mri</") >= 0)
248 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
249 assertTrue(result.indexOf("<model-uuid/>") >= 0)
250 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
251 assertTrue(result.indexOf("<model-version/>") >= 0)
252 assertTrue(result.indexOf("<model-name/>") >= 0)
256 public void buildSDNCRequest_Ex() {
257 ExecutionEntity mex = setupMock()
258 initBuildSDNCRequest(mex)
260 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
262 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
264 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
267 // ***** preProcessSDNCAssign *****
270 public void preProcessSDNCAssign() {
271 ExecutionEntity mex = setupMock()
272 def map = setupMap(mex)
273 def data = initPreProcessSDNC(mex)
275 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
276 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
278 def req = map.get("sdncAssignRequest")
281 assertEquals(data, map.get("rollbackData"))
283 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
285 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
286 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
287 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
289 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
290 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
291 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
295 public void preProcessSDNCAssign_BpmnError() {
296 ExecutionEntity mex = setupMock()
297 initPreProcessSDNC(mex)
299 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
301 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
303 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
307 public void preProcessSDNCAssign_Ex() {
308 ExecutionEntity mex = setupMock()
309 initPreProcessSDNC(mex)
311 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
313 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
315 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
318 // ***** preProcessSDNCCreate *****
321 public void preProcessSDNCCreate() {
322 ExecutionEntity mex = setupMock()
323 def map = setupMap(mex)
324 def data = initPreProcessSDNC(mex)
326 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
327 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
329 def req = map.get("sdncCreateRequest")
332 assertEquals(data, map.get("rollbackData"))
334 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
336 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
337 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
338 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
340 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
341 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
342 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
347 public void preProcessSDNCCreate_BpmnError() {
348 ExecutionEntity mex = setupMock()
349 initPreProcessSDNC(mex)
351 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
353 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
355 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
359 public void preProcessSDNCCreate_Ex() {
360 ExecutionEntity mex = setupMock()
361 initPreProcessSDNC(mex)
363 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
365 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
367 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
370 // ***** preProcessSDNCActivate *****
373 public void preProcessSDNCActivate() {
374 ExecutionEntity mex = setupMock()
375 def map = setupMap(mex)
376 def data = initPreProcessSDNC(mex)
378 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
379 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
381 def req = map.get("sdncActivateRequest")
384 assertEquals(data, map.get("rollbackData"))
386 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
388 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
389 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
390 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
392 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
393 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
394 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
399 public void preProcessSDNCActivate_BpmnError() {
400 ExecutionEntity mex = setupMock()
401 initPreProcessSDNC(mex)
403 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
405 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
407 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
411 public void preProcessSDNCActivate_Ex() {
412 ExecutionEntity mex = setupMock()
413 initPreProcessSDNC(mex)
415 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
417 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
419 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
422 // ***** validateSDNCResp *****
425 public void validateSDNCResp() {
426 ExecutionEntity mex = setupMock()
427 def map = setupMap(mex)
428 def data = initValidateSDNCResp(mex)
429 def resp = initValidateSDNCResp_Resp()
431 when(mex.getVariable(Prefix + "sdncResponseSuccess")).thenReturn(true)
433 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
435 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
437 verify(mex).getVariable("WorkflowException")
438 verify(mex).getVariable("SDNCA_SuccessIndicator")
439 verify(mex).getVariable("rollbackData")
441 assertEquals(data, map.get("rollbackData"))
443 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
448 public void validateSDNCResp_Get() {
449 ExecutionEntity mex = setupMock()
450 initValidateSDNCResp(mex)
451 def resp = initValidateSDNCResp_Resp()
453 when(mex.getVariable(Prefix + "sdncResponseSuccess")).thenReturn(true)
455 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
457 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
459 verify(mex).getVariable("WorkflowException")
460 verify(mex).getVariable("SDNCA_SuccessIndicator")
462 verify(mex, never()).getVariable("rollbackData")
466 public void validateSDNCResp_Unsuccessful() {
467 ExecutionEntity mex = setupMock()
468 initValidateSDNCResp(mex)
469 def resp = initValidateSDNCResp_Resp()
472 when(mex.getVariable(Prefix + "sdncResponseSuccess")).thenReturn(false)
474 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
476 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
480 public void validateSDNCResp_BpmnError() {
481 ExecutionEntity mex = setupMock()
482 initValidateSDNCResp(mex)
483 def resp = initValidateSDNCResp_Resp()
485 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
487 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
489 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
493 public void validateSDNCResp_Ex() {
494 ExecutionEntity mex = setupMock()
495 initValidateSDNCResp(mex)
496 def resp = initValidateSDNCResp_Resp()
498 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
500 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
502 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
505 // ***** preProcessSDNCGet *****
508 public void preProcessSDNCGet_FoundAR() {
509 ExecutionEntity mex = setupMock()
510 def map = setupMap(mex)
511 initPreProcessSDNCGet(mex)
513 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
514 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
516 String req = map.get("sdncGetRequest")
518 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
519 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
520 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
521 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
526 public void preProcessSDNCGet_NotFoundAR() {
527 ExecutionEntity mex = setupMock()
528 def map = setupMap(mex)
529 initPreProcessSDNCGet(mex)
531 when(mex.getVariable("foundActiveAR")).thenReturn(false)
533 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
534 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
536 String req = map.get("sdncGetRequest")
538 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
539 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
540 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
541 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
546 public void preProcessSDNCGet_Ex() {
547 ExecutionEntity mex = setupMock()
548 initPreProcessSDNCGet(mex)
550 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
552 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
554 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
557 // ***** updateAaiAROrchStatus *****
561 public void updateAaiAROrchStatus() {
562 MockPatchAllottedResource(wireMockRule, CUST, SVC, INST, ARID)
564 ExecutionEntity mex = setupMock()
565 initUpdateAaiAROrchStatus(mex)
567 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
568 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
571 // ***** generateOutputs *****
574 public void generateOutputs() {
575 ExecutionEntity mex = setupMock()
576 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
578 when(mex.getVariable(DBGFLAG)).thenReturn("true")
579 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
581 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
582 DoCreateAllottedResourceTXC.generateOutputs(mex)
584 verify(mex).setVariable("allotedResourceName", "namefromrequest")
585 verify(mex).setVariable("vni", "my-vni")
586 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
587 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
592 public void generateOutputs_BadXml() {
593 ExecutionEntity mex = setupMock()
595 when(mex.getVariable(DBGFLAG)).thenReturn("true")
596 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
598 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
599 DoCreateAllottedResourceTXC.generateOutputs(mex)
601 verify(mex, never()).setVariable(anyString(), anyString())
606 public void generateOutputs_BpmnError() {
607 ExecutionEntity mex = setupMock()
609 when(mex.getVariable(DBGFLAG)).thenReturn("true")
610 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
612 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
614 DoCreateAllottedResourceTXC.generateOutputs(mex)
615 verify(mex, never()).setVariable(anyString(), anyString())
620 public void generateOutputs_Ex() {
621 ExecutionEntity mex = setupMock()
623 when(mex.getVariable(DBGFLAG)).thenReturn("true")
624 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
626 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
628 DoCreateAllottedResourceTXC.generateOutputs(mex)
629 verify(mex, never()).setVariable(anyString(), anyString())
633 // ***** preProcessRollback *****
636 public void preProcessRollback() {
637 ExecutionEntity mex = setupMock()
638 WorkflowException wfe = mock(WorkflowException.class)
640 when(mex.getVariable(DBGFLAG)).thenReturn("true")
641 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
643 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
644 DoCreateAllottedResourceTXC.preProcessRollback(mex)
646 verify(mex).setVariable("prevWorkflowException", wfe)
651 public void preProcessRollback_NotWFE() {
652 ExecutionEntity mex = setupMock()
654 when(mex.getVariable(DBGFLAG)).thenReturn("true")
655 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
657 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
658 DoCreateAllottedResourceTXC.preProcessRollback(mex)
660 verify(mex, never()).setVariable(eq("prevWorkflowException"), any())
665 public void preProcessRollback_BpmnError() {
666 ExecutionEntity mex = setupMock()
668 when(mex.getVariable(DBGFLAG)).thenReturn("true")
669 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
671 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
673 DoCreateAllottedResourceTXC.preProcessRollback(mex)
678 public void preProcessRollback_Ex() {
679 ExecutionEntity mex = setupMock()
681 when(mex.getVariable(DBGFLAG)).thenReturn("true")
682 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
684 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
686 DoCreateAllottedResourceTXC.preProcessRollback(mex)
690 // ***** postProcessRollback *****
693 public void postProcessRollback() {
694 ExecutionEntity mex = setupMock()
695 WorkflowException wfe = mock(WorkflowException.class)
697 when(mex.getVariable(DBGFLAG)).thenReturn("true")
698 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
700 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
701 DoCreateAllottedResourceTXC.postProcessRollback(mex)
703 verify(mex).setVariable("WorkflowException", wfe)
704 verify(mex).setVariable("rollbackData", null)
709 public void postProcessRollback_NotWFE() {
710 ExecutionEntity mex = setupMock()
712 when(mex.getVariable(DBGFLAG)).thenReturn("true")
713 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
715 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
716 DoCreateAllottedResourceTXC.postProcessRollback(mex)
718 verify(mex, never()).setVariable(eq("WorkflowException"), any())
719 verify(mex).setVariable("rollbackData", null)
724 public void postProcessRollback_BpmnError() {
725 ExecutionEntity mex = setupMock()
727 when(mex.getVariable(DBGFLAG)).thenReturn("true")
728 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
730 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
732 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
733 verify(mex, never()).setVariable("rollbackData", null)
738 public void postProcessRollback_Ex() {
739 ExecutionEntity mex = setupMock()
741 when(mex.getVariable(DBGFLAG)).thenReturn("true")
742 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
744 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
746 DoCreateAllottedResourceTXC.postProcessRollback(mex)
747 verify(mex, never()).setVariable("rollbackData", null)
751 private boolean checkMissingPreProcessRequest(String fieldnm) {
752 ExecutionEntity mex = setupMock()
755 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
757 when(mex.getVariable(fieldnm)).thenReturn("")
759 return doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
762 private void initPreProcess(ExecutionEntity mex) {
763 when(mex.getVariable(DBGFLAG)).thenReturn("true")
764 when(mex.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("sdncurn")
765 when(mex.getVariable("mso.workflow.sdnc.replication.delay")).thenReturn("sdncdelay")
766 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
767 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
768 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
769 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
770 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
771 when(mex.getVariable("allottedResourceType")).thenReturn("art")
774 private void initGetAaiAR(ExecutionEntity mex) {
775 when(mex.getVariable(DBGFLAG)).thenReturn("true")
776 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
777 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
778 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/getAR.xml"))
779 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
780 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
783 private initCreateAaiAr(ExecutionEntity mex) {
784 when(mex.getVariable("disableRollback")).thenReturn(45)
785 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
786 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
787 when(mex.getVariable(DBGFLAG)).thenReturn("true")
788 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
789 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
790 when(mex.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn(UrnPropertiesReader.getVariable("mso.workflow.global.default.aai.namespace"))
791 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()))
792 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
793 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
794 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx + "/aai/v9/mycsi")
795 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
797 "modelInvariantUuid":"modelinvuuid",
798 "modelUuid":"modeluuid",
799 "modelCustomizationUuid":"modelcustuuid"
804 private initBuildSDNCRequest(ExecutionEntity mex) {
805 when(mex.getVariable(DBGFLAG)).thenReturn("true")
806 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
807 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
808 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
809 when(mex.getVariable("subscriptionServiceType")).thenReturn("sst")
810 when(mex.getVariable("globalCustomerId")).thenReturn("gci")
811 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
812 when(mex.getVariable("msoRequestId")).thenReturn("mri")
815 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
816 def data = new RollbackData()
818 when(mex.getVariable(DBGFLAG)).thenReturn("true")
819 when(mex.getVariable("rollbackData")).thenReturn(data)
824 private initPreProcessSDNCGet(ExecutionEntity mex) {
825 when(mex.getVariable(DBGFLAG)).thenReturn("true")
826 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
827 when(mex.getVariable("foundActiveAR")).thenReturn(true)
828 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
829 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
830 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
831 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
834 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
835 def data = new RollbackData()
837 when(mex.getVariable(DBGFLAG)).thenReturn("true")
838 when(mex.getVariable("prefix")).thenReturn(Prefix)
839 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
840 when(mex.getVariable("rollbackData")).thenReturn(data)
845 private String initValidateSDNCResp_Resp() {
846 return "<response-data><response-code>200</response-code></response-data>"
849 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
850 when(mex.getVariable(DBGFLAG)).thenReturn("true")
851 when(mex.getVariable("aaiARPath")).thenReturn("/business/customers/customer/" + CUST + "/service-subscriptions/service-subscription/" + SVC + "/service-instances/service-instance/" + INST + "/allotted-resources/allotted-resource/" + ARID)