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>psii</") >= 0)
305 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
306 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
307 assertTrue(result.indexOf("<request-id>mri</") >= 0)
308 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
309 assertTrue(result.indexOf("<model-uuid/>") >= 0)
310 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
311 assertTrue(result.indexOf("<model-version/>") >= 0)
312 assertTrue(result.indexOf("<model-name/>") >= 0)
317 public void buildSDNCRequest_Ex() {
318 ExecutionEntity mex = setupMock()
319 initBuildSDNCRequest(mex)
321 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
323 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
325 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
329 // ***** preProcessSDNCAssign *****
333 public void preProcessSDNCAssign() {
334 ExecutionEntity mex = setupMock()
335 def map = setupMap(mex)
336 def data = initPreProcessSDNC(mex)
338 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
339 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
341 def req = map.get("sdncAssignRequest")
344 assertEquals(data, map.get("rollbackData"))
346 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
348 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
349 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
350 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
352 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
353 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
354 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
359 public void preProcessSDNCAssign_BpmnError() {
360 ExecutionEntity mex = setupMock()
361 initPreProcessSDNC(mex)
363 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
365 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
367 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
372 public void preProcessSDNCAssign_Ex() {
373 ExecutionEntity mex = setupMock()
374 initPreProcessSDNC(mex)
376 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
378 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
380 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
384 // ***** preProcessSDNCCreate *****
388 public void preProcessSDNCCreate() {
389 ExecutionEntity mex = setupMock()
390 def map = setupMap(mex)
391 def data = initPreProcessSDNC(mex)
393 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
394 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
396 def req = map.get("sdncCreateRequest")
399 assertEquals(data, map.get("rollbackData"))
401 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
403 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
404 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
405 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
407 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
408 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
409 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
415 public void preProcessSDNCCreate_BpmnError() {
416 ExecutionEntity mex = setupMock()
417 initPreProcessSDNC(mex)
419 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
421 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
423 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
428 public void preProcessSDNCCreate_Ex() {
429 ExecutionEntity mex = setupMock()
430 initPreProcessSDNC(mex)
432 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
434 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
436 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
440 // ***** preProcessSDNCActivate *****
444 public void preProcessSDNCActivate() {
445 ExecutionEntity mex = setupMock()
446 def map = setupMap(mex)
447 def data = initPreProcessSDNC(mex)
449 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
450 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
452 def req = map.get("sdncActivateRequest")
455 assertEquals(data, map.get("rollbackData"))
457 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
459 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
460 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
461 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
463 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
464 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
465 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
471 public void preProcessSDNCActivate_BpmnError() {
472 ExecutionEntity mex = setupMock()
473 initPreProcessSDNC(mex)
475 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
477 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
479 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
484 public void preProcessSDNCActivate_Ex() {
485 ExecutionEntity mex = setupMock()
486 initPreProcessSDNC(mex)
488 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
490 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
492 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
496 // ***** validateSDNCResp *****
500 public void validateSDNCResp() {
501 ExecutionEntity mex = setupMock()
502 def map = setupMap(mex)
503 def data = initValidateSDNCResp(mex)
504 def resp = initValidateSDNCResp_Resp()
506 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
508 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
510 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
512 verify(mex).getVariable("WorkflowException")
513 verify(mex).getVariable("SDNCA_SuccessIndicator")
514 verify(mex).getVariable("rollbackData")
516 assertEquals(data, map.get("rollbackData"))
518 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
524 public void validateSDNCResp_Get() {
525 ExecutionEntity mex = setupMock()
526 def data = initValidateSDNCResp(mex)
527 def resp = initValidateSDNCResp_Resp()
529 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
531 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
533 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
535 verify(mex).getVariable("WorkflowException")
536 verify(mex).getVariable("SDNCA_SuccessIndicator")
538 verify(mex, never()).getVariable("rollbackData")
543 public void validateSDNCResp_Unsuccessful() {
544 ExecutionEntity mex = setupMock()
545 initValidateSDNCResp(mex)
546 def resp = initValidateSDNCResp_Resp()
549 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(false)
551 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
553 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
558 public void validateSDNCResp_BpmnError() {
559 ExecutionEntity mex = setupMock()
560 initValidateSDNCResp(mex)
561 def resp = initValidateSDNCResp_Resp()
563 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
565 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
567 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
572 public void validateSDNCResp_Ex() {
573 ExecutionEntity mex = setupMock()
574 initValidateSDNCResp(mex)
575 def resp = initValidateSDNCResp_Resp()
577 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
579 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
581 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
585 // ***** preProcessSDNCGet *****
589 public void preProcessSDNCGet_FoundAR() {
590 ExecutionEntity mex = setupMock()
591 def map = setupMap(mex)
592 initPreProcessSDNCGet(mex)
594 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
595 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
597 String req = map.get("sdncGetRequest")
599 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
600 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
601 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
602 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
608 public void preProcessSDNCGet_NotFoundAR() {
609 ExecutionEntity mex = setupMock()
610 def map = setupMap(mex)
611 initPreProcessSDNCGet(mex)
613 when(mex.getVariable("foundActiveAR")).thenReturn(false)
615 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
616 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
618 String req = map.get("sdncGetRequest")
620 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
621 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
622 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
623 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
629 public void preProcessSDNCGet_Ex() {
630 ExecutionEntity mex = setupMock()
631 initPreProcessSDNCGet(mex)
633 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
635 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
637 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
641 // ***** updateAaiAROrchStatus *****
645 public void updateAaiAROrchStatus() {
646 MockPatchAllottedResource(CUST, SVC, INST, ARID)
648 ExecutionEntity mex = setupMock()
649 initUpdateAaiAROrchStatus(mex)
651 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
652 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
656 // ***** generateOutputs *****
660 public void generateOutputs() {
661 ExecutionEntity mex = setupMock()
662 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
664 when(mex.getVariable(DBGFLAG)).thenReturn("true")
665 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
667 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
668 DoCreateAllottedResourceTXC.generateOutputs(mex)
670 verify(mex).setVariable("allotedResourceName", "namefromrequest")
671 verify(mex).setVariable("vni", "my-vni")
672 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
673 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
679 public void generateOutputs_BadXml() {
680 ExecutionEntity mex = setupMock()
682 when(mex.getVariable(DBGFLAG)).thenReturn("true")
683 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
685 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
686 DoCreateAllottedResourceTXC.generateOutputs(mex)
688 verify(mex, never()).setVariable(anyString(), anyString())
694 public void generateOutputs_BpmnError() {
695 ExecutionEntity mex = setupMock()
697 when(mex.getVariable(DBGFLAG)).thenReturn("true")
698 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
700 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
702 DoCreateAllottedResourceTXC.generateOutputs(mex)
703 verify(mex, never()).setVariable(anyString(), anyString())
709 public void generateOutputs_Ex() {
710 ExecutionEntity mex = setupMock()
712 when(mex.getVariable(DBGFLAG)).thenReturn("true")
713 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
715 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
717 DoCreateAllottedResourceTXC.generateOutputs(mex)
718 verify(mex, never()).setVariable(anyString(), anyString())
723 // ***** preProcessRollback *****
727 public void preProcessRollback() {
728 ExecutionEntity mex = setupMock()
729 WorkflowException wfe = mock(WorkflowException.class)
731 when(mex.getVariable(DBGFLAG)).thenReturn("true")
732 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
734 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
735 DoCreateAllottedResourceTXC.preProcessRollback(mex)
737 verify(mex).setVariable("prevWorkflowException", wfe)
743 public void preProcessRollback_NotWFE() {
744 ExecutionEntity mex = setupMock()
746 when(mex.getVariable(DBGFLAG)).thenReturn("true")
747 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
749 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
750 DoCreateAllottedResourceTXC.preProcessRollback(mex)
752 // verify(mex, never()).setVariable("prevWorkflowException", any())
758 public void preProcessRollback_BpmnError() {
759 ExecutionEntity mex = setupMock()
761 when(mex.getVariable(DBGFLAG)).thenReturn("true")
762 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
764 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
766 DoCreateAllottedResourceTXC.preProcessRollback(mex)
772 public void preProcessRollback_Ex() {
773 ExecutionEntity mex = setupMock()
775 when(mex.getVariable(DBGFLAG)).thenReturn("true")
776 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
778 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
780 DoCreateAllottedResourceTXC.preProcessRollback(mex)
785 // ***** postProcessRollback *****
789 public void postProcessRollback() {
790 ExecutionEntity mex = setupMock()
791 WorkflowException wfe = mock(WorkflowException.class)
793 when(mex.getVariable(DBGFLAG)).thenReturn("true")
794 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
796 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
797 DoCreateAllottedResourceTXC.postProcessRollback(mex)
799 verify(mex).setVariable("WorkflowException", wfe)
800 verify(mex).setVariable("rollbackData", null)
806 public void postProcessRollback_NotWFE() {
807 ExecutionEntity mex = setupMock()
809 when(mex.getVariable(DBGFLAG)).thenReturn("true")
810 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
812 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
813 DoCreateAllottedResourceTXC.postProcessRollback(mex)
815 // verify(mex, never()).setVariable("WorkflowException", any())
816 verify(mex).setVariable("rollbackData", null)
822 public void postProcessRollback_BpmnError() {
823 ExecutionEntity mex = setupMock()
825 when(mex.getVariable(DBGFLAG)).thenReturn("true")
826 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
828 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
830 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
831 verify(mex, never()).setVariable("rollbackData", null)
837 public void postProcessRollback_Ex() {
838 ExecutionEntity mex = setupMock()
840 when(mex.getVariable(DBGFLAG)).thenReturn("true")
841 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
843 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
845 DoCreateAllottedResourceTXC.postProcessRollback(mex)
846 verify(mex, never()).setVariable("rollbackData", null)
850 private boolean checkMissingPreProcessRequest(String fieldnm) {
851 ExecutionEntity mex = setupMock()
854 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
856 when(mex.getVariable(fieldnm)).thenReturn("")
858 return doBpmnError( { _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
861 private void initPreProcess(ExecutionEntity mex) {
862 when(mex.getVariable(DBGFLAG)).thenReturn("true")
863 when(mex.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("sdncurn")
864 when(mex.getVariable("URN_mso_workflow_sdnc_replication_delay")).thenReturn("sdncdelay")
865 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
866 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
867 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
868 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
869 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
870 when(mex.getVariable("allottedResourceType")).thenReturn("art")
873 private void initGetAaiAR(ExecutionEntity mex) {
874 when(mex.getVariable(DBGFLAG)).thenReturn("true")
875 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
876 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
877 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/getAR.xml"))
878 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
879 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
882 private initCreateAaiAr(ExecutionEntity mex) {
883 when(mex.getVariable("disableRollback")).thenReturn(45)
884 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
885 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
886 when(mex.getVariable(DBGFLAG)).thenReturn("true")
887 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
888 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
889 when(mex.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn(urnProps.get("mso.workflow.global.default.aai.namespace"))
890 when(mex.getVariable("PSI_resourceLink")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST)
891 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
892 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
893 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx+"/aai/v9/mycsi")
894 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
896 "modelInvariantUuid":"modelinvuuid",
897 "modelUuid":"modeluuid",
898 "modelCustomizationUuid":"modelcustuuid"
903 private initBuildSDNCRequest(ExecutionEntity mex) {
904 when(mex.getVariable(DBGFLAG)).thenReturn("true")
905 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
906 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
907 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
908 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
909 when(mex.getVariable("msoRequestId")).thenReturn("mri")
912 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
913 def data = new RollbackData()
915 when(mex.getVariable(DBGFLAG)).thenReturn("true")
916 when(mex.getVariable("rollbackData")).thenReturn(data)
921 private initPreProcessSDNCGet(ExecutionEntity mex) {
922 when(mex.getVariable(DBGFLAG)).thenReturn("true")
923 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
924 when(mex.getVariable("foundActiveAR")).thenReturn(true)
925 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
926 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
927 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
928 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
931 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
932 def data = new RollbackData()
934 when(mex.getVariable(DBGFLAG)).thenReturn("true")
935 when(mex.getVariable("prefix")).thenReturn(Prefix)
936 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
937 when(mex.getVariable("rollbackData")).thenReturn(data)
942 private String initValidateSDNCResp_Resp() {
943 return "<response-data><response-code>200</response-code></response-data>"
946 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
947 when(mex.getVariable(DBGFLAG)).thenReturn("true")
948 when(mex.getVariable("aaiARPath")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST+"/allotted-resources/allotted-resource/"+ARID)