2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (c) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.so.bpmn.vcpe.scripts
25 import static org.junit.Assert.*
26 import static org.mockito.Mockito.*
27 import static org.onap.so.bpmn.mock.StubResponseAAI.MockGetAllottedResource
28 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPatchAllottedResource
29 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource
30 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource_500
31 import javax.ws.rs.core.UriBuilder
32 import org.camunda.bpm.engine.delegate.BpmnError
33 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
35 import org.mockito.MockitoAnnotations
36 import org.onap.aaiclient.client.aai.AAIResourcesClient
37 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory
38 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder
39 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder.Types
40 import org.onap.so.bpmn.core.RollbackData
41 import org.onap.so.bpmn.core.UrnPropertiesReader
42 import org.onap.so.bpmn.core.WorkflowException
43 import org.onap.so.bpmn.mock.FileUtil
44 import com.github.tomakehurst.wiremock.junit.WireMockRule
46 class DoCreateAllottedResourceTXCTest extends GroovyTestBase {
49 public WireMockRule wireMockRule = new WireMockRule(PORT)
51 String Prefix = "DCARTXC_"
54 public static void setUpBeforeClass() {
55 aaiUriPfx = UrnPropertiesReader.getVariable("aai.endpoint")
60 MockitoAnnotations.initMocks(this)
63 public DoCreateAllottedResourceTXCTest() {
64 super("DoCreateAllottedResourceTXC")
67 // ***** preProcessRequest *****
69 public void preProcessRequest() {
70 ExecutionEntity mex = setupMock()
73 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
74 DoCreateAllottedResourceTXC.preProcessRequest(mex)
76 verify(mex).setVariable("prefix", Prefix)
78 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdncadapter.callback"))
79 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdnc.replication.delay"))
80 assertTrue(checkMissingPreProcessRequest("serviceInstanceId"))
81 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
82 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
83 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
84 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
85 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
88 // ***** getAaiAR *****
92 public void getAaiAR() {
93 MockGetAllottedResource(wireMockRule, CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
95 ExecutionEntity mex = setupMock()
98 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
99 DoCreateAllottedResourceTXC.getAaiAR(mex)
101 verify(mex).setVariable("foundActiveAR", true)
106 public void getAaiAR_Duplicate() {
107 MockGetAllottedResource(wireMockRule, CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
109 ExecutionEntity mex = setupMock()
113 when(mex.getVariable("failExists")).thenReturn("true")
115 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
117 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
121 public void getAaiAR_NotActive() {
122 MockGetAllottedResource(wireMockRule, CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
124 ExecutionEntity mex = setupMock()
128 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
130 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
132 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.getAaiAR(mex) }))
137 public void getAaiAR_NoStatus() {
138 MockGetAllottedResource(wireMockRule, CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceTXC/getArTxc.xml")
140 ExecutionEntity mex = setupMock()
143 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
145 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
146 DoCreateAllottedResourceTXC.getAaiAR(mex)
148 verify(mex, never()).setVariable("foundActiveAR", true)
151 // ***** createAaiAR *****
154 public void createAaiAR() {
155 ExecutionEntity mex = setupMock()
157 when(mex.getVariable("PSI_resourceLink")).thenReturn(AAIUriFactory.createResourceFromExistingURI(Types.SERVICE_INSTANCE, UriBuilder.fromPath("/aai/v9/business/customers/customer/" + CUST + "/service-subscriptions/service-subscription/" + SVC + "/service-instances/service-instance/" + INST).build()))
158 when(mex.getVariable("CSI_resourceLink")).thenReturn("/aai/v9/business/customers/customer/" + CUST + "/service-subscriptions/service-subscription/" + SVC + "/service-instances/service-instance/" + INST)
159 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("{\n" +
160 " \"modelInvariantUuid\":\"modelInvariantUuid\",\n" +
161 " \"modelUuid\" : \"modelUuid\"\n" +
163 AAIResourcesClient client = mock(AAIResourcesClient.class)
164 DoCreateAllottedResourceTXC doCreateAllottedResourceTXC = spy(DoCreateAllottedResourceTXC.class)
165 when(doCreateAllottedResourceTXC.getAAIClient()).thenReturn(client)
166 doCreateAllottedResourceTXC.createAaiAR(mex)
171 public void createAaiAR_MissingPsiLink() {
172 ExecutionEntity mex = setupMock()
175 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
177 MockPutAllottedResource(wireMockRule, CUST, SVC, INST, ARID)
179 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
181 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
185 public void createAaiAR_HttpFailed() {
186 ExecutionEntity mex = setupMock()
189 MockPutAllottedResource_500(wireMockRule, CUST, SVC, INST, ARID)
191 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
193 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
197 public void createAaiAR_BpmnError() {
198 ExecutionEntity mex = setupMock()
201 when(mex.getVariable("aai.endpoint")).thenThrow(new BpmnError("expected exception"))
203 MockPutAllottedResource(wireMockRule, CUST, SVC, INST, ARID)
205 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
207 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
211 public void createAaiAR_Ex() {
212 ExecutionEntity mex = setupMock()
215 when(mex.getVariable("aai.endpoint")).thenThrow(new RuntimeException("expected exception"))
217 MockPutAllottedResource(wireMockRule, CUST, SVC, INST, ARID)
219 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
221 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.createAaiAR(mex) }))
224 // ***** buildSDNCRequest *****
227 public void buildSDNCRequest() {
228 ExecutionEntity mex = setupMock()
229 initBuildSDNCRequest(mex)
231 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
233 String result = DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq")
235 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
236 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
237 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
238 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
239 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
240 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
241 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
242 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
243 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
244 assertTrue(result.indexOf("<request-id>mri</") >= 0)
245 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
246 assertTrue(result.indexOf("<model-uuid/>") >= 0)
247 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
248 assertTrue(result.indexOf("<model-version/>") >= 0)
249 assertTrue(result.indexOf("<model-name/>") >= 0)
253 public void buildSDNCRequest_Ex() {
254 ExecutionEntity mex = setupMock()
255 initBuildSDNCRequest(mex)
257 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
259 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
261 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.buildSDNCRequest(mex, "myact", "myreq") }))
264 // ***** preProcessSDNCAssign *****
267 public void preProcessSDNCAssign() {
268 ExecutionEntity mex = setupMock()
269 def map = setupMap(mex)
270 def data = initPreProcessSDNC(mex)
272 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
273 DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex)
275 def req = map.get("sdncAssignRequest")
278 assertEquals(data, map.get("rollbackData"))
280 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
282 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
283 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
284 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
286 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
287 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
288 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
292 public void preProcessSDNCAssign_BpmnError() {
293 ExecutionEntity mex = setupMock()
294 initPreProcessSDNC(mex)
296 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
298 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
300 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
304 public void preProcessSDNCAssign_Ex() {
305 ExecutionEntity mex = setupMock()
306 initPreProcessSDNC(mex)
308 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
310 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
312 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCAssign(mex) }))
315 // ***** preProcessSDNCCreate *****
318 public void preProcessSDNCCreate() {
319 ExecutionEntity mex = setupMock()
320 def map = setupMap(mex)
321 def data = initPreProcessSDNC(mex)
323 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
324 DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex)
326 def req = map.get("sdncCreateRequest")
329 assertEquals(data, map.get("rollbackData"))
331 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
333 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
334 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
335 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
337 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
338 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
339 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
344 public void preProcessSDNCCreate_BpmnError() {
345 ExecutionEntity mex = setupMock()
346 initPreProcessSDNC(mex)
348 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
350 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
352 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
356 public void preProcessSDNCCreate_Ex() {
357 ExecutionEntity mex = setupMock()
358 initPreProcessSDNC(mex)
360 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
362 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
364 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCCreate(mex) }))
367 // ***** preProcessSDNCActivate *****
370 public void preProcessSDNCActivate() {
371 ExecutionEntity mex = setupMock()
372 def map = setupMap(mex)
373 def data = initPreProcessSDNC(mex)
375 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
376 DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex)
378 def req = map.get("sdncActivateRequest")
381 assertEquals(data, map.get("rollbackData"))
383 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
385 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
386 assertTrue(req.indexOf("<request-action>CreateTunnelXConnInstance</") >= 0)
387 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
389 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
390 assertTrue(rbreq.indexOf("<request-action>DeleteTunnelXConnInstance</") >= 0)
391 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
396 public void preProcessSDNCActivate_BpmnError() {
397 ExecutionEntity mex = setupMock()
398 initPreProcessSDNC(mex)
400 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
402 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
404 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
408 public void preProcessSDNCActivate_Ex() {
409 ExecutionEntity mex = setupMock()
410 initPreProcessSDNC(mex)
412 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
414 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
416 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCActivate(mex) }))
419 // ***** validateSDNCResp *****
422 public void validateSDNCResp() {
423 ExecutionEntity mex = setupMock()
424 def map = setupMap(mex)
425 def data = initValidateSDNCResp(mex)
426 def resp = initValidateSDNCResp_Resp()
428 when(mex.getVariable(Prefix + "sdncResponseSuccess")).thenReturn(true)
430 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
432 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create")
434 verify(mex).getVariable("WorkflowException")
435 verify(mex).getVariable("SDNCA_SuccessIndicator")
436 verify(mex).getVariable("rollbackData")
438 assertEquals(data, map.get("rollbackData"))
440 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
445 public void validateSDNCResp_Get() {
446 ExecutionEntity mex = setupMock()
447 initValidateSDNCResp(mex)
448 def resp = initValidateSDNCResp_Resp()
450 when(mex.getVariable(Prefix + "sdncResponseSuccess")).thenReturn(true)
452 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
454 DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "get")
456 verify(mex).getVariable("WorkflowException")
457 verify(mex).getVariable("SDNCA_SuccessIndicator")
459 verify(mex, never()).getVariable("rollbackData")
463 public void validateSDNCResp_Unsuccessful() {
464 ExecutionEntity mex = setupMock()
465 initValidateSDNCResp(mex)
466 def resp = initValidateSDNCResp_Resp()
469 when(mex.getVariable(Prefix + "sdncResponseSuccess")).thenReturn(false)
471 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
473 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
477 public void validateSDNCResp_BpmnError() {
478 ExecutionEntity mex = setupMock()
479 initValidateSDNCResp(mex)
480 def resp = initValidateSDNCResp_Resp()
482 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
484 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
486 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
490 public void validateSDNCResp_Ex() {
491 ExecutionEntity mex = setupMock()
492 initValidateSDNCResp(mex)
493 def resp = initValidateSDNCResp_Resp()
495 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
497 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
499 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.validateSDNCResp(mex, resp, "create") }))
502 // ***** preProcessSDNCGet *****
505 public void preProcessSDNCGet_FoundAR() {
506 ExecutionEntity mex = setupMock()
507 def map = setupMap(mex)
508 initPreProcessSDNCGet(mex)
510 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
511 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
513 String req = map.get("sdncGetRequest")
515 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
516 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
517 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
518 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
523 public void preProcessSDNCGet_NotFoundAR() {
524 ExecutionEntity mex = setupMock()
525 def map = setupMap(mex)
526 initPreProcessSDNCGet(mex)
528 when(mex.getVariable("foundActiveAR")).thenReturn(false)
530 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
531 DoCreateAllottedResourceTXC.preProcessSDNCGet(mex)
533 String req = map.get("sdncGetRequest")
535 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
536 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
537 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
538 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
543 public void preProcessSDNCGet_Ex() {
544 ExecutionEntity mex = setupMock()
545 initPreProcessSDNCGet(mex)
547 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
549 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
551 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessSDNCGet(mex) }))
554 // ***** updateAaiAROrchStatus *****
558 public void updateAaiAROrchStatus() {
559 MockPatchAllottedResource(wireMockRule, CUST, SVC, INST, ARID)
561 ExecutionEntity mex = setupMock()
562 initUpdateAaiAROrchStatus(mex)
564 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
565 DoCreateAllottedResourceTXC.updateAaiAROrchStatus(mex, "success")
568 // ***** generateOutputs *****
571 public void generateOutputs() {
572 ExecutionEntity mex = setupMock()
573 def txctop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/SDNCTopologyQueryCallback.xml")
575 when(mex.getVariable(DBGFLAG)).thenReturn("true")
576 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(txctop)
578 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
579 DoCreateAllottedResourceTXC.generateOutputs(mex)
581 verify(mex).setVariable("allotedResourceName", "namefromrequest")
582 verify(mex).setVariable("vni", "my-vni")
583 verify(mex).setVariable("vgmuxBearerIP", "my-bearer-ip")
584 verify(mex).setVariable("vgmuxLanIP", "my-lan-ip")
589 public void generateOutputs_BadXml() {
590 ExecutionEntity mex = setupMock()
592 when(mex.getVariable(DBGFLAG)).thenReturn("true")
593 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
595 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
596 DoCreateAllottedResourceTXC.generateOutputs(mex)
598 verify(mex, never()).setVariable(anyString(), anyString())
603 public void generateOutputs_BpmnError() {
604 ExecutionEntity mex = setupMock()
606 when(mex.getVariable(DBGFLAG)).thenReturn("true")
607 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
609 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
611 DoCreateAllottedResourceTXC.generateOutputs(mex)
612 verify(mex, never()).setVariable(anyString(), anyString())
617 public void generateOutputs_Ex() {
618 ExecutionEntity mex = setupMock()
620 when(mex.getVariable(DBGFLAG)).thenReturn("true")
621 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
623 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
625 DoCreateAllottedResourceTXC.generateOutputs(mex)
626 verify(mex, never()).setVariable(anyString(), anyString())
630 // ***** preProcessRollback *****
633 public void preProcessRollback() {
634 ExecutionEntity mex = setupMock()
635 WorkflowException wfe = mock(WorkflowException.class)
637 when(mex.getVariable(DBGFLAG)).thenReturn("true")
638 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
640 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
641 DoCreateAllottedResourceTXC.preProcessRollback(mex)
643 verify(mex).setVariable("prevWorkflowException", wfe)
648 public void preProcessRollback_NotWFE() {
649 ExecutionEntity mex = setupMock()
651 when(mex.getVariable(DBGFLAG)).thenReturn("true")
652 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
654 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
655 DoCreateAllottedResourceTXC.preProcessRollback(mex)
657 verify(mex, never()).setVariable(eq("prevWorkflowException"), any())
662 public void preProcessRollback_BpmnError() {
663 ExecutionEntity mex = setupMock()
665 when(mex.getVariable(DBGFLAG)).thenReturn("true")
666 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
668 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
670 DoCreateAllottedResourceTXC.preProcessRollback(mex)
675 public void preProcessRollback_Ex() {
676 ExecutionEntity mex = setupMock()
678 when(mex.getVariable(DBGFLAG)).thenReturn("true")
679 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
681 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
683 DoCreateAllottedResourceTXC.preProcessRollback(mex)
687 // ***** postProcessRollback *****
690 public void postProcessRollback() {
691 ExecutionEntity mex = setupMock()
692 WorkflowException wfe = mock(WorkflowException.class)
694 when(mex.getVariable(DBGFLAG)).thenReturn("true")
695 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
697 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
698 DoCreateAllottedResourceTXC.postProcessRollback(mex)
700 verify(mex).setVariable("WorkflowException", wfe)
701 verify(mex).setVariable("rollbackData", null)
706 public void postProcessRollback_NotWFE() {
707 ExecutionEntity mex = setupMock()
709 when(mex.getVariable(DBGFLAG)).thenReturn("true")
710 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
712 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
713 DoCreateAllottedResourceTXC.postProcessRollback(mex)
715 verify(mex, never()).setVariable(eq("WorkflowException"), any())
716 verify(mex).setVariable("rollbackData", null)
721 public void postProcessRollback_BpmnError() {
722 ExecutionEntity mex = setupMock()
724 when(mex.getVariable(DBGFLAG)).thenReturn("true")
725 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
727 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
729 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceTXC.postProcessRollback(mex) }))
730 verify(mex, never()).setVariable("rollbackData", null)
735 public void postProcessRollback_Ex() {
736 ExecutionEntity mex = setupMock()
738 when(mex.getVariable(DBGFLAG)).thenReturn("true")
739 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
741 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
743 DoCreateAllottedResourceTXC.postProcessRollback(mex)
744 verify(mex, never()).setVariable("rollbackData", null)
748 private boolean checkMissingPreProcessRequest(String fieldnm) {
749 ExecutionEntity mex = setupMock()
752 DoCreateAllottedResourceTXC DoCreateAllottedResourceTXC = new DoCreateAllottedResourceTXC()
754 when(mex.getVariable(fieldnm)).thenReturn("")
756 return doBpmnError({ _ -> DoCreateAllottedResourceTXC.preProcessRequest(mex) })
759 private void initPreProcess(ExecutionEntity mex) {
760 when(mex.getVariable(DBGFLAG)).thenReturn("true")
761 when(mex.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("sdncurn")
762 when(mex.getVariable("mso.workflow.sdnc.replication.delay")).thenReturn("sdncdelay")
763 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
764 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
765 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
766 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
767 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
768 when(mex.getVariable("allottedResourceType")).thenReturn("art")
771 private void initGetAaiAR(ExecutionEntity mex) {
772 when(mex.getVariable(DBGFLAG)).thenReturn("true")
773 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
774 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
775 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceTXC/getAR.xml"))
776 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
777 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
780 private initCreateAaiAr(ExecutionEntity mex) {
781 when(mex.getVariable("disableRollback")).thenReturn(45)
782 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
783 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
784 when(mex.getVariable(DBGFLAG)).thenReturn("true")
785 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
786 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
787 when(mex.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn(UrnPropertiesReader.getVariable("mso.workflow.global.default.aai.namespace"))
788 when(mex.getVariable("PSI_resourceLink")).thenReturn(AAIUriFactory.createResourceFromExistingURI(Types.SERVICE_INSTANCE, UriBuilder.fromPath("/business/customers/customer/" + CUST + "/service-subscriptions/service-subscription/" + SVC + "/service-instances/service-instance/" + INST).build()))
789 when(mex.getVariable("allottedResourceType")).thenReturn("TXCt")
790 when(mex.getVariable("allottedResourceRole")).thenReturn("TXCr")
791 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx + "/aai/v9/mycsi")
792 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
794 "modelInvariantUuid":"modelinvuuid",
795 "modelUuid":"modeluuid",
796 "modelCustomizationUuid":"modelcustuuid"
801 private initBuildSDNCRequest(ExecutionEntity mex) {
802 when(mex.getVariable(DBGFLAG)).thenReturn("true")
803 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
804 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
805 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
806 when(mex.getVariable("subscriptionServiceType")).thenReturn("sst")
807 when(mex.getVariable("globalCustomerId")).thenReturn("gci")
808 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
809 when(mex.getVariable("msoRequestId")).thenReturn("mri")
812 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
813 def data = new RollbackData()
815 when(mex.getVariable(DBGFLAG)).thenReturn("true")
816 when(mex.getVariable("rollbackData")).thenReturn(data)
821 private initPreProcessSDNCGet(ExecutionEntity mex) {
822 when(mex.getVariable(DBGFLAG)).thenReturn("true")
823 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
824 when(mex.getVariable("foundActiveAR")).thenReturn(true)
825 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
826 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
827 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
828 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
831 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
832 def data = new RollbackData()
834 when(mex.getVariable(DBGFLAG)).thenReturn("true")
835 when(mex.getVariable("prefix")).thenReturn(Prefix)
836 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
837 when(mex.getVariable("rollbackData")).thenReturn(data)
842 private String initValidateSDNCResp_Resp() {
843 return "<response-data><response-code>200</response-code></response-data>"
846 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
847 when(mex.getVariable(DBGFLAG)).thenReturn("true")
848 when(mex.getVariable("aaiARPath")).thenReturn("/business/customers/customer/" + CUST + "/service-subscriptions/service-subscription/" + SVC + "/service-instances/service-instance/" + INST + "/allotted-resources/allotted-resource/" + ARID)