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.camunda.bpm.engine.runtime.Execution
28 import org.junit.Before
29 import org.junit.BeforeClass
32 import org.junit.Ignore
33 import org.mockito.MockitoAnnotations
34 import org.camunda.bpm.engine.delegate.BpmnError
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.put
40 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor
41 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching
42 import static org.junit.Assert.*;
43 import static org.mockito.Mockito.*
44 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetAllottedResource
45 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchAllottedResource
46 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutAllottedResource
47 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutAllottedResource_500
51 import org.openecomp.mso.bpmn.core.RollbackData
52 import org.openecomp.mso.bpmn.vcpe.scripts.MapSetter
54 import com.github.tomakehurst.wiremock.junit.WireMockRule
56 class DoCreateAllottedResourceTXCTest extends GroovyTestBase {
59 public WireMockRule wireMockRule = new WireMockRule(PORT)
61 String Prefix = "DCARTXC_"
64 public static void setUpBeforeClass() {
71 MockitoAnnotations.initMocks(this)
74 public DoCreateAllottedResourceTXCTest() {
75 super("DoCreateAllottedResourceTXC")
79 // ***** preProcessRequest *****
83 public void preProcessRequest() {
84 ExecutionEntity mex = setupMock()
87 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
88 DoCreateAllottedResourceTXC.preProcessRequest(mex)
90 verify(mex).getVariable(DBGFLAG)
91 verify(mex).setVariable("prefix", Prefix)
93 assertTrue(checkMissingPreProcessRequest("URN_mso_workflow_sdncadapter_callback"))
94 assertTrue(checkMissingPreProcessRequest("URN_mso_workflow_sdnc_replication_delay"))
95 assertTrue(checkMissingPreProcessRequest("serviceInstanceId"))
96 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
97 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
98 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
99 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
100 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
104 // ***** getAaiAR *****
108 public void getAaiAR() {
109 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
111 ExecutionEntity mex = setupMock()
114 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
115 DoCreateAllottedResourceTXC.getAaiAR(mex)
117 verify(mex).setVariable("foundActiveAR", true)
122 public void getAaiAR_Duplicate() {
123 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
125 ExecutionEntity mex = setupMock()
129 when(mex.getVariable("failExists")).thenReturn("true")
131 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
133 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
138 public void getAaiAR_NotActive() {
139 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
141 ExecutionEntity mex = setupMock()
145 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
147 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
149 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
154 public void getAaiAR_NoStatus() {
155 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
157 ExecutionEntity mex = setupMock()
160 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
162 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
163 DoCreateAllottedResourceTXC.getAaiAR(mex)
165 verify(mex, never()).setVariable("foundActiveAR", true)
169 // ***** createAaiAR *****
173 public void createAaiAR() {
174 ExecutionEntity mex = setupMock()
175 def map = setupMap(mex)
178 MockPutAllottedResource(CUST, SVC, INST, ARID)
180 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
181 DoCreateAllottedResourceTXC.createAaiAR(mex)
183 def data = map.get("rollbackData")
185 assertTrue(data instanceof RollbackData)
187 assertEquals("45", data.get(Prefix, "disableRollback"))
188 assertEquals("true", data.get(Prefix, "rollbackAAI"))
189 assertEquals(ARID, data.get(Prefix, "allottedResourceId"))
190 assertEquals("sii", data.get(Prefix, "serviceInstanceId"))
191 assertEquals("psii", data.get(Prefix, "parentServiceInstanceId"))
192 assertEquals(mex.getVariable("PSI_resourceLink")+"/allotted-resources/allotted-resource/"+ARID, data.get(Prefix, "aaiARPath"))
197 public void createAaiAR_NoArid_NoModelUuids() {
198 ExecutionEntity mex = setupMock()
199 def map = setupMap(mex)
202 // no allottedResourceId - will be generated
204 when(mex.getVariable("allottedResourceId")).thenReturn(null)
207 .stubFor(put(urlMatching("/aai/.*/allotted-resource/.*"))
208 .willReturn(aResponse()
211 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
212 DoCreateAllottedResourceTXC.createAaiAR(mex)
214 def arid = map.get("allottedResourceId")
216 assertFalse(arid.isEmpty())
218 def data = map.get("rollbackData")
220 assertTrue(data instanceof RollbackData)
222 assertEquals(arid, data.get(Prefix, "allottedResourceId"))
227 public void createAaiAR_MissingPsiLink() {
228 ExecutionEntity mex = setupMock()
231 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
233 MockPutAllottedResource(CUST, SVC, INST, ARID)
235 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
237 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
242 public void createAaiAR_HttpFailed() {
243 ExecutionEntity mex = setupMock()
246 MockPutAllottedResource_500(CUST, SVC, INST, ARID)
248 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
250 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
255 public void createAaiAR_BpmnError() {
256 ExecutionEntity mex = setupMock()
259 when(mex.getVariable("URN_aai_endpoint")).thenThrow(new BpmnError("expected exception"))
261 MockPutAllottedResource(CUST, SVC, INST, ARID)
263 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
265 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
270 public void createAaiAR_Ex() {
271 ExecutionEntity mex = setupMock()
274 when(mex.getVariable("URN_aai_endpoint")).thenThrow(new RuntimeException("expected exception"))
276 MockPutAllottedResource(CUST, SVC, INST, ARID)
278 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
280 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
284 // ***** buildSDNCRequest *****
288 public void buildSDNCRequest() {
289 ExecutionEntity mex = setupMock()
290 initBuildSDNCRequest(mex)
292 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
294 String result = DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq")
296 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
297 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
298 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
299 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
300 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
301 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
302 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
303 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
304 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
305 assertTrue(result.indexOf("<request-id>mri</") >= 0)
306 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
307 assertTrue(result.indexOf("<model-uuid/>") >= 0)
308 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
309 assertTrue(result.indexOf("<model-version/>") >= 0)
310 assertTrue(result.indexOf("<model-name/>") >= 0)
315 public void buildSDNCRequest_Ex() {
316 ExecutionEntity mex = setupMock()
317 initBuildSDNCRequest(mex)
319 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
321 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
323 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
327 // ***** preProcessSDNCAssign *****
331 public void preProcessSDNCAssign() {
332 ExecutionEntity mex = setupMock()
333 def map = setupMap(mex)
334 def data = initPreProcessSDNC(mex)
336 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
337 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
339 def req = map.get("sdncAssignRequest")
342 assertEquals(data, map.get("rollbackData"))
344 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
346 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
347 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
348 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
350 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
351 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
352 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
357 public void preProcessSDNCAssign_BpmnError() {
358 ExecutionEntity mex = setupMock()
359 initPreProcessSDNC(mex)
361 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
363 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
365 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
370 public void preProcessSDNCAssign_Ex() {
371 ExecutionEntity mex = setupMock()
372 initPreProcessSDNC(mex)
374 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
376 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
378 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
382 // ***** preProcessSDNCCreate *****
386 public void preProcessSDNCCreate() {
387 ExecutionEntity mex = setupMock()
388 def map = setupMap(mex)
389 def data = initPreProcessSDNC(mex)
391 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
392 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
394 def req = map.get("sdncCreateRequest")
397 assertEquals(data, map.get("rollbackData"))
399 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
401 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
402 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
403 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
405 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
406 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
407 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
413 public void preProcessSDNCCreate_BpmnError() {
414 ExecutionEntity mex = setupMock()
415 initPreProcessSDNC(mex)
417 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
419 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
421 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
426 public void preProcessSDNCCreate_Ex() {
427 ExecutionEntity mex = setupMock()
428 initPreProcessSDNC(mex)
430 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
432 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
434 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
438 // ***** preProcessSDNCActivate *****
442 public void preProcessSDNCActivate() {
443 ExecutionEntity mex = setupMock()
444 def map = setupMap(mex)
445 def data = initPreProcessSDNC(mex)
447 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
448 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
450 def req = map.get("sdncActivateRequest")
453 assertEquals(data, map.get("rollbackData"))
455 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
457 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
458 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
459 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
461 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
462 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
463 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
469 public void preProcessSDNCActivate_BpmnError() {
470 ExecutionEntity mex = setupMock()
471 initPreProcessSDNC(mex)
473 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
475 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
477 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
482 public void preProcessSDNCActivate_Ex() {
483 ExecutionEntity mex = setupMock()
484 initPreProcessSDNC(mex)
486 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
488 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
490 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
494 // ***** validateSDNCResp *****
498 public void validateSDNCResp() {
499 ExecutionEntity mex = setupMock()
500 def map = setupMap(mex)
501 def data = initValidateSDNCResp(mex)
502 def resp = initValidateSDNCResp_Resp()
504 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
506 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
508 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
510 verify(mex).getVariable("WorkflowException")
511 verify(mex).getVariable("SDNCA_SuccessIndicator")
512 verify(mex).getVariable("rollbackData")
514 assertEquals(data, map.get("rollbackData"))
516 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
522 public void validateSDNCResp_Get() {
523 ExecutionEntity mex = setupMock()
524 def data = initValidateSDNCResp(mex)
525 def resp = initValidateSDNCResp_Resp()
527 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
529 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
531 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
533 verify(mex).getVariable("WorkflowException")
534 verify(mex).getVariable("SDNCA_SuccessIndicator")
536 verify(mex, never()).getVariable("rollbackData")
541 public void validateSDNCResp_Unsuccessful() {
542 ExecutionEntity mex = setupMock()
543 initValidateSDNCResp(mex)
544 def resp = initValidateSDNCResp_Resp()
547 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(false)
549 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
551 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
556 public void validateSDNCResp_BpmnError() {
557 ExecutionEntity mex = setupMock()
558 initValidateSDNCResp(mex)
559 def resp = initValidateSDNCResp_Resp()
561 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
563 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
565 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
570 public void validateSDNCResp_Ex() {
571 ExecutionEntity mex = setupMock()
572 initValidateSDNCResp(mex)
573 def resp = initValidateSDNCResp_Resp()
575 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
577 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
579 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
583 // ***** preProcessSDNCGet *****
587 public void preProcessSDNCGet_FoundAR() {
588 ExecutionEntity mex = setupMock()
589 def map = setupMap(mex)
590 initPreProcessSDNCGet(mex)
592 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
593 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
595 String req = map.get("sdncGetRequest")
597 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
598 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
599 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
600 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
606 public void preProcessSDNCGet_NotFoundAR() {
607 ExecutionEntity mex = setupMock()
608 def map = setupMap(mex)
609 initPreProcessSDNCGet(mex)
611 when(mex.getVariable("foundActiveAR")).thenReturn(false)
613 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
614 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
616 String req = map.get("sdncGetRequest")
618 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
619 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
620 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
621 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
627 public void preProcessSDNCGet_Ex() {
628 ExecutionEntity mex = setupMock()
629 initPreProcessSDNCGet(mex)
631 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
633 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
635 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
639 // ***** updateAaiAROrchStatus *****
643 public void updateAaiAROrchStatus() {
644 MockPatchAllottedResource(CUST, SVC, INST, ARID)
646 ExecutionEntity mex = setupMock()
647 initUpdateAaiAROrchStatus(mex)
649 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
650 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
654 // ***** generateOutputs *****
658 public void generateOutputs() {
659 ExecutionEntity mex = setupMock()
660 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
662 when(mex.getVariable(DBGFLAG)).thenReturn("true")
663 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
665 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
666 DoCreateAllottedResourceTXC.generateOutputs(mex)
668 verify(mex).setVariable("allotedResourceName", "namefromrequest")
669 verify(mex).setVariable("vni", "my-vni")
670 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
671 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
677 public void generateOutputs_BadXml() {
678 ExecutionEntity mex = setupMock()
680 when(mex.getVariable(DBGFLAG)).thenReturn("true")
681 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
683 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
684 DoCreateAllottedResourceTXC.generateOutputs(mex)
686 verify(mex, never()).setVariable(anyString(), anyString())
692 public void generateOutputs_BpmnError() {
693 ExecutionEntity mex = setupMock()
695 when(mex.getVariable(DBGFLAG)).thenReturn("true")
696 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
698 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
700 DoCreateAllottedResourceTXC.generateOutputs(mex)
701 verify(mex, never()).setVariable(anyString(), anyString())
707 public void generateOutputs_Ex() {
708 ExecutionEntity mex = setupMock()
710 when(mex.getVariable(DBGFLAG)).thenReturn("true")
711 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
713 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
715 DoCreateAllottedResourceTXC.generateOutputs(mex)
716 verify(mex, never()).setVariable(anyString(), anyString())
721 // ***** preProcessRollback *****
725 public void preProcessRollback() {
726 ExecutionEntity mex = setupMock()
727 WorkflowException wfe = mock(WorkflowException.class)
729 when(mex.getVariable(DBGFLAG)).thenReturn("true")
730 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
732 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
733 DoCreateAllottedResourceTXC.preProcessRollback(mex)
735 verify(mex).setVariable("prevWorkflowException", wfe)
741 public void preProcessRollback_NotWFE() {
742 ExecutionEntity mex = setupMock()
744 when(mex.getVariable(DBGFLAG)).thenReturn("true")
745 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
747 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
748 DoCreateAllottedResourceTXC.preProcessRollback(mex)
750 // verify(mex, never()).setVariable("prevWorkflowException", any())
756 public void preProcessRollback_BpmnError() {
757 ExecutionEntity mex = setupMock()
759 when(mex.getVariable(DBGFLAG)).thenReturn("true")
760 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
762 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
764 DoCreateAllottedResourceTXC.preProcessRollback(mex)
770 public void preProcessRollback_Ex() {
771 ExecutionEntity mex = setupMock()
773 when(mex.getVariable(DBGFLAG)).thenReturn("true")
774 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
776 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
778 DoCreateAllottedResourceTXC.preProcessRollback(mex)
783 // ***** postProcessRollback *****
787 public void postProcessRollback() {
788 ExecutionEntity mex = setupMock()
789 WorkflowException wfe = mock(WorkflowException.class)
791 when(mex.getVariable(DBGFLAG)).thenReturn("true")
792 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
794 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
795 DoCreateAllottedResourceTXC.postProcessRollback(mex)
797 verify(mex).setVariable("WorkflowException", wfe)
798 verify(mex).setVariable("rollbackData", null)
804 public void postProcessRollback_NotWFE() {
805 ExecutionEntity mex = setupMock()
807 when(mex.getVariable(DBGFLAG)).thenReturn("true")
808 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
810 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
811 DoCreateAllottedResourceTXC.postProcessRollback(mex)
813 // verify(mex, never()).setVariable("WorkflowException", any())
814 verify(mex).setVariable("rollbackData", null)
820 public void postProcessRollback_BpmnError() {
821 ExecutionEntity mex = setupMock()
823 when(mex.getVariable(DBGFLAG)).thenReturn("true")
824 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
826 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
828 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
829 verify(mex, never()).setVariable("rollbackData", null)
835 public void postProcessRollback_Ex() {
836 ExecutionEntity mex = setupMock()
838 when(mex.getVariable(DBGFLAG)).thenReturn("true")
839 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
841 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
843 DoCreateAllottedResourceTXC.postProcessRollback(mex)
844 verify(mex, never()).setVariable("rollbackData", null)
848 private boolean checkMissingPreProcessRequest(String fieldnm) {
849 ExecutionEntity mex = setupMock()
852 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
854 when(mex.getVariable(fieldnm)).thenReturn("")
856 return doBpmnError( { _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
859 private void initPreProcess(ExecutionEntity mex) {
860 when(mex.getVariable(DBGFLAG)).thenReturn("true")
861 when(mex.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("sdncurn")
862 when(mex.getVariable("URN_mso_workflow_sdnc_replication_delay")).thenReturn("sdncdelay")
863 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
864 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
865 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
866 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
867 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
868 when(mex.getVariable("allottedResourceType")).thenReturn("art")
871 private void initGetAaiAR(ExecutionEntity mex) {
872 when(mex.getVariable(DBGFLAG)).thenReturn("true")
873 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
874 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
875 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/getAR.xml"))
876 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
877 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
880 private initCreateAaiAr(ExecutionEntity mex) {
881 when(mex.getVariable("disableRollback")).thenReturn(45)
882 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
883 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
884 when(mex.getVariable(DBGFLAG)).thenReturn("true")
885 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
886 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
887 when(mex.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn(urnProps.get("mso.workflow.global.default.aai.namespace"))
888 when(mex.getVariable("PSI_resourceLink")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST)
889 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
890 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
891 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx+"/aai/v9/mycsi")
892 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
894 "modelInvariantUuid":"modelinvuuid",
895 "modelUuid":"modeluuid",
896 "modelCustomizationUuid":"modelcustuuid"
901 private initBuildSDNCRequest(ExecutionEntity mex) {
902 when(mex.getVariable(DBGFLAG)).thenReturn("true")
903 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
904 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
905 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
906 when(mex.getVariable("subscriptionServiceType")).thenReturn("sst")
907 when(mex.getVariable("globalCustomerId")).thenReturn("gci")
908 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
909 when(mex.getVariable("msoRequestId")).thenReturn("mri")
912 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
913 def data = new RollbackData()
915 when(mex.getVariable(DBGFLAG)).thenReturn("true")
916 when(mex.getVariable("rollbackData")).thenReturn(data)
921 private initPreProcessSDNCGet(ExecutionEntity mex) {
922 when(mex.getVariable(DBGFLAG)).thenReturn("true")
923 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
924 when(mex.getVariable("foundActiveAR")).thenReturn(true)
925 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
926 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
927 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
928 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
931 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
932 def data = new RollbackData()
934 when(mex.getVariable(DBGFLAG)).thenReturn("true")
935 when(mex.getVariable("prefix")).thenReturn(Prefix)
936 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
937 when(mex.getVariable("rollbackData")).thenReturn(data)
942 private String initValidateSDNCResp_Resp() {
943 return "<response-data><response-code>200</response-code></response-data>"
946 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
947 when(mex.getVariable(DBGFLAG)).thenReturn("true")
948 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)