2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.bpmn.vcpe.scripts
24 import org.camunda.bpm.engine.ProcessEngineServices
25 import org.camunda.bpm.engine.RepositoryService
26 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
27 import org.camunda.bpm.engine.repository.ProcessDefinition
28 import org.camunda.bpm.engine.delegate.DelegateExecution
29 import org.junit.Before
30 import org.junit.BeforeClass
33 import org.junit.Ignore
34 import org.mockito.MockitoAnnotations
35 import org.camunda.bpm.engine.delegate.BpmnError
36 import org.onap.so.bpmn.core.UrnPropertiesReader
37 import org.onap.so.bpmn.core.WorkflowException
38 import org.onap.so.bpmn.mock.FileUtil
39 import org.springframework.beans.factory.config.YamlPropertiesFactoryBean
40 import org.springframework.core.io.ClassPathResource
41 import org.springframework.core.io.FileSystemResource
42 import org.springframework.core.io.Resource
44 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse
45 import static com.github.tomakehurst.wiremock.client.WireMock.put
46 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor
47 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching
48 import static org.junit.Assert.*;
49 import static org.mockito.Mockito.*
50 import static org.onap.so.bpmn.mock.StubResponseAAI.MockGetAllottedResource
51 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPatchAllottedResource
52 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource
53 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource_500
57 import org.onap.so.bpmn.core.RollbackData
58 import org.onap.so.bpmn.vcpe.scripts.MapSetter
60 import com.github.tomakehurst.wiremock.junit.WireMockRule
62 class DoCreateAllottedResourceTXCTest extends GroovyTestBase {
65 public WireMockRule wireMockRule = new WireMockRule(PORT)
67 String Prefix = "DCARTXC_"
70 public static void setUpBeforeClass() {
71 aaiUriPfx = UrnPropertiesReader.getVariable("aai.endpoint")
77 MockitoAnnotations.initMocks(this)
80 public DoCreateAllottedResourceTXCTest() {
81 super("DoCreateAllottedResourceTXC")
85 // ***** preProcessRequest *****
89 public void preProcessRequest() {
90 ExecutionEntity mex = setupMock()
93 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
94 DoCreateAllottedResourceTXC.preProcessRequest(mex)
96 //verify(mex).getVariable(DBGFLAG)
97 verify(mex).setVariable("prefix", Prefix)
99 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdncadapter.callback"))
100 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdnc.replication.delay"))
101 assertTrue(checkMissingPreProcessRequest("serviceInstanceId"))
102 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
103 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
104 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
105 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
106 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
110 // ***** getAaiAR *****
114 public void getAaiAR() {
115 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
117 ExecutionEntity mex = setupMock()
120 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
121 DoCreateAllottedResourceTXC.getAaiAR(mex)
123 verify(mex).setVariable("foundActiveAR", true)
128 public void getAaiAR_Duplicate() {
129 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
131 ExecutionEntity mex = setupMock()
135 when(mex.getVariable("failExists")).thenReturn("true")
137 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
139 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
144 public void getAaiAR_NotActive() {
145 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
147 ExecutionEntity mex = setupMock()
151 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
153 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
155 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
160 public void getAaiAR_NoStatus() {
161 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
163 ExecutionEntity mex = setupMock()
166 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
168 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
169 DoCreateAllottedResourceTXC.getAaiAR(mex)
171 verify(mex, never()).setVariable("foundActiveAR", true)
175 // ***** createAaiAR *****
179 public void createAaiAR() {
180 ExecutionEntity mex = setupMock()
181 def map = setupMap(mex)
184 MockPutAllottedResource(CUST, SVC, INST, ARID)
186 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
187 DoCreateAllottedResourceTXC.createAaiAR(mex)
189 def data = map.get("rollbackData")
191 assertTrue(data instanceof RollbackData)
193 assertEquals("45", data.get(Prefix, "disableRollback"))
194 assertEquals("true", data.get(Prefix, "rollbackAAI"))
195 assertEquals(ARID, data.get(Prefix, "allottedResourceId"))
196 assertEquals("sii", data.get(Prefix, "serviceInstanceId"))
197 assertEquals("psii", data.get(Prefix, "parentServiceInstanceId"))
198 assertEquals(mex.getVariable("PSI_resourceLink")+"/allotted-resources/allotted-resource/"+ARID, data.get(Prefix, "aaiARPath"))
203 public void createAaiAR_NoArid_NoModelUuids() {
204 ExecutionEntity mex = setupMock()
205 def map = setupMap(mex)
208 // no allottedResourceId - will be generated
210 when(mex.getVariable("allottedResourceId")).thenReturn(null)
213 .stubFor(put(urlMatching("/aai/.*/allotted-resource/.*"))
214 .willReturn(aResponse()
217 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
218 DoCreateAllottedResourceTXC.createAaiAR(mex)
220 def arid = map.get("allottedResourceId")
222 assertFalse(arid.isEmpty())
224 def data = map.get("rollbackData")
226 assertTrue(data instanceof RollbackData)
228 assertEquals(arid, data.get(Prefix, "allottedResourceId"))
233 public void createAaiAR_MissingPsiLink() {
234 ExecutionEntity mex = setupMock()
237 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
239 MockPutAllottedResource(CUST, SVC, INST, ARID)
241 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
243 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
248 public void createAaiAR_HttpFailed() {
249 ExecutionEntity mex = setupMock()
252 MockPutAllottedResource_500(CUST, SVC, INST, ARID)
254 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
256 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
261 public void createAaiAR_BpmnError() {
262 ExecutionEntity mex = setupMock()
265 when(mex.getVariable("aai.endpoint")).thenThrow(new BpmnError("expected exception"))
267 MockPutAllottedResource(CUST, SVC, INST, ARID)
269 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
271 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
276 public void createAaiAR_Ex() {
277 ExecutionEntity mex = setupMock()
280 when(mex.getVariable("aai.endpoint")).thenThrow(new RuntimeException("expected exception"))
282 MockPutAllottedResource(CUST, SVC, INST, ARID)
284 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
286 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
290 // ***** buildSDNCRequest *****
294 public void buildSDNCRequest() {
295 ExecutionEntity mex = setupMock()
296 initBuildSDNCRequest(mex)
298 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
300 String result = DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq")
302 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
303 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
304 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
305 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
306 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
307 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
308 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
309 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
310 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
311 assertTrue(result.indexOf("<request-id>mri</") >= 0)
312 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
313 assertTrue(result.indexOf("<model-uuid/>") >= 0)
314 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
315 assertTrue(result.indexOf("<model-version/>") >= 0)
316 assertTrue(result.indexOf("<model-name/>") >= 0)
321 public void buildSDNCRequest_Ex() {
322 ExecutionEntity mex = setupMock()
323 initBuildSDNCRequest(mex)
325 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
327 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
329 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
333 // ***** preProcessSDNCAssign *****
337 public void preProcessSDNCAssign() {
338 ExecutionEntity mex = setupMock()
339 def map = setupMap(mex)
340 def data = initPreProcessSDNC(mex)
342 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
343 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
345 def req = map.get("sdncAssignRequest")
348 assertEquals(data, map.get("rollbackData"))
350 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
352 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
353 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
354 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
356 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
357 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
358 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
363 public void preProcessSDNCAssign_BpmnError() {
364 ExecutionEntity mex = setupMock()
365 initPreProcessSDNC(mex)
367 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
369 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
371 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
376 public void preProcessSDNCAssign_Ex() {
377 ExecutionEntity mex = setupMock()
378 initPreProcessSDNC(mex)
380 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
382 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
384 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
388 // ***** preProcessSDNCCreate *****
392 public void preProcessSDNCCreate() {
393 ExecutionEntity mex = setupMock()
394 def map = setupMap(mex)
395 def data = initPreProcessSDNC(mex)
397 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
398 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
400 def req = map.get("sdncCreateRequest")
403 assertEquals(data, map.get("rollbackData"))
405 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
407 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
408 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
409 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
411 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
412 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
413 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
419 public void preProcessSDNCCreate_BpmnError() {
420 ExecutionEntity mex = setupMock()
421 initPreProcessSDNC(mex)
423 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
425 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
427 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
432 public void preProcessSDNCCreate_Ex() {
433 ExecutionEntity mex = setupMock()
434 initPreProcessSDNC(mex)
436 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
438 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
440 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
444 // ***** preProcessSDNCActivate *****
448 public void preProcessSDNCActivate() {
449 ExecutionEntity mex = setupMock()
450 def map = setupMap(mex)
451 def data = initPreProcessSDNC(mex)
453 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
454 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
456 def req = map.get("sdncActivateRequest")
459 assertEquals(data, map.get("rollbackData"))
461 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
463 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
464 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
465 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
467 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
468 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
469 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
475 public void preProcessSDNCActivate_BpmnError() {
476 ExecutionEntity mex = setupMock()
477 initPreProcessSDNC(mex)
479 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
481 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
483 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
488 public void preProcessSDNCActivate_Ex() {
489 ExecutionEntity mex = setupMock()
490 initPreProcessSDNC(mex)
492 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
494 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
496 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
500 // ***** validateSDNCResp *****
504 public void validateSDNCResp() {
505 ExecutionEntity mex = setupMock()
506 def map = setupMap(mex)
507 def data = initValidateSDNCResp(mex)
508 def resp = initValidateSDNCResp_Resp()
510 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
512 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
514 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
516 verify(mex).getVariable("WorkflowException")
517 verify(mex).getVariable("SDNCA_SuccessIndicator")
518 verify(mex).getVariable("rollbackData")
520 assertEquals(data, map.get("rollbackData"))
522 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
528 public void validateSDNCResp_Get() {
529 ExecutionEntity mex = setupMock()
530 def data = initValidateSDNCResp(mex)
531 def resp = initValidateSDNCResp_Resp()
533 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
535 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
537 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
539 verify(mex).getVariable("WorkflowException")
540 verify(mex).getVariable("SDNCA_SuccessIndicator")
542 verify(mex, never()).getVariable("rollbackData")
547 public void validateSDNCResp_Unsuccessful() {
548 ExecutionEntity mex = setupMock()
549 initValidateSDNCResp(mex)
550 def resp = initValidateSDNCResp_Resp()
553 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(false)
555 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
557 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
562 public void validateSDNCResp_BpmnError() {
563 ExecutionEntity mex = setupMock()
564 initValidateSDNCResp(mex)
565 def resp = initValidateSDNCResp_Resp()
567 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
569 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
571 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
576 public void validateSDNCResp_Ex() {
577 ExecutionEntity mex = setupMock()
578 initValidateSDNCResp(mex)
579 def resp = initValidateSDNCResp_Resp()
581 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
583 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
585 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
589 // ***** preProcessSDNCGet *****
593 public void preProcessSDNCGet_FoundAR() {
594 ExecutionEntity mex = setupMock()
595 def map = setupMap(mex)
596 initPreProcessSDNCGet(mex)
598 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
599 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
601 String req = map.get("sdncGetRequest")
603 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
604 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
605 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
606 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
612 public void preProcessSDNCGet_NotFoundAR() {
613 ExecutionEntity mex = setupMock()
614 def map = setupMap(mex)
615 initPreProcessSDNCGet(mex)
617 when(mex.getVariable("foundActiveAR")).thenReturn(false)
619 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
620 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
622 String req = map.get("sdncGetRequest")
624 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
625 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
626 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
627 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
633 public void preProcessSDNCGet_Ex() {
634 ExecutionEntity mex = setupMock()
635 initPreProcessSDNCGet(mex)
637 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
639 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
641 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
645 // ***** updateAaiAROrchStatus *****
649 public void updateAaiAROrchStatus() {
650 MockPatchAllottedResource(CUST, SVC, INST, ARID)
652 ExecutionEntity mex = setupMock()
653 initUpdateAaiAROrchStatus(mex)
655 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
656 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
660 // ***** generateOutputs *****
664 public void generateOutputs() {
665 ExecutionEntity mex = setupMock()
666 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
668 when(mex.getVariable(DBGFLAG)).thenReturn("true")
669 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
671 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
672 DoCreateAllottedResourceTXC.generateOutputs(mex)
674 verify(mex).setVariable("allotedResourceName", "namefromrequest")
675 verify(mex).setVariable("vni", "my-vni")
676 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
677 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
683 public void generateOutputs_BadXml() {
684 ExecutionEntity mex = setupMock()
686 when(mex.getVariable(DBGFLAG)).thenReturn("true")
687 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
689 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
690 DoCreateAllottedResourceTXC.generateOutputs(mex)
692 verify(mex, never()).setVariable(anyString(), anyString())
698 public void generateOutputs_BpmnError() {
699 ExecutionEntity mex = setupMock()
701 when(mex.getVariable(DBGFLAG)).thenReturn("true")
702 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
704 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
706 DoCreateAllottedResourceTXC.generateOutputs(mex)
707 verify(mex, never()).setVariable(anyString(), anyString())
713 public void generateOutputs_Ex() {
714 ExecutionEntity mex = setupMock()
716 when(mex.getVariable(DBGFLAG)).thenReturn("true")
717 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
719 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
721 DoCreateAllottedResourceTXC.generateOutputs(mex)
722 verify(mex, never()).setVariable(anyString(), anyString())
727 // ***** preProcessRollback *****
731 public void preProcessRollback() {
732 ExecutionEntity mex = setupMock()
733 WorkflowException wfe = mock(WorkflowException.class)
735 when(mex.getVariable(DBGFLAG)).thenReturn("true")
736 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
738 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
739 DoCreateAllottedResourceTXC.preProcessRollback(mex)
741 verify(mex).setVariable("prevWorkflowException", wfe)
747 public void preProcessRollback_NotWFE() {
748 ExecutionEntity mex = setupMock()
750 when(mex.getVariable(DBGFLAG)).thenReturn("true")
751 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
753 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
754 DoCreateAllottedResourceTXC.preProcessRollback(mex)
756 // verify(mex, never()).setVariable("prevWorkflowException", any())
762 public void preProcessRollback_BpmnError() {
763 ExecutionEntity mex = setupMock()
765 when(mex.getVariable(DBGFLAG)).thenReturn("true")
766 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
768 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
770 DoCreateAllottedResourceTXC.preProcessRollback(mex)
776 public void preProcessRollback_Ex() {
777 ExecutionEntity mex = setupMock()
779 when(mex.getVariable(DBGFLAG)).thenReturn("true")
780 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
782 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
784 DoCreateAllottedResourceTXC.preProcessRollback(mex)
789 // ***** postProcessRollback *****
793 public void postProcessRollback() {
794 ExecutionEntity mex = setupMock()
795 WorkflowException wfe = mock(WorkflowException.class)
797 when(mex.getVariable(DBGFLAG)).thenReturn("true")
798 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
800 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
801 DoCreateAllottedResourceTXC.postProcessRollback(mex)
803 verify(mex).setVariable("WorkflowException", wfe)
804 verify(mex).setVariable("rollbackData", null)
810 public void postProcessRollback_NotWFE() {
811 ExecutionEntity mex = setupMock()
813 when(mex.getVariable(DBGFLAG)).thenReturn("true")
814 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
816 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
817 DoCreateAllottedResourceTXC.postProcessRollback(mex)
819 // verify(mex, never()).setVariable("WorkflowException", any())
820 verify(mex).setVariable("rollbackData", null)
826 public void postProcessRollback_BpmnError() {
827 ExecutionEntity mex = setupMock()
829 when(mex.getVariable(DBGFLAG)).thenReturn("true")
830 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
832 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
834 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
835 verify(mex, never()).setVariable("rollbackData", null)
841 public void postProcessRollback_Ex() {
842 ExecutionEntity mex = setupMock()
844 when(mex.getVariable(DBGFLAG)).thenReturn("true")
845 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
847 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
849 DoCreateAllottedResourceTXC.postProcessRollback(mex)
850 verify(mex, never()).setVariable("rollbackData", null)
854 private boolean checkMissingPreProcessRequest(String fieldnm) {
855 ExecutionEntity mex = setupMock()
858 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
860 when(mex.getVariable(fieldnm)).thenReturn("")
862 return doBpmnError( { _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
865 private void initPreProcess(ExecutionEntity mex) {
866 when(mex.getVariable(DBGFLAG)).thenReturn("true")
867 when(mex.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("sdncurn")
868 when(mex.getVariable("mso.workflow.sdnc.replication.delay")).thenReturn("sdncdelay")
869 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
870 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
871 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
872 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
873 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
874 when(mex.getVariable("allottedResourceType")).thenReturn("art")
877 private void initGetAaiAR(ExecutionEntity mex) {
878 when(mex.getVariable(DBGFLAG)).thenReturn("true")
879 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
880 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
881 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/getAR.xml"))
882 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
883 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
886 private initCreateAaiAr(ExecutionEntity mex) {
887 when(mex.getVariable("disableRollback")).thenReturn(45)
888 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
889 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
890 when(mex.getVariable(DBGFLAG)).thenReturn("true")
891 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
892 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
893 when(mex.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn(UrnPropertiesReader.getVariable("mso.workflow.global.default.aai.namespace"))
894 when(mex.getVariable("PSI_resourceLink")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST)
895 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
896 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
897 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx+"/aai/v9/mycsi")
898 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
900 "modelInvariantUuid":"modelinvuuid",
901 "modelUuid":"modeluuid",
902 "modelCustomizationUuid":"modelcustuuid"
907 private initBuildSDNCRequest(ExecutionEntity mex) {
908 when(mex.getVariable(DBGFLAG)).thenReturn("true")
909 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
910 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
911 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
912 when(mex.getVariable("subscriptionServiceType")).thenReturn("sst")
913 when(mex.getVariable("globalCustomerId")).thenReturn("gci")
914 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
915 when(mex.getVariable("msoRequestId")).thenReturn("mri")
918 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
919 def data = new RollbackData()
921 when(mex.getVariable(DBGFLAG)).thenReturn("true")
922 when(mex.getVariable("rollbackData")).thenReturn(data)
927 private initPreProcessSDNCGet(ExecutionEntity mex) {
928 when(mex.getVariable(DBGFLAG)).thenReturn("true")
929 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
930 when(mex.getVariable("foundActiveAR")).thenReturn(true)
931 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
932 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
933 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
934 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
937 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
938 def data = new RollbackData()
940 when(mex.getVariable(DBGFLAG)).thenReturn("true")
941 when(mex.getVariable("prefix")).thenReturn(Prefix)
942 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
943 when(mex.getVariable("rollbackData")).thenReturn(data)
948 private String initValidateSDNCResp_Resp() {
949 return "<response-data><response-code>200</response-code></response-data>"
952 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
953 when(mex.getVariable(DBGFLAG)).thenReturn("true")
954 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)