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("serviceInstanceId"))
99 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
100 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
101 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
102 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
103 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
\r
107 // ***** getAaiAR *****
111 public void getAaiAR() {
112 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
114 ExecutionEntity mex = setupMock()
117 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
118 DoCreateAllottedResourceTXC.getAaiAR(mex)
120 verify(mex).setVariable("foundActiveAR", true)
125 public void getAaiAR_Duplicate() {
126 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
128 ExecutionEntity mex = setupMock()
132 when(mex.getVariable("failExists")).thenReturn("true")
134 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
136 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
141 public void getAaiAR_NotActive() {
142 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
144 ExecutionEntity mex = setupMock()
148 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
150 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
152 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
157 public void getAaiAR_NoStatus() {
158 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
160 ExecutionEntity mex = setupMock()
163 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
165 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
166 DoCreateAllottedResourceTXC.getAaiAR(mex)
168 verify(mex, never()).setVariable("foundActiveAR", true)
172 // ***** createAaiAR *****
176 public void createAaiAR() {
177 ExecutionEntity mex = setupMock()
178 def map = setupMap(mex)
181 MockPutAllottedResource(CUST, SVC, INST, ARID)
183 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
184 DoCreateAllottedResourceTXC.createAaiAR(mex)
186 def data = map.get("rollbackData")
188 assertTrue(data instanceof RollbackData)
190 assertEquals("45", data.get(Prefix, "disableRollback"))
191 assertEquals("true", data.get(Prefix, "rollbackAAI"))
192 assertEquals(ARID, data.get(Prefix, "allottedResourceId"))
193 assertEquals("sii", data.get(Prefix, "serviceInstanceId"))
194 assertEquals("psii", data.get(Prefix, "parentServiceInstanceId"))
195 assertEquals(mex.getVariable("PSI_resourceLink")+"/allotted-resources/allotted-resource/"+ARID, data.get(Prefix, "aaiARPath"))
200 public void createAaiAR_NoArid_NoModelUuids() {
201 ExecutionEntity mex = setupMock()
202 def map = setupMap(mex)
205 // no allottedResourceId - will be generated
207 when(mex.getVariable("allottedResourceId")).thenReturn(null)
210 .stubFor(put(urlMatching("/aai/.*/allotted-resource/.*"))
211 .willReturn(aResponse()
214 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
215 DoCreateAllottedResourceTXC.createAaiAR(mex)
217 def arid = map.get("allottedResourceId")
219 assertFalse(arid.isEmpty())
221 def data = map.get("rollbackData")
223 assertTrue(data instanceof RollbackData)
225 assertEquals(arid, data.get(Prefix, "allottedResourceId"))
230 public void createAaiAR_MissingPsiLink() {
231 ExecutionEntity mex = setupMock()
234 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
236 MockPutAllottedResource(CUST, SVC, INST, ARID)
238 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
240 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
245 public void createAaiAR_HttpFailed() {
246 ExecutionEntity mex = setupMock()
249 MockPutAllottedResource_500(CUST, SVC, INST, ARID)
251 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
253 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
258 public void createAaiAR_BpmnError() {
259 ExecutionEntity mex = setupMock()
262 when(mex.getVariable("URN_aai_endpoint")).thenThrow(new BpmnError("expected exception"))
264 MockPutAllottedResource(CUST, SVC, INST, ARID)
266 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
268 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
273 public void createAaiAR_Ex() {
274 ExecutionEntity mex = setupMock()
277 when(mex.getVariable("URN_aai_endpoint")).thenThrow(new RuntimeException("expected exception"))
279 MockPutAllottedResource(CUST, SVC, INST, ARID)
281 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
283 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
287 // ***** buildSDNCRequest *****
291 public void buildSDNCRequest() {
292 ExecutionEntity mex = setupMock()
293 initBuildSDNCRequest(mex)
295 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
297 String result = DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq")
299 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
300 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
301 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
302 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
303 assertTrue(result.indexOf("<service-instance-id>psii</") >= 0)
304 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
305 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
306 assertTrue(result.indexOf("<request-id>mri</") >= 0)
307 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
308 assertTrue(result.indexOf("<model-uuid/>") >= 0)
309 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
310 assertTrue(result.indexOf("<model-version/>") >= 0)
311 assertTrue(result.indexOf("<model-name/>") >= 0)
316 public void buildSDNCRequest_Ex() {
317 ExecutionEntity mex = setupMock()
318 initBuildSDNCRequest(mex)
320 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
322 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
324 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
328 // ***** preProcessSDNCAssign *****
332 public void preProcessSDNCAssign() {
333 ExecutionEntity mex = setupMock()
334 def map = setupMap(mex)
335 def data = initPreProcessSDNC(mex)
337 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
338 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
340 def req = map.get("sdncAssignRequest")
343 assertEquals(data, map.get("rollbackData"))
345 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
347 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
348 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
349 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
351 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
352 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
353 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
358 public void preProcessSDNCAssign_BpmnError() {
359 ExecutionEntity mex = setupMock()
360 initPreProcessSDNC(mex)
362 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
364 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
366 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
371 public void preProcessSDNCAssign_Ex() {
372 ExecutionEntity mex = setupMock()
373 initPreProcessSDNC(mex)
375 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
377 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
379 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
383 // ***** preProcessSDNCCreate *****
387 public void preProcessSDNCCreate() {
388 ExecutionEntity mex = setupMock()
389 def map = setupMap(mex)
390 def data = initPreProcessSDNC(mex)
392 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
393 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
395 def req = map.get("sdncCreateRequest")
398 assertEquals(data, map.get("rollbackData"))
400 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
402 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
403 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
404 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
406 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
407 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
408 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
414 public void preProcessSDNCCreate_BpmnError() {
415 ExecutionEntity mex = setupMock()
416 initPreProcessSDNC(mex)
418 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
420 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
422 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
427 public void preProcessSDNCCreate_Ex() {
428 ExecutionEntity mex = setupMock()
429 initPreProcessSDNC(mex)
431 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
433 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
435 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
439 // ***** preProcessSDNCActivate *****
443 public void preProcessSDNCActivate() {
444 ExecutionEntity mex = setupMock()
445 def map = setupMap(mex)
446 def data = initPreProcessSDNC(mex)
448 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
449 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
451 def req = map.get("sdncActivateRequest")
454 assertEquals(data, map.get("rollbackData"))
456 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
458 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
459 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
460 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
462 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
463 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
464 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
470 public void preProcessSDNCActivate_BpmnError() {
471 ExecutionEntity mex = setupMock()
472 initPreProcessSDNC(mex)
474 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
476 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
478 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
483 public void preProcessSDNCActivate_Ex() {
484 ExecutionEntity mex = setupMock()
485 initPreProcessSDNC(mex)
487 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
489 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
491 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
495 // ***** validateSDNCResp *****
499 public void validateSDNCResp() {
500 ExecutionEntity mex = setupMock()
501 def map = setupMap(mex)
502 def data = initValidateSDNCResp(mex)
503 def resp = initValidateSDNCResp_Resp()
505 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
507 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
509 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
511 verify(mex).getVariable("WorkflowException")
512 verify(mex).getVariable("SDNCA_SuccessIndicator")
513 verify(mex).getVariable("rollbackData")
515 assertEquals(data, map.get("rollbackData"))
517 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
523 public void validateSDNCResp_Get() {
524 ExecutionEntity mex = setupMock()
525 def data = initValidateSDNCResp(mex)
526 def resp = initValidateSDNCResp_Resp()
528 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
530 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
532 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
534 verify(mex).getVariable("WorkflowException")
535 verify(mex).getVariable("SDNCA_SuccessIndicator")
537 verify(mex, never()).getVariable("rollbackData")
542 public void validateSDNCResp_Unsuccessful() {
543 ExecutionEntity mex = setupMock()
544 initValidateSDNCResp(mex)
545 def resp = initValidateSDNCResp_Resp()
548 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(false)
550 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
552 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
557 public void validateSDNCResp_BpmnError() {
558 ExecutionEntity mex = setupMock()
559 initValidateSDNCResp(mex)
560 def resp = initValidateSDNCResp_Resp()
562 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
564 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
566 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
571 public void validateSDNCResp_Ex() {
572 ExecutionEntity mex = setupMock()
573 initValidateSDNCResp(mex)
574 def resp = initValidateSDNCResp_Resp()
576 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
578 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
580 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
584 // ***** preProcessSDNCGet *****
588 public void preProcessSDNCGet_FoundAR() {
589 ExecutionEntity mex = setupMock()
590 def map = setupMap(mex)
591 initPreProcessSDNCGet(mex)
593 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
594 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
596 String req = map.get("sdncGetRequest")
598 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
599 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
600 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
601 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
607 public void preProcessSDNCGet_NotFoundAR() {
608 ExecutionEntity mex = setupMock()
609 def map = setupMap(mex)
610 initPreProcessSDNCGet(mex)
612 when(mex.getVariable("foundActiveAR")).thenReturn(false)
614 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
615 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
617 String req = map.get("sdncGetRequest")
619 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
620 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
621 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
622 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
628 public void preProcessSDNCGet_Ex() {
629 ExecutionEntity mex = setupMock()
630 initPreProcessSDNCGet(mex)
632 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
634 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
636 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
640 // ***** updateAaiAROrchStatus *****
644 public void updateAaiAROrchStatus() {
645 MockPatchAllottedResource(CUST, SVC, INST, ARID)
647 ExecutionEntity mex = setupMock()
648 initUpdateAaiAROrchStatus(mex)
650 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
651 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
655 // ***** generateOutputs *****
659 public void generateOutputs() {
660 ExecutionEntity mex = setupMock()
661 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
663 when(mex.getVariable(DBGFLAG)).thenReturn("true")
664 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
666 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
667 DoCreateAllottedResourceTXC.generateOutputs(mex)
669 verify(mex).setVariable("allotedResourceName", "namefromrequest")
670 verify(mex).setVariable("vni", "my-vni")
671 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
672 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
678 public void generateOutputs_BadXml() {
679 ExecutionEntity mex = setupMock()
681 when(mex.getVariable(DBGFLAG)).thenReturn("true")
682 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
684 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
685 DoCreateAllottedResourceTXC.generateOutputs(mex)
687 verify(mex, never()).setVariable(anyString(), anyString())
693 public void generateOutputs_BpmnError() {
694 ExecutionEntity mex = setupMock()
696 when(mex.getVariable(DBGFLAG)).thenReturn("true")
697 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
699 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
701 DoCreateAllottedResourceTXC.generateOutputs(mex)
702 verify(mex, never()).setVariable(anyString(), anyString())
708 public void generateOutputs_Ex() {
709 ExecutionEntity mex = setupMock()
711 when(mex.getVariable(DBGFLAG)).thenReturn("true")
712 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
714 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
716 DoCreateAllottedResourceTXC.generateOutputs(mex)
717 verify(mex, never()).setVariable(anyString(), anyString())
722 // ***** preProcessRollback *****
726 public void preProcessRollback() {
727 ExecutionEntity mex = setupMock()
728 WorkflowException wfe = mock(WorkflowException.class)
730 when(mex.getVariable(DBGFLAG)).thenReturn("true")
731 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
733 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
734 DoCreateAllottedResourceTXC.preProcessRollback(mex)
736 verify(mex).setVariable("prevWorkflowException", wfe)
742 public void preProcessRollback_NotWFE() {
743 ExecutionEntity mex = setupMock()
745 when(mex.getVariable(DBGFLAG)).thenReturn("true")
746 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
748 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
749 DoCreateAllottedResourceTXC.preProcessRollback(mex)
751 // verify(mex, never()).setVariable("prevWorkflowException", any())
757 public void preProcessRollback_BpmnError() {
758 ExecutionEntity mex = setupMock()
760 when(mex.getVariable(DBGFLAG)).thenReturn("true")
761 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
763 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
765 DoCreateAllottedResourceTXC.preProcessRollback(mex)
771 public void preProcessRollback_Ex() {
772 ExecutionEntity mex = setupMock()
774 when(mex.getVariable(DBGFLAG)).thenReturn("true")
775 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
777 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
779 DoCreateAllottedResourceTXC.preProcessRollback(mex)
784 // ***** postProcessRollback *****
788 public void postProcessRollback() {
789 ExecutionEntity mex = setupMock()
790 WorkflowException wfe = mock(WorkflowException.class)
792 when(mex.getVariable(DBGFLAG)).thenReturn("true")
793 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
795 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
796 DoCreateAllottedResourceTXC.postProcessRollback(mex)
798 verify(mex).setVariable("WorkflowException", wfe)
799 verify(mex).setVariable("rollbackData", null)
805 public void postProcessRollback_NotWFE() {
806 ExecutionEntity mex = setupMock()
808 when(mex.getVariable(DBGFLAG)).thenReturn("true")
809 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
811 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
812 DoCreateAllottedResourceTXC.postProcessRollback(mex)
814 // verify(mex, never()).setVariable("WorkflowException", any())
815 verify(mex).setVariable("rollbackData", null)
821 public void postProcessRollback_BpmnError() {
822 ExecutionEntity mex = setupMock()
824 when(mex.getVariable(DBGFLAG)).thenReturn("true")
825 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
827 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
829 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
830 verify(mex, never()).setVariable("rollbackData", null)
836 public void postProcessRollback_Ex() {
837 ExecutionEntity mex = setupMock()
839 when(mex.getVariable(DBGFLAG)).thenReturn("true")
840 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
842 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
844 DoCreateAllottedResourceTXC.postProcessRollback(mex)
845 verify(mex, never()).setVariable("rollbackData", null)
849 private boolean checkMissingPreProcessRequest(String fieldnm) {
850 ExecutionEntity mex = setupMock()
853 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
855 when(mex.getVariable(fieldnm)).thenReturn("")
857 return doBpmnError( { _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
860 private void initPreProcess(ExecutionEntity mex) {
861 when(mex.getVariable(DBGFLAG)).thenReturn("true")
862 when(mex.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("sdncurn")
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("sdncCallbackUrl")).thenReturn("scu")
907 when(mex.getVariable("msoRequestId")).thenReturn("mri")
910 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
911 def data = new RollbackData()
913 when(mex.getVariable(DBGFLAG)).thenReturn("true")
914 when(mex.getVariable("rollbackData")).thenReturn(data)
919 private initPreProcessSDNCGet(ExecutionEntity mex) {
920 when(mex.getVariable(DBGFLAG)).thenReturn("true")
921 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
922 when(mex.getVariable("foundActiveAR")).thenReturn(true)
923 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
924 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
925 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
926 when(mex.getVariable("junitSleepMs")).thenReturn("5")
927 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
930 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
931 def data = new RollbackData()
933 when(mex.getVariable(DBGFLAG)).thenReturn("true")
934 when(mex.getVariable("prefix")).thenReturn(Prefix)
935 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
936 when(mex.getVariable("rollbackData")).thenReturn(data)
941 private String initValidateSDNCResp_Resp() {
942 return "<response-data><response-code>200</response-code></response-data>"
945 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
946 when(mex.getVariable(DBGFLAG)).thenReturn("true")
947 when(mex.getVariable("aaiARPath")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST+"/allotted-resources/allotted-resource/"+ARID)