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
24 import org.camunda.bpm.engine.RepositoryService
25 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
26 import org.camunda.bpm.engine.repository.ProcessDefinition
27 import org.junit.Before
28 import org.junit.BeforeClass
31 import org.junit.Ignore
32 import org.mockito.MockitoAnnotations
33 import org.camunda.bpm.engine.delegate.BpmnError
34 import org.openecomp.mso.bpmn.core.WorkflowException
35 import org.openecomp.mso.bpmn.mock.FileUtil
37 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse
38 import static com.github.tomakehurst.wiremock.client.WireMock.put
39 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor
40 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching
41 import static org.junit.Assert.*;
42 import static org.mockito.Mockito.*
43 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetAllottedResource
44 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchAllottedResource
45 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutAllottedResource
46 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutAllottedResource_500
50 import org.openecomp.mso.bpmn.core.RollbackData
51 import org.openecomp.mso.bpmn.vcpe.scripts.MapSetter
53 import com.github.tomakehurst.wiremock.junit.WireMockRule
55 class DoCreateAllottedResourceTXCTest extends GroovyTestBase {
58 public WireMockRule wireMockRule = new WireMockRule(PORT)
60 String Prefix = "DCARTXC_"
63 public static void setUpBeforeClass() {
70 MockitoAnnotations.initMocks(this)
73 public DoCreateAllottedResourceTXCTest() {
74 super("DoCreateAllottedResourceTXC")
78 // ***** preProcessRequest *****
82 public void preProcessRequest() {
83 ExecutionEntity mex = setupMock()
86 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
87 DoCreateAllottedResourceTXC.preProcessRequest(mex)
89 verify(mex).getVariable(DBGFLAG)
90 verify(mex).setVariable("prefix", Prefix)
92 assertTrue(checkMissingPreProcessRequest("URN_mso_workflow_sdncadapter_callback"))
93 assertTrue(checkMissingPreProcessRequest("URN_mso_workflow_sdnc_replication_delay"))
94 assertTrue(checkMissingPreProcessRequest("serviceInstanceId"))
95 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
96 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
97 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
98 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
99 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
103 // ***** getAaiAR *****
107 public void getAaiAR() {
108 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
110 ExecutionEntity mex = setupMock()
113 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
114 DoCreateAllottedResourceTXC.getAaiAR(mex)
116 verify(mex).setVariable("foundActiveAR", true)
121 public void getAaiAR_Duplicate() {
122 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
124 ExecutionEntity mex = setupMock()
128 when(mex.getVariable("failExists")).thenReturn("true")
130 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
132 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
137 public void getAaiAR_NotActive() {
138 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
140 ExecutionEntity mex = setupMock()
144 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
146 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
148 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
153 public void getAaiAR_NoStatus() {
154 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
156 ExecutionEntity mex = setupMock()
159 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
161 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
162 DoCreateAllottedResourceTXC.getAaiAR(mex)
164 verify(mex, never()).setVariable("foundActiveAR", true)
168 // ***** createAaiAR *****
172 public void createAaiAR() {
173 ExecutionEntity mex = setupMock()
174 def map = setupMap(mex)
177 MockPutAllottedResource(CUST, SVC, INST, ARID)
179 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
180 DoCreateAllottedResourceTXC.createAaiAR(mex)
182 def data = map.get("rollbackData")
184 assertTrue(data instanceof RollbackData)
186 assertEquals("45", data.get(Prefix, "disableRollback"))
187 assertEquals("true", data.get(Prefix, "rollbackAAI"))
188 assertEquals(ARID, data.get(Prefix, "allottedResourceId"))
189 assertEquals("sii", data.get(Prefix, "serviceInstanceId"))
190 assertEquals("psii", data.get(Prefix, "parentServiceInstanceId"))
191 assertEquals(mex.getVariable("PSI_resourceLink")+"/allotted-resources/allotted-resource/"+ARID, data.get(Prefix, "aaiARPath"))
196 public void createAaiAR_NoArid_NoModelUuids() {
197 ExecutionEntity mex = setupMock()
198 def map = setupMap(mex)
201 // no allottedResourceId - will be generated
203 when(mex.getVariable("allottedResourceId")).thenReturn(null)
206 .stubFor(put(urlMatching("/aai/.*/allotted-resource/.*"))
207 .willReturn(aResponse()
210 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
211 DoCreateAllottedResourceTXC.createAaiAR(mex)
213 def arid = map.get("allottedResourceId")
215 assertFalse(arid.isEmpty())
217 def data = map.get("rollbackData")
219 assertTrue(data instanceof RollbackData)
221 assertEquals(arid, data.get(Prefix, "allottedResourceId"))
226 public void createAaiAR_MissingPsiLink() {
227 ExecutionEntity mex = setupMock()
230 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
232 MockPutAllottedResource(CUST, SVC, INST, ARID)
234 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
236 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
241 public void createAaiAR_HttpFailed() {
242 ExecutionEntity mex = setupMock()
245 MockPutAllottedResource_500(CUST, SVC, INST, ARID)
247 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
249 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
254 public void createAaiAR_BpmnError() {
255 ExecutionEntity mex = setupMock()
258 when(mex.getVariable("URN_aai_endpoint")).thenThrow(new BpmnError("expected exception"))
260 MockPutAllottedResource(CUST, SVC, INST, ARID)
262 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
264 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
269 public void createAaiAR_Ex() {
270 ExecutionEntity mex = setupMock()
273 when(mex.getVariable("URN_aai_endpoint")).thenThrow(new RuntimeException("expected exception"))
275 MockPutAllottedResource(CUST, SVC, INST, ARID)
277 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
279 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
283 // ***** buildSDNCRequest *****
287 public void buildSDNCRequest() {
288 ExecutionEntity mex = setupMock()
289 initBuildSDNCRequest(mex)
291 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
293 String result = DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq")
295 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
296 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
297 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
298 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
299 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
300 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
301 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
302 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
303 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
304 assertTrue(result.indexOf("<request-id>mri</") >= 0)
305 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
306 assertTrue(result.indexOf("<model-uuid/>") >= 0)
307 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
308 assertTrue(result.indexOf("<model-version/>") >= 0)
309 assertTrue(result.indexOf("<model-name/>") >= 0)
314 public void buildSDNCRequest_Ex() {
315 ExecutionEntity mex = setupMock()
316 initBuildSDNCRequest(mex)
318 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
320 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
322 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
326 // ***** preProcessSDNCAssign *****
330 public void preProcessSDNCAssign() {
331 ExecutionEntity mex = setupMock()
332 def map = setupMap(mex)
333 def data = initPreProcessSDNC(mex)
335 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
336 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
338 def req = map.get("sdncAssignRequest")
341 assertEquals(data, map.get("rollbackData"))
343 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
345 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
346 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
347 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
349 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
350 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
351 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
356 public void preProcessSDNCAssign_BpmnError() {
357 ExecutionEntity mex = setupMock()
358 initPreProcessSDNC(mex)
360 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
362 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
364 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
369 public void preProcessSDNCAssign_Ex() {
370 ExecutionEntity mex = setupMock()
371 initPreProcessSDNC(mex)
373 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
375 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
377 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
381 // ***** preProcessSDNCCreate *****
385 public void preProcessSDNCCreate() {
386 ExecutionEntity mex = setupMock()
387 def map = setupMap(mex)
388 def data = initPreProcessSDNC(mex)
390 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
391 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
393 def req = map.get("sdncCreateRequest")
396 assertEquals(data, map.get("rollbackData"))
398 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
400 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
401 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
402 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
404 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
405 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
406 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
412 public void preProcessSDNCCreate_BpmnError() {
413 ExecutionEntity mex = setupMock()
414 initPreProcessSDNC(mex)
416 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
418 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
420 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
425 public void preProcessSDNCCreate_Ex() {
426 ExecutionEntity mex = setupMock()
427 initPreProcessSDNC(mex)
429 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
431 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
433 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
437 // ***** preProcessSDNCActivate *****
441 public void preProcessSDNCActivate() {
442 ExecutionEntity mex = setupMock()
443 def map = setupMap(mex)
444 def data = initPreProcessSDNC(mex)
446 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
447 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
449 def req = map.get("sdncActivateRequest")
452 assertEquals(data, map.get("rollbackData"))
454 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
456 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
457 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
458 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
460 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
461 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
462 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
468 public void preProcessSDNCActivate_BpmnError() {
469 ExecutionEntity mex = setupMock()
470 initPreProcessSDNC(mex)
472 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
474 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
476 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
481 public void preProcessSDNCActivate_Ex() {
482 ExecutionEntity mex = setupMock()
483 initPreProcessSDNC(mex)
485 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
487 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
489 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
493 // ***** validateSDNCResp *****
497 public void validateSDNCResp() {
498 ExecutionEntity mex = setupMock()
499 def map = setupMap(mex)
500 def data = initValidateSDNCResp(mex)
501 def resp = initValidateSDNCResp_Resp()
503 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
505 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
507 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
509 verify(mex).getVariable("WorkflowException")
510 verify(mex).getVariable("SDNCA_SuccessIndicator")
511 verify(mex).getVariable("rollbackData")
513 assertEquals(data, map.get("rollbackData"))
515 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
521 public void validateSDNCResp_Get() {
522 ExecutionEntity mex = setupMock()
523 def data = initValidateSDNCResp(mex)
524 def resp = initValidateSDNCResp_Resp()
526 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
528 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
530 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
532 verify(mex).getVariable("WorkflowException")
533 verify(mex).getVariable("SDNCA_SuccessIndicator")
535 verify(mex, never()).getVariable("rollbackData")
540 public void validateSDNCResp_Unsuccessful() {
541 ExecutionEntity mex = setupMock()
542 initValidateSDNCResp(mex)
543 def resp = initValidateSDNCResp_Resp()
546 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(false)
548 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
550 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
555 public void validateSDNCResp_BpmnError() {
556 ExecutionEntity mex = setupMock()
557 initValidateSDNCResp(mex)
558 def resp = initValidateSDNCResp_Resp()
560 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
562 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
564 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
569 public void validateSDNCResp_Ex() {
570 ExecutionEntity mex = setupMock()
571 initValidateSDNCResp(mex)
572 def resp = initValidateSDNCResp_Resp()
574 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
576 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
578 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
582 // ***** preProcessSDNCGet *****
586 public void preProcessSDNCGet_FoundAR() {
587 ExecutionEntity mex = setupMock()
588 def map = setupMap(mex)
589 initPreProcessSDNCGet(mex)
591 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
592 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
594 String req = map.get("sdncGetRequest")
596 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
597 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
598 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
599 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
605 public void preProcessSDNCGet_NotFoundAR() {
606 ExecutionEntity mex = setupMock()
607 def map = setupMap(mex)
608 initPreProcessSDNCGet(mex)
610 when(mex.getVariable("foundActiveAR")).thenReturn(false)
612 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
613 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
615 String req = map.get("sdncGetRequest")
617 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
618 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
619 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
620 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
626 public void preProcessSDNCGet_Ex() {
627 ExecutionEntity mex = setupMock()
628 initPreProcessSDNCGet(mex)
630 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
632 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
634 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
638 // ***** updateAaiAROrchStatus *****
642 public void updateAaiAROrchStatus() {
643 MockPatchAllottedResource(CUST, SVC, INST, ARID)
645 ExecutionEntity mex = setupMock()
646 initUpdateAaiAROrchStatus(mex)
648 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
649 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
653 // ***** generateOutputs *****
657 public void generateOutputs() {
658 ExecutionEntity mex = setupMock()
659 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
661 when(mex.getVariable(DBGFLAG)).thenReturn("true")
662 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
664 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
665 DoCreateAllottedResourceTXC.generateOutputs(mex)
667 verify(mex).setVariable("allotedResourceName", "namefromrequest")
668 verify(mex).setVariable("vni", "my-vni")
669 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
670 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
676 public void generateOutputs_BadXml() {
677 ExecutionEntity mex = setupMock()
679 when(mex.getVariable(DBGFLAG)).thenReturn("true")
680 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
682 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
683 DoCreateAllottedResourceTXC.generateOutputs(mex)
685 verify(mex, never()).setVariable(anyString(), anyString())
691 public void generateOutputs_BpmnError() {
692 ExecutionEntity mex = setupMock()
694 when(mex.getVariable(DBGFLAG)).thenReturn("true")
695 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
697 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
699 DoCreateAllottedResourceTXC.generateOutputs(mex)
700 verify(mex, never()).setVariable(anyString(), anyString())
706 public void generateOutputs_Ex() {
707 ExecutionEntity mex = setupMock()
709 when(mex.getVariable(DBGFLAG)).thenReturn("true")
710 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
712 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
714 DoCreateAllottedResourceTXC.generateOutputs(mex)
715 verify(mex, never()).setVariable(anyString(), anyString())
720 // ***** preProcessRollback *****
724 public void preProcessRollback() {
725 ExecutionEntity mex = setupMock()
726 WorkflowException wfe = mock(WorkflowException.class)
728 when(mex.getVariable(DBGFLAG)).thenReturn("true")
729 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
731 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
732 DoCreateAllottedResourceTXC.preProcessRollback(mex)
734 verify(mex).setVariable("prevWorkflowException", wfe)
740 public void preProcessRollback_NotWFE() {
741 ExecutionEntity mex = setupMock()
743 when(mex.getVariable(DBGFLAG)).thenReturn("true")
744 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
746 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
747 DoCreateAllottedResourceTXC.preProcessRollback(mex)
749 // verify(mex, never()).setVariable("prevWorkflowException", any())
755 public void preProcessRollback_BpmnError() {
756 ExecutionEntity mex = setupMock()
758 when(mex.getVariable(DBGFLAG)).thenReturn("true")
759 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
761 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
763 DoCreateAllottedResourceTXC.preProcessRollback(mex)
769 public void preProcessRollback_Ex() {
770 ExecutionEntity mex = setupMock()
772 when(mex.getVariable(DBGFLAG)).thenReturn("true")
773 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
775 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
777 DoCreateAllottedResourceTXC.preProcessRollback(mex)
782 // ***** postProcessRollback *****
786 public void postProcessRollback() {
787 ExecutionEntity mex = setupMock()
788 WorkflowException wfe = mock(WorkflowException.class)
790 when(mex.getVariable(DBGFLAG)).thenReturn("true")
791 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
793 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
794 DoCreateAllottedResourceTXC.postProcessRollback(mex)
796 verify(mex).setVariable("WorkflowException", wfe)
797 verify(mex).setVariable("rollbackData", null)
803 public void postProcessRollback_NotWFE() {
804 ExecutionEntity mex = setupMock()
806 when(mex.getVariable(DBGFLAG)).thenReturn("true")
807 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
809 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
810 DoCreateAllottedResourceTXC.postProcessRollback(mex)
812 // verify(mex, never()).setVariable("WorkflowException", any())
813 verify(mex).setVariable("rollbackData", null)
819 public void postProcessRollback_BpmnError() {
820 ExecutionEntity mex = setupMock()
822 when(mex.getVariable(DBGFLAG)).thenReturn("true")
823 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
825 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
827 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
828 verify(mex, never()).setVariable("rollbackData", null)
834 public void postProcessRollback_Ex() {
835 ExecutionEntity mex = setupMock()
837 when(mex.getVariable(DBGFLAG)).thenReturn("true")
838 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
840 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
842 DoCreateAllottedResourceTXC.postProcessRollback(mex)
843 verify(mex, never()).setVariable("rollbackData", null)
847 private boolean checkMissingPreProcessRequest(String fieldnm) {
848 ExecutionEntity mex = setupMock()
851 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
853 when(mex.getVariable(fieldnm)).thenReturn("")
855 return doBpmnError( { _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
858 private void initPreProcess(ExecutionEntity mex) {
859 when(mex.getVariable(DBGFLAG)).thenReturn("true")
860 when(mex.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("sdncurn")
861 when(mex.getVariable("URN_mso_workflow_sdnc_replication_delay")).thenReturn("sdncdelay")
862 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
863 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
864 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
865 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
866 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
867 when(mex.getVariable("allottedResourceType")).thenReturn("art")
870 private void initGetAaiAR(ExecutionEntity mex) {
871 when(mex.getVariable(DBGFLAG)).thenReturn("true")
872 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
873 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
874 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/getAR.xml"))
875 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
876 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
879 private initCreateAaiAr(ExecutionEntity mex) {
880 when(mex.getVariable("disableRollback")).thenReturn(45)
881 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
882 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
883 when(mex.getVariable(DBGFLAG)).thenReturn("true")
884 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
885 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
886 when(mex.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn(urnProps.get("mso.workflow.global.default.aai.namespace"))
887 when(mex.getVariable("PSI_resourceLink")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST)
888 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
889 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
890 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx+"/aai/v9/mycsi")
891 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
893 "modelInvariantUuid":"modelinvuuid",
894 "modelUuid":"modeluuid",
895 "modelCustomizationUuid":"modelcustuuid"
900 private initBuildSDNCRequest(ExecutionEntity mex) {
901 when(mex.getVariable(DBGFLAG)).thenReturn("true")
902 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
903 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
904 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
905 when(mex.getVariable("subscriptionServiceType")).thenReturn("sst")
906 when(mex.getVariable("globalCustomerId")).thenReturn("gci")
907 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
908 when(mex.getVariable("msoRequestId")).thenReturn("mri")
911 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
912 def data = new RollbackData()
914 when(mex.getVariable(DBGFLAG)).thenReturn("true")
915 when(mex.getVariable("rollbackData")).thenReturn(data)
920 private initPreProcessSDNCGet(ExecutionEntity mex) {
921 when(mex.getVariable(DBGFLAG)).thenReturn("true")
922 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
923 when(mex.getVariable("foundActiveAR")).thenReturn(true)
924 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
925 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
926 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
927 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
930 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
931 def data = new RollbackData()
933 when(mex.getVariable(DBGFLAG)).thenReturn("true")
934 when(mex.getVariable("prefix")).thenReturn(Prefix)
935 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
936 when(mex.getVariable("rollbackData")).thenReturn(data)
941 private String initValidateSDNCResp_Resp() {
942 return "<response-data><response-code>200</response-code></response-data>"
945 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
946 when(mex.getVariable(DBGFLAG)).thenReturn("true")
947 when(mex.getVariable("aaiARPath")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST+"/allotted-resources/allotted-resource/"+ARID)