2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
20 package org.openecomp.mso.bpmn.vcpe.scripts
23 import org.camunda.bpm.engine.ProcessEngineServices
\r
24 import org.camunda.bpm.engine.RepositoryService
\r
25 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
\r
26 import org.camunda.bpm.engine.repository.ProcessDefinition
\r
27 import org.camunda.bpm.engine.runtime.Execution
\r
28 import org.junit.Before
29 import org.junit.BeforeClass
\r
30 import org.junit.Rule
\r
32 import org.junit.Ignore
\r
33 import org.mockito.MockitoAnnotations
34 import org.camunda.bpm.engine.delegate.BpmnError
\r
35 import org.openecomp.mso.bpmn.core.WorkflowException
36 import org.openecomp.mso.bpmn.mock.FileUtil
38 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse
39 import static com.github.tomakehurst.wiremock.client.WireMock.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.*;
\r
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
\r
56 class DoCreateAllottedResourceTXCTest extends GroovyTestBase {
\r
59 public WireMockRule wireMockRule = new WireMockRule(PORT)
61 String Prefix = "DCARTXC_"
\r
64 public static void setUpBeforeClass() {
65 def fr = new FileReader("src/test/resources/mso.bpmn.urn.properties")
69 aaiUriPfx = urnProps.get("aai.endpoint")
75 MockitoAnnotations.initMocks(this)
\r
78 public DoCreateAllottedResourceTXCTest() {
79 super("DoCreateAllottedResourceTXC")
83 // ***** preProcessRequest *****
\r
87 public void preProcessRequest() {
\r
88 ExecutionEntity mex = setupMock()
91 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
\r
92 DoCreateAllottedResourceTXC.preProcessRequest(mex)
\r
94 verify(mex).getVariable(DBGFLAG)
\r
95 verify(mex).setVariable("prefix", Prefix)
\r
97 assertTrue(checkMissingPreProcessRequest("URN_mso_workflow_sdncadapter_callback"))
98 assertTrue(checkMissingPreProcessRequest("URN_mso_workflow_sdnc_replication_delay"))
99 assertTrue(checkMissingPreProcessRequest("serviceInstanceId"))
100 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
101 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
102 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
103 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
104 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
\r
108 // ***** getAaiAR *****
112 public void getAaiAR() {
113 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
115 ExecutionEntity mex = setupMock()
118 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
119 DoCreateAllottedResourceTXC.getAaiAR(mex)
121 verify(mex).setVariable("foundActiveAR", true)
126 public void getAaiAR_Duplicate() {
127 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
129 ExecutionEntity mex = setupMock()
133 when(mex.getVariable("failExists")).thenReturn("true")
135 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
137 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
142 public void getAaiAR_NotActive() {
143 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
145 ExecutionEntity mex = setupMock()
149 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
151 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
153 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
158 public void getAaiAR_NoStatus() {
159 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
161 ExecutionEntity mex = setupMock()
164 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
166 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
167 DoCreateAllottedResourceTXC.getAaiAR(mex)
169 verify(mex, never()).setVariable("foundActiveAR", true)
173 // ***** createAaiAR *****
177 public void createAaiAR() {
178 ExecutionEntity mex = setupMock()
179 def map = setupMap(mex)
182 MockPutAllottedResource(CUST, SVC, INST, ARID)
184 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
185 DoCreateAllottedResourceTXC.createAaiAR(mex)
187 def data = map.get("rollbackData")
189 assertTrue(data instanceof RollbackData)
191 assertEquals("45", data.get(Prefix, "disableRollback"))
192 assertEquals("true", data.get(Prefix, "rollbackAAI"))
193 assertEquals(ARID, data.get(Prefix, "allottedResourceId"))
194 assertEquals("sii", data.get(Prefix, "serviceInstanceId"))
195 assertEquals("psii", data.get(Prefix, "parentServiceInstanceId"))
196 assertEquals(mex.getVariable("PSI_resourceLink")+"/allotted-resources/allotted-resource/"+ARID, data.get(Prefix, "aaiARPath"))
201 public void createAaiAR_NoArid_NoModelUuids() {
202 ExecutionEntity mex = setupMock()
203 def map = setupMap(mex)
206 // no allottedResourceId - will be generated
208 when(mex.getVariable("allottedResourceId")).thenReturn(null)
211 .stubFor(put(urlMatching("/aai/.*/allotted-resource/.*"))
212 .willReturn(aResponse()
215 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
216 DoCreateAllottedResourceTXC.createAaiAR(mex)
218 def arid = map.get("allottedResourceId")
220 assertFalse(arid.isEmpty())
222 def data = map.get("rollbackData")
224 assertTrue(data instanceof RollbackData)
226 assertEquals(arid, data.get(Prefix, "allottedResourceId"))
231 public void createAaiAR_MissingPsiLink() {
232 ExecutionEntity mex = setupMock()
235 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
237 MockPutAllottedResource(CUST, SVC, INST, ARID)
239 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
241 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
246 public void createAaiAR_HttpFailed() {
247 ExecutionEntity mex = setupMock()
250 MockPutAllottedResource_500(CUST, SVC, INST, ARID)
252 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
254 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
259 public void createAaiAR_BpmnError() {
260 ExecutionEntity mex = setupMock()
263 when(mex.getVariable("URN_aai_endpoint")).thenThrow(new BpmnError("expected exception"))
265 MockPutAllottedResource(CUST, SVC, INST, ARID)
267 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
269 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
274 public void createAaiAR_Ex() {
275 ExecutionEntity mex = setupMock()
278 when(mex.getVariable("URN_aai_endpoint")).thenThrow(new RuntimeException("expected exception"))
280 MockPutAllottedResource(CUST, SVC, INST, ARID)
282 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
284 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
288 // ***** buildSDNCRequest *****
292 public void buildSDNCRequest() {
293 ExecutionEntity mex = setupMock()
294 initBuildSDNCRequest(mex)
296 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
298 String result = DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq")
300 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
301 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
302 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
303 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
304 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
305 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
306 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
307 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
308 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
309 assertTrue(result.indexOf("<request-id>mri</") >= 0)
310 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
311 assertTrue(result.indexOf("<model-uuid/>") >= 0)
312 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
313 assertTrue(result.indexOf("<model-version/>") >= 0)
314 assertTrue(result.indexOf("<model-name/>") >= 0)
319 public void buildSDNCRequest_Ex() {
320 ExecutionEntity mex = setupMock()
321 initBuildSDNCRequest(mex)
323 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
325 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
327 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
331 // ***** preProcessSDNCAssign *****
335 public void preProcessSDNCAssign() {
336 ExecutionEntity mex = setupMock()
337 def map = setupMap(mex)
338 def data = initPreProcessSDNC(mex)
340 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
341 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
343 def req = map.get("sdncAssignRequest")
346 assertEquals(data, map.get("rollbackData"))
348 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
350 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
351 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
352 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
354 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
355 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
356 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
361 public void preProcessSDNCAssign_BpmnError() {
362 ExecutionEntity mex = setupMock()
363 initPreProcessSDNC(mex)
365 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
367 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
369 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
374 public void preProcessSDNCAssign_Ex() {
375 ExecutionEntity mex = setupMock()
376 initPreProcessSDNC(mex)
378 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
380 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
382 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
386 // ***** preProcessSDNCCreate *****
390 public void preProcessSDNCCreate() {
391 ExecutionEntity mex = setupMock()
392 def map = setupMap(mex)
393 def data = initPreProcessSDNC(mex)
395 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
396 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
398 def req = map.get("sdncCreateRequest")
401 assertEquals(data, map.get("rollbackData"))
403 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
405 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
406 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
407 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
409 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
410 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
411 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
417 public void preProcessSDNCCreate_BpmnError() {
418 ExecutionEntity mex = setupMock()
419 initPreProcessSDNC(mex)
421 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
423 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
425 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
430 public void preProcessSDNCCreate_Ex() {
431 ExecutionEntity mex = setupMock()
432 initPreProcessSDNC(mex)
434 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
436 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
438 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
442 // ***** preProcessSDNCActivate *****
446 public void preProcessSDNCActivate() {
447 ExecutionEntity mex = setupMock()
448 def map = setupMap(mex)
449 def data = initPreProcessSDNC(mex)
451 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
452 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
454 def req = map.get("sdncActivateRequest")
457 assertEquals(data, map.get("rollbackData"))
459 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
461 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
462 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
463 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
465 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
466 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
467 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
473 public void preProcessSDNCActivate_BpmnError() {
474 ExecutionEntity mex = setupMock()
475 initPreProcessSDNC(mex)
477 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
479 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
481 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
486 public void preProcessSDNCActivate_Ex() {
487 ExecutionEntity mex = setupMock()
488 initPreProcessSDNC(mex)
490 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
492 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
494 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
498 // ***** validateSDNCResp *****
502 public void validateSDNCResp() {
503 ExecutionEntity mex = setupMock()
504 def map = setupMap(mex)
505 def data = initValidateSDNCResp(mex)
506 def resp = initValidateSDNCResp_Resp()
508 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
510 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
512 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
514 verify(mex).getVariable("WorkflowException")
515 verify(mex).getVariable("SDNCA_SuccessIndicator")
516 verify(mex).getVariable("rollbackData")
518 assertEquals(data, map.get("rollbackData"))
520 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
526 public void validateSDNCResp_Get() {
527 ExecutionEntity mex = setupMock()
528 def data = initValidateSDNCResp(mex)
529 def resp = initValidateSDNCResp_Resp()
531 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
533 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
535 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
537 verify(mex).getVariable("WorkflowException")
538 verify(mex).getVariable("SDNCA_SuccessIndicator")
540 verify(mex, never()).getVariable("rollbackData")
545 public void validateSDNCResp_Unsuccessful() {
546 ExecutionEntity mex = setupMock()
547 initValidateSDNCResp(mex)
548 def resp = initValidateSDNCResp_Resp()
551 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(false)
553 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
555 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
560 public void validateSDNCResp_BpmnError() {
561 ExecutionEntity mex = setupMock()
562 initValidateSDNCResp(mex)
563 def resp = initValidateSDNCResp_Resp()
565 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
567 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
569 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
574 public void validateSDNCResp_Ex() {
575 ExecutionEntity mex = setupMock()
576 initValidateSDNCResp(mex)
577 def resp = initValidateSDNCResp_Resp()
579 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
581 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
583 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
587 // ***** preProcessSDNCGet *****
591 public void preProcessSDNCGet_FoundAR() {
592 ExecutionEntity mex = setupMock()
593 def map = setupMap(mex)
594 initPreProcessSDNCGet(mex)
596 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
597 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
599 String req = map.get("sdncGetRequest")
601 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
602 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
603 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
604 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
610 public void preProcessSDNCGet_NotFoundAR() {
611 ExecutionEntity mex = setupMock()
612 def map = setupMap(mex)
613 initPreProcessSDNCGet(mex)
615 when(mex.getVariable("foundActiveAR")).thenReturn(false)
617 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
618 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
620 String req = map.get("sdncGetRequest")
622 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
623 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
624 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
625 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
631 public void preProcessSDNCGet_Ex() {
632 ExecutionEntity mex = setupMock()
633 initPreProcessSDNCGet(mex)
635 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
637 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
639 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
643 // ***** updateAaiAROrchStatus *****
647 public void updateAaiAROrchStatus() {
648 MockPatchAllottedResource(CUST, SVC, INST, ARID)
650 ExecutionEntity mex = setupMock()
651 initUpdateAaiAROrchStatus(mex)
653 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
654 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
658 // ***** generateOutputs *****
662 public void generateOutputs() {
663 ExecutionEntity mex = setupMock()
664 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
666 when(mex.getVariable(DBGFLAG)).thenReturn("true")
667 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
669 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
670 DoCreateAllottedResourceTXC.generateOutputs(mex)
672 verify(mex).setVariable("allotedResourceName", "namefromrequest")
673 verify(mex).setVariable("vni", "my-vni")
674 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
675 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
681 public void generateOutputs_BadXml() {
682 ExecutionEntity mex = setupMock()
684 when(mex.getVariable(DBGFLAG)).thenReturn("true")
685 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
687 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
688 DoCreateAllottedResourceTXC.generateOutputs(mex)
690 verify(mex, never()).setVariable(anyString(), anyString())
696 public void generateOutputs_BpmnError() {
697 ExecutionEntity mex = setupMock()
699 when(mex.getVariable(DBGFLAG)).thenReturn("true")
700 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
702 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
704 DoCreateAllottedResourceTXC.generateOutputs(mex)
705 verify(mex, never()).setVariable(anyString(), anyString())
711 public void generateOutputs_Ex() {
712 ExecutionEntity mex = setupMock()
714 when(mex.getVariable(DBGFLAG)).thenReturn("true")
715 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
717 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
719 DoCreateAllottedResourceTXC.generateOutputs(mex)
720 verify(mex, never()).setVariable(anyString(), anyString())
725 // ***** preProcessRollback *****
729 public void preProcessRollback() {
730 ExecutionEntity mex = setupMock()
731 WorkflowException wfe = mock(WorkflowException.class)
733 when(mex.getVariable(DBGFLAG)).thenReturn("true")
734 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
736 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
737 DoCreateAllottedResourceTXC.preProcessRollback(mex)
739 verify(mex).setVariable("prevWorkflowException", wfe)
745 public void preProcessRollback_NotWFE() {
746 ExecutionEntity mex = setupMock()
748 when(mex.getVariable(DBGFLAG)).thenReturn("true")
749 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
751 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
752 DoCreateAllottedResourceTXC.preProcessRollback(mex)
754 // verify(mex, never()).setVariable("prevWorkflowException", any())
760 public void preProcessRollback_BpmnError() {
761 ExecutionEntity mex = setupMock()
763 when(mex.getVariable(DBGFLAG)).thenReturn("true")
764 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
766 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
768 DoCreateAllottedResourceTXC.preProcessRollback(mex)
774 public void preProcessRollback_Ex() {
775 ExecutionEntity mex = setupMock()
777 when(mex.getVariable(DBGFLAG)).thenReturn("true")
778 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
780 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
782 DoCreateAllottedResourceTXC.preProcessRollback(mex)
787 // ***** postProcessRollback *****
791 public void postProcessRollback() {
792 ExecutionEntity mex = setupMock()
793 WorkflowException wfe = mock(WorkflowException.class)
795 when(mex.getVariable(DBGFLAG)).thenReturn("true")
796 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
798 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
799 DoCreateAllottedResourceTXC.postProcessRollback(mex)
801 verify(mex).setVariable("WorkflowException", wfe)
802 verify(mex).setVariable("rollbackData", null)
808 public void postProcessRollback_NotWFE() {
809 ExecutionEntity mex = setupMock()
811 when(mex.getVariable(DBGFLAG)).thenReturn("true")
812 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
814 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
815 DoCreateAllottedResourceTXC.postProcessRollback(mex)
817 // verify(mex, never()).setVariable("WorkflowException", any())
818 verify(mex).setVariable("rollbackData", null)
824 public void postProcessRollback_BpmnError() {
825 ExecutionEntity mex = setupMock()
827 when(mex.getVariable(DBGFLAG)).thenReturn("true")
828 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
830 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
832 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
833 verify(mex, never()).setVariable("rollbackData", null)
839 public void postProcessRollback_Ex() {
840 ExecutionEntity mex = setupMock()
842 when(mex.getVariable(DBGFLAG)).thenReturn("true")
843 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
845 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
847 DoCreateAllottedResourceTXC.postProcessRollback(mex)
848 verify(mex, never()).setVariable("rollbackData", null)
852 private boolean checkMissingPreProcessRequest(String fieldnm) {
853 ExecutionEntity mex = setupMock()
856 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
858 when(mex.getVariable(fieldnm)).thenReturn("")
860 return doBpmnError( { _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
863 private void initPreProcess(ExecutionEntity mex) {
864 when(mex.getVariable(DBGFLAG)).thenReturn("true")
865 when(mex.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("sdncurn")
866 when(mex.getVariable("URN_mso_workflow_sdnc_replication_delay")).thenReturn("sdncdelay")
867 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
868 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
869 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
870 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
871 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
872 when(mex.getVariable("allottedResourceType")).thenReturn("art")
875 private void initGetAaiAR(ExecutionEntity mex) {
876 when(mex.getVariable(DBGFLAG)).thenReturn("true")
877 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
878 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
879 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/getAR.xml"))
880 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
881 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
884 private initCreateAaiAr(ExecutionEntity mex) {
885 when(mex.getVariable("disableRollback")).thenReturn(45)
886 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
887 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
888 when(mex.getVariable(DBGFLAG)).thenReturn("true")
889 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
890 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
891 when(mex.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn(urnProps.get("mso.workflow.global.default.aai.namespace"))
892 when(mex.getVariable("PSI_resourceLink")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST)
893 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
894 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
895 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx+"/aai/v9/mycsi")
896 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
898 "modelInvariantUuid":"modelinvuuid",
899 "modelUuid":"modeluuid",
900 "modelCustomizationUuid":"modelcustuuid"
905 private initBuildSDNCRequest(ExecutionEntity mex) {
906 when(mex.getVariable(DBGFLAG)).thenReturn("true")
907 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
908 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
909 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
910 when(mex.getVariable("subscriptionServiceType")).thenReturn("sst")
911 when(mex.getVariable("globalCustomerId")).thenReturn("gci")
912 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
913 when(mex.getVariable("msoRequestId")).thenReturn("mri")
916 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
917 def data = new RollbackData()
919 when(mex.getVariable(DBGFLAG)).thenReturn("true")
920 when(mex.getVariable("rollbackData")).thenReturn(data)
925 private initPreProcessSDNCGet(ExecutionEntity mex) {
926 when(mex.getVariable(DBGFLAG)).thenReturn("true")
927 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
928 when(mex.getVariable("foundActiveAR")).thenReturn(true)
929 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
930 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
931 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
932 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
935 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
936 def data = new RollbackData()
938 when(mex.getVariable(DBGFLAG)).thenReturn("true")
939 when(mex.getVariable("prefix")).thenReturn(Prefix)
940 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
941 when(mex.getVariable("rollbackData")).thenReturn(data)
946 private String initValidateSDNCResp_Resp() {
947 return "<response-data><response-code>200</response-code></response-data>"
950 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
951 when(mex.getVariable(DBGFLAG)).thenReturn("true")
952 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)