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
40 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse
41 import static com.github.tomakehurst.wiremock.client.WireMock.put
42 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor
43 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching
44 import static org.junit.Assert.*;
45 import static org.mockito.Mockito.*
46 import static org.onap.so.bpmn.mock.StubResponseAAI.MockGetAllottedResource
47 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPatchAllottedResource
48 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource
49 import static org.onap.so.bpmn.mock.StubResponseAAI.MockPutAllottedResource_500
51 import org.onap.so.bpmn.core.RollbackData
52 import org.onap.so.bpmn.vcpe.scripts.MapSetter
54 import com.github.tomakehurst.wiremock.junit.WireMockRule
56 class DoCreateAllottedResourceBRGTest extends GroovyTestBase {
59 public WireMockRule wireMockRule = new WireMockRule(PORT)
61 String Prefix = "DCARBRG_"
64 public static void setUpBeforeClass() {
65 super.setUpBeforeClass()
71 MockitoAnnotations.initMocks(this)
74 public DoCreateAllottedResourceBRGTest() {
75 super("DoCreateAllottedResourceBRG")
79 // ***** preProcessRequest *****
83 public void preProcessRequest() {
84 ExecutionEntity mex = setupMock()
87 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
88 DoCreateAllottedResourceBRG.preProcessRequest(mex)
90 //verify(mex).getVariable(DBGFLAG)
91 verify(mex).setVariable("prefix", Prefix)
93 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdncadapter.callback"))
94 assertTrue(checkMissingPreProcessRequest("mso.workflow.sdnc.replication.delay"))
95 assertTrue(checkMissingPreProcessRequest("serviceInstanceId"))
96 assertTrue(checkMissingPreProcessRequest("parentServiceInstanceId"))
97 assertTrue(checkMissingPreProcessRequest("allottedResourceModelInfo"))
98 assertTrue(checkMissingPreProcessRequest("vni"))
99 assertTrue(checkMissingPreProcessRequest("vgmuxBearerIP"))
100 assertTrue(checkMissingPreProcessRequest("brgWanMacAddress"))
101 assertTrue(checkMissingPreProcessRequest("allottedResourceRole"))
102 assertTrue(checkMissingPreProcessRequest("allottedResourceType"))
106 // ***** getAaiAR *****
110 public void getAaiAR() {
111 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceBRG/getArBrg.xml")
113 ExecutionEntity mex = setupMock()
116 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
117 DoCreateAllottedResourceBRG.getAaiAR(mex)
119 verify(mex).setVariable("foundActiveAR", true)
124 public void getAaiAR_Duplicate() {
125 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceBRG/getArBrg.xml")
127 ExecutionEntity mex = setupMock()
131 when(mex.getVariable("failExists")).thenReturn("true")
133 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
135 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceBRG.getAaiAR(mex) }))
140 public void getAaiAR_NotActive() {
141 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceBRG/getArBrg.xml")
143 ExecutionEntity mex = setupMock()
147 when(mex.getVariable("aaiAROrchStatus")).thenReturn("not-active")
149 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
151 assertTrue(doBpmnError( { _ -> DoCreateAllottedResourceBRG.getAaiAR(mex) }))
156 public void getAaiAR_NoStatus() {
157 MockGetAllottedResource(CUST, SVC, INST, ARID, "VCPE/DoCreateAllottedResourceBRG/getArBrg.xml")
159 ExecutionEntity mex = setupMock()
162 when(mex.getVariable("aaiAROrchStatus")).thenReturn(null)
164 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
165 DoCreateAllottedResourceBRG.getAaiAR(mex)
167 verify(mex, never()).setVariable("foundActiveAR", true)
171 // ***** createAaiAR *****
175 public void createAaiAR() {
176 ExecutionEntity mex = setupMock()
177 def map = setupMap(mex)
180 MockPutAllottedResource(CUST, SVC, INST, ARID)
182 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
183 DoCreateAllottedResourceBRG.createAaiAR(mex)
185 def data = map.get("rollbackData")
187 assertTrue(data instanceof RollbackData)
189 assertEquals("45", data.get(Prefix, "disableRollback"))
190 assertEquals("true", data.get(Prefix, "rollbackAAI"))
191 assertEquals(ARID, data.get(Prefix, "allottedResourceId"))
192 assertEquals("sii", data.get(Prefix, "serviceInstanceId"))
193 assertEquals("psii", data.get(Prefix, "parentServiceInstanceId"))
194 assertEquals(mex.getVariable("PSI_resourceLink")+"/allotted-resources/allotted-resource/"+ARID, data.get(Prefix, "aaiARPath"))
199 public void createAaiAR_NoArid_NoModelUuids() {
200 ExecutionEntity mex = setupMock()
201 def map = setupMap(mex)
204 // no allottedResourceId - will be generated
206 when(mex.getVariable("allottedResourceId")).thenReturn(null)
209 .stubFor(put(urlMatching("/aai/.*/allotted-resource/.*"))
210 .willReturn(aResponse()
213 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
214 DoCreateAllottedResourceBRG.createAaiAR(mex)
216 def arid = map.get("allottedResourceId")
218 assertFalse(arid.isEmpty())
220 def data = map.get("rollbackData")
222 assertTrue(data instanceof RollbackData)
224 assertEquals(arid, data.get(Prefix, "allottedResourceId"))
229 public void createAaiAR_MissingPsiLink() {
230 ExecutionEntity mex = setupMock()
233 when(mex.getVariable("PSI_resourceLink")).thenReturn(null)
235 MockPutAllottedResource(CUST, SVC, INST, ARID)
237 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
239 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.createAaiAR(mex) }))
244 public void createAaiAR_HttpFailed() {
245 ExecutionEntity mex = setupMock()
248 MockPutAllottedResource_500(CUST, SVC, INST, ARID)
250 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
252 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.createAaiAR(mex) }))
257 public void createAaiAR_BpmnError() {
258 ExecutionEntity mex = setupMock()
261 when(mex.getVariable("aai.endpoint")).thenThrow(new BpmnError("expected exception"))
263 MockPutAllottedResource(CUST, SVC, INST, ARID)
265 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
267 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.createAaiAR(mex) }))
272 public void createAaiAR_Ex() {
273 ExecutionEntity mex = setupMock()
276 when(mex.getVariable("aai.endpoint")).thenThrow(new RuntimeException("expected exception"))
278 MockPutAllottedResource(CUST, SVC, INST, ARID)
280 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
282 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.createAaiAR(mex) }))
286 // ***** buildSDNCRequest *****
290 public void buildSDNCRequest() {
291 ExecutionEntity mex = setupMock()
292 initBuildSDNCRequest(mex)
294 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
296 String result = DoCreateAllottedResourceBRG.buildSDNCRequest(mex, "myact", "myreq")
298 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
299 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
300 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
301 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
302 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
303 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
304 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
305 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
306 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
307 assertTrue(result.indexOf("<request-id>mri</") >= 0)
308 assertTrue(result.indexOf("<brg-wan-mac-address>bwma</") >= 0)
309 assertTrue(result.indexOf("<vni>myvni</") >= 0)
310 assertTrue(result.indexOf("<vgmux-bearer-ip>vbi</") >= 0)
311 assertTrue(result.indexOf("<model-invariant-uuid>miu</") >= 0)
312 assertTrue(result.indexOf("<model-uuid>mu</") >= 0)
313 assertTrue(result.indexOf("<model-customization-uuid>mcu</") >= 0)
314 assertTrue(result.indexOf("<model-version>mv</") >= 0)
315 assertTrue(result.indexOf("<model-name>mn</") >= 0)
320 public void buildSDNCRequest_EmptyModelInfo() {
321 ExecutionEntity mex = setupMock()
322 initBuildSDNCRequest(mex)
324 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("{}")
326 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
328 String result = DoCreateAllottedResourceBRG.buildSDNCRequest(mex, "myact", "myreq")
330 assertTrue(result.indexOf("<sdncadapter:RequestId>myreq</") >= 0)
331 assertTrue(result.indexOf("<sdncadapter:SvcAction>myact</") >= 0)
332 assertTrue(result.indexOf("<allotted-resource-id>ari</") >= 0)
333 assertTrue(result.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
334 assertTrue(result.indexOf("<service-instance-id>sii</") >= 0)
335 assertTrue(result.indexOf("<parent-service-instance-id>psii</") >= 0)
336 assertTrue(result.indexOf("<subscription-service-type>sst</") >= 0)
337 assertTrue(result.indexOf("<global-customer-id>gci</") >= 0)
338 assertTrue(result.indexOf("<sdncadapter:CallbackUrl>scu</") >= 0)
339 assertTrue(result.indexOf("<request-id>mri</") >= 0)
340 assertTrue(result.indexOf("<brg-wan-mac-address>bwma</") >= 0)
341 assertTrue(result.indexOf("<vni>myvni</") >= 0)
342 assertTrue(result.indexOf("<vgmux-bearer-ip>vbi</") >= 0)
343 assertTrue(result.indexOf("<model-invariant-uuid/>") >= 0)
344 assertTrue(result.indexOf("<model-uuid/>") >= 0)
345 assertTrue(result.indexOf("<model-customization-uuid/>") >= 0)
346 assertTrue(result.indexOf("<model-version/>") >= 0)
347 assertTrue(result.indexOf("<model-name/>") >= 0)
352 public void buildSDNCRequest_Ex() {
353 ExecutionEntity mex = setupMock()
354 initBuildSDNCRequest(mex)
356 when(mex.getVariable("allottedResourceId")).thenThrow(new RuntimeException("expected exception"))
358 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
360 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.buildSDNCRequest(mex, "myact", "myreq") }))
364 // ***** preProcessSDNCAssign *****
368 public void preProcessSDNCAssign() {
369 ExecutionEntity mex = setupMock()
370 def map = setupMap(mex)
371 def data = initPreProcessSDNC(mex)
373 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
374 DoCreateAllottedResourceBRG.preProcessSDNCAssign(mex)
376 def req = map.get("sdncAssignRequest")
379 assertEquals(data, map.get("rollbackData"))
381 def rbreq = data.get(Prefix, "sdncAssignRollbackReq")
383 assertTrue(req.indexOf("<sdncadapter:SvcAction>assign</") >= 0)
384 assertTrue(req.indexOf("<request-action>CreateBRGInstance</") >= 0)
385 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
387 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>unassign</") >= 0)
388 assertTrue(rbreq.indexOf("<request-action>DeleteBRGInstance</") >= 0)
389 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
394 public void preProcessSDNCAssign_BpmnError() {
395 ExecutionEntity mex = setupMock()
396 initPreProcessSDNC(mex)
398 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
400 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
402 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.preProcessSDNCAssign(mex) }))
407 public void preProcessSDNCAssign_Ex() {
408 ExecutionEntity mex = setupMock()
409 initPreProcessSDNC(mex)
411 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
413 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
415 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.preProcessSDNCAssign(mex) }))
419 // ***** preProcessSDNCCreate *****
423 public void preProcessSDNCCreate() {
424 ExecutionEntity mex = setupMock()
425 def map = setupMap(mex)
426 def data = initPreProcessSDNC(mex)
428 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
429 DoCreateAllottedResourceBRG.preProcessSDNCCreate(mex)
431 def req = map.get("sdncCreateRequest")
434 assertEquals(data, map.get("rollbackData"))
436 def rbreq = data.get(Prefix, "sdncCreateRollbackReq")
438 assertTrue(req.indexOf("<sdncadapter:SvcAction>create</") >= 0)
439 assertTrue(req.indexOf("<request-action>CreateBRGInstance</") >= 0)
440 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
442 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>delete</") >= 0)
443 assertTrue(rbreq.indexOf("<request-action>DeleteBRGInstance</") >= 0)
444 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
450 public void preProcessSDNCCreate_BpmnError() {
451 ExecutionEntity mex = setupMock()
452 initPreProcessSDNC(mex)
454 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
456 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
458 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.preProcessSDNCCreate(mex) }))
463 public void preProcessSDNCCreate_Ex() {
464 ExecutionEntity mex = setupMock()
465 initPreProcessSDNC(mex)
467 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
469 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
471 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.preProcessSDNCCreate(mex) }))
475 // ***** preProcessSDNCActivate *****
479 public void preProcessSDNCActivate() {
480 ExecutionEntity mex = setupMock()
481 def map = setupMap(mex)
482 def data = initPreProcessSDNC(mex)
484 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
485 DoCreateAllottedResourceBRG.preProcessSDNCActivate(mex)
487 def req = map.get("sdncActivateRequest")
490 assertEquals(data, map.get("rollbackData"))
492 def rbreq = data.get(Prefix, "sdncActivateRollbackReq")
494 assertTrue(req.indexOf("<sdncadapter:SvcAction>activate</") >= 0)
495 assertTrue(req.indexOf("<request-action>CreateBRGInstance</") >= 0)
496 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
498 assertTrue(rbreq.indexOf("<sdncadapter:SvcAction>deactivate</") >= 0)
499 assertTrue(rbreq.indexOf("<request-action>DeleteBRGInstance</") >= 0)
500 assertTrue(rbreq.indexOf("<sdncadapter:RequestId>") >= 0)
506 public void preProcessSDNCActivate_BpmnError() {
507 ExecutionEntity mex = setupMock()
508 initPreProcessSDNC(mex)
510 when(mex.getVariable("rollbackData")).thenThrow(new BpmnError("expected exception"))
512 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
514 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.preProcessSDNCActivate(mex) }))
519 public void preProcessSDNCActivate_Ex() {
520 ExecutionEntity mex = setupMock()
521 initPreProcessSDNC(mex)
523 when(mex.getVariable("rollbackData")).thenThrow(new RuntimeException("expected exception"))
525 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
527 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.preProcessSDNCActivate(mex) }))
531 // ***** validateSDNCResp *****
535 public void validateSDNCResp() {
536 ExecutionEntity mex = setupMock()
537 def map = setupMap(mex)
538 def data = initValidateSDNCResp(mex)
539 def resp = initValidateSDNCResp_Resp()
541 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
543 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
545 DoCreateAllottedResourceBRG.validateSDNCResp(mex, resp, "create")
547 verify(mex).getVariable("WorkflowException")
548 verify(mex).getVariable("SDNCA_SuccessIndicator")
549 verify(mex).getVariable("rollbackData")
551 assertEquals(data, map.get("rollbackData"))
553 assertEquals("true", data.get(Prefix, "rollback" + "SDNCcreate"))
559 public void validateSDNCResp_Get() {
560 ExecutionEntity mex = setupMock()
561 def data = initValidateSDNCResp(mex)
562 def resp = initValidateSDNCResp_Resp()
564 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(true)
566 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
568 DoCreateAllottedResourceBRG.validateSDNCResp(mex, resp, "get")
570 verify(mex).getVariable("WorkflowException")
571 verify(mex).getVariable("SDNCA_SuccessIndicator")
573 verify(mex, never()).getVariable("rollbackData")
578 public void validateSDNCResp_Unsuccessful() {
579 ExecutionEntity mex = setupMock()
580 initValidateSDNCResp(mex)
581 def resp = initValidateSDNCResp_Resp()
584 when(mex.getVariable(Prefix+"sdncResponseSuccess")).thenReturn(false)
586 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
588 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.validateSDNCResp(mex, resp, "create") }))
593 public void validateSDNCResp_BpmnError() {
594 ExecutionEntity mex = setupMock()
595 initValidateSDNCResp(mex)
596 def resp = initValidateSDNCResp_Resp()
598 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
600 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
602 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.validateSDNCResp(mex, resp, "create") }))
607 public void validateSDNCResp_Ex() {
608 ExecutionEntity mex = setupMock()
609 initValidateSDNCResp(mex)
610 def resp = initValidateSDNCResp_Resp()
612 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
614 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
616 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.validateSDNCResp(mex, resp, "create") }))
620 // ***** preProcessSDNCGet *****
624 public void preProcessSDNCGet_FoundAR() {
625 ExecutionEntity mex = setupMock()
626 def map = setupMap(mex)
627 initPreProcessSDNCGet(mex)
629 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
630 DoCreateAllottedResourceBRG.preProcessSDNCGet(mex)
632 String req = map.get("sdncGetRequest")
634 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
635 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
636 assertTrue(req.indexOf("<sdncadapter:SvcOperation>arlink</") >= 0)
637 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
643 public void preProcessSDNCGet_NotFoundAR() {
644 ExecutionEntity mex = setupMock()
645 def map = setupMap(mex)
646 initPreProcessSDNCGet(mex)
648 when(mex.getVariable("foundActiveAR")).thenReturn(false)
650 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
651 DoCreateAllottedResourceBRG.preProcessSDNCGet(mex)
653 String req = map.get("sdncGetRequest")
655 assertTrue(req.indexOf("<sdncadapter:RequestId>") >= 0)
656 assertTrue(req.indexOf("<sdncadapter:SvcInstanceId>sii</") >= 0)
657 assertTrue(req.indexOf("<sdncadapter:SvcOperation>assignlink</") >= 0)
658 assertTrue(req.indexOf("<sdncadapter:CallbackUrl>myurl</") >= 0)
664 public void preProcessSDNCGet_Ex() {
665 ExecutionEntity mex = setupMock()
666 initPreProcessSDNCGet(mex)
668 when(mex.getVariable("foundActiveAR")).thenThrow(new RuntimeException("expected exception"))
670 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
672 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.preProcessSDNCGet(mex) }))
676 // ***** updateAaiAROrchStatus *****
680 public void updateAaiAROrchStatus() {
681 MockPatchAllottedResource(CUST, SVC, INST, ARID)
683 ExecutionEntity mex = setupMock()
684 initUpdateAaiAROrchStatus(mex)
686 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
687 DoCreateAllottedResourceBRG.updateAaiAROrchStatus(mex, "success")
691 // ***** generateOutputs *****
695 public void generateOutputs() {
696 ExecutionEntity mex = setupMock()
697 def brgtop = FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceBRG/SDNCTopologyQueryCallback.xml")
699 when(mex.getVariable(DBGFLAG)).thenReturn("true")
700 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn(brgtop)
702 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
703 DoCreateAllottedResourceBRG.generateOutputs(mex)
705 verify(mex).setVariable("allotedResourceName", "namefromrequest")
711 public void generateOutputs_BadXml() {
712 ExecutionEntity mex = setupMock()
714 when(mex.getVariable(DBGFLAG)).thenReturn("true")
715 when(mex.getVariable("enhancedCallbackRequestData")).thenReturn("invalid xml")
717 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
718 DoCreateAllottedResourceBRG.generateOutputs(mex)
720 verify(mex, never()).setVariable(anyString(), anyString())
726 public void generateOutputs_BpmnError() {
727 ExecutionEntity mex = setupMock()
729 when(mex.getVariable(DBGFLAG)).thenReturn("true")
730 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new BpmnError("expected exception"))
732 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
734 DoCreateAllottedResourceBRG.generateOutputs(mex)
735 verify(mex, never()).setVariable(anyString(), anyString())
741 public void generateOutputs_Ex() {
742 ExecutionEntity mex = setupMock()
744 when(mex.getVariable(DBGFLAG)).thenReturn("true")
745 when(mex.getVariable("enhancedCallbackRequestData")).thenThrow(new RuntimeException("expected exception"))
747 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
749 DoCreateAllottedResourceBRG.generateOutputs(mex)
750 verify(mex, never()).setVariable(anyString(), anyString())
755 // ***** preProcessRollback *****
759 public void preProcessRollback() {
760 ExecutionEntity mex = setupMock()
761 WorkflowException wfe = mock(WorkflowException.class)
763 when(mex.getVariable(DBGFLAG)).thenReturn("true")
764 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
766 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
767 DoCreateAllottedResourceBRG.preProcessRollback(mex)
769 verify(mex).setVariable("prevWorkflowException", wfe)
775 public void preProcessRollback_NotWFE() {
776 ExecutionEntity mex = setupMock()
778 when(mex.getVariable(DBGFLAG)).thenReturn("true")
779 when(mex.getVariable("WorkflowException")).thenReturn("I'm not a WFE")
781 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
782 DoCreateAllottedResourceBRG.preProcessRollback(mex)
784 // verify(mex, never()).setVariable("prevWorkflowException", any())
790 public void preProcessRollback_BpmnError() {
791 ExecutionEntity mex = setupMock()
793 when(mex.getVariable(DBGFLAG)).thenReturn("true")
794 when(mex.getVariable("WorkflowException")).thenThrow(new BpmnError("expected exception"))
796 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
798 DoCreateAllottedResourceBRG.preProcessRollback(mex)
804 public void preProcessRollback_Ex() {
805 ExecutionEntity mex = setupMock()
807 when(mex.getVariable(DBGFLAG)).thenReturn("true")
808 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
810 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
812 DoCreateAllottedResourceBRG.preProcessRollback(mex)
817 // ***** postProcessRollback *****
821 public void postProcessRollback() {
822 ExecutionEntity mex = setupMock()
823 WorkflowException wfe = mock(WorkflowException.class)
825 when(mex.getVariable(DBGFLAG)).thenReturn("true")
826 when(mex.getVariable("prevWorkflowException")).thenReturn(wfe)
828 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
829 DoCreateAllottedResourceBRG.postProcessRollback(mex)
831 verify(mex).setVariable("WorkflowException", wfe)
832 verify(mex).setVariable("rollbackData", null)
838 public void postProcessRollback_NotWFE() {
839 ExecutionEntity mex = setupMock()
841 when(mex.getVariable(DBGFLAG)).thenReturn("true")
842 when(mex.getVariable("prevWorkflowException")).thenReturn("I'm not a WFE")
844 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
845 DoCreateAllottedResourceBRG.postProcessRollback(mex)
847 // verify(mex, never()).setVariable("WorkflowException", any())
848 verify(mex).setVariable("rollbackData", null)
854 public void postProcessRollback_BpmnError() {
855 ExecutionEntity mex = setupMock()
857 when(mex.getVariable(DBGFLAG)).thenReturn("true")
858 when(mex.getVariable("prevWorkflowException")).thenThrow(new BpmnError("expected exception"))
860 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
862 assertTrue(doBpmnError({ _ -> DoCreateAllottedResourceBRG.postProcessRollback(mex) }))
863 verify(mex, never()).setVariable("rollbackData", null)
869 public void postProcessRollback_Ex() {
870 ExecutionEntity mex = setupMock()
872 when(mex.getVariable(DBGFLAG)).thenReturn("true")
873 when(mex.getVariable("prevWorkflowException")).thenThrow(new RuntimeException("expected exception"))
875 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
877 DoCreateAllottedResourceBRG.postProcessRollback(mex)
878 verify(mex, never()).setVariable("rollbackData", null)
882 private boolean checkMissingPreProcessRequest(String fieldnm) {
883 ExecutionEntity mex = setupMock()
886 DoCreateAllottedResourceBRG DoCreateAllottedResourceBRG = new DoCreateAllottedResourceBRG()
888 when(mex.getVariable(fieldnm)).thenReturn("")
890 return doBpmnError( { _ -> DoCreateAllottedResourceBRG.preProcessRequest(mex) })
893 private void initPreProcess(ExecutionEntity mex) {
894 when(mex.getVariable(DBGFLAG)).thenReturn("true")
895 when(mex.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("sdncurn")
896 when(mex.getVariable("mso.workflow.sdnc.replication.delay")).thenReturn("sdncdelay")
897 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
898 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
899 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("armi")
900 when(mex.getVariable("vni")).thenReturn("myvni")
901 when(mex.getVariable("vgmuxBearerIP")).thenReturn("vbi")
902 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
903 when(mex.getVariable("allottedResourceRole")).thenReturn("arr")
904 when(mex.getVariable("allottedResourceType")).thenReturn("art")
907 private void initGetAaiAR(ExecutionEntity mex) {
908 when(mex.getVariable(DBGFLAG)).thenReturn("true")
909 when(mex.getVariable("allottedResourceType")).thenReturn("BRGt")
910 when(mex.getVariable("allottedResourceRole")).thenReturn("BRGr")
911 when(mex.getVariable("CSI_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DoCreateAllottedResourceBRG/getAR.xml"))
912 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
913 when(mex.getVariable("aaiAROrchStatus")).thenReturn("Active")
916 private initCreateAaiAr(ExecutionEntity mex) {
917 when(mex.getVariable("disableRollback")).thenReturn(45)
918 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
919 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
920 when(mex.getVariable(DBGFLAG)).thenReturn("true")
921 when(mex.getVariable("allottedResourceId")).thenReturn(ARID)
922 when(mex.getVariable("aai.endpoint")).thenReturn(aaiUriPfx)
923 when(mex.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn(UrnPropertiesReader.getVariable("mso.workflow.global.default.aai.namespace"))
924 when(mex.getVariable("PSI_resourceLink")).thenReturn(aaiUriPfx + "/aai/v9/business/customers/customer/"+CUST+"/service-subscriptions/service-subscription/"+SVC+"/service-instances/service-instance/"+INST)
925 when(mex.getVariable("allottedResourceType")).thenReturn("BRGt")
926 when(mex.getVariable("allottedResourceRole")).thenReturn("BRGr")
927 when(mex.getVariable("CSI_resourceLink")).thenReturn(aaiUriPfx+"/aai/v9/mycsi")
928 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
930 "modelInvariantUuid":"modelinvuuid",
931 "modelUuid":"modeluuid",
932 "modelCustomizationUuid":"modelcustuuid"
937 private initBuildSDNCRequest(ExecutionEntity mex) {
938 when(mex.getVariable(DBGFLAG)).thenReturn("true")
939 when(mex.getVariable("allottedResourceId")).thenReturn("ari")
940 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
941 when(mex.getVariable("parentServiceInstanceId")).thenReturn("psii")
942 when(mex.getVariable("subscriptionServiceType")).thenReturn("sst")
943 when(mex.getVariable("globalCustomerId")).thenReturn("gci")
944 when(mex.getVariable("sdncCallbackUrl")).thenReturn("scu")
945 when(mex.getVariable("msoRequestId")).thenReturn("mri")
946 when(mex.getVariable("brgWanMacAddress")).thenReturn("bwma")
947 when(mex.getVariable("vni")).thenReturn("myvni")
948 when(mex.getVariable("vgmuxBearerIP")).thenReturn("vbi")
949 when(mex.getVariable("allottedResourceModelInfo")).thenReturn("""
951 "modelInvariantUuid":"miu",
953 "modelCustomizationUuid":"mcu",
960 private RollbackData initPreProcessSDNC(ExecutionEntity mex) {
961 def data = new RollbackData()
963 when(mex.getVariable(DBGFLAG)).thenReturn("true")
964 when(mex.getVariable("rollbackData")).thenReturn(data)
969 private initPreProcessSDNCGet(ExecutionEntity mex) {
970 when(mex.getVariable(DBGFLAG)).thenReturn("true")
971 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
972 when(mex.getVariable("foundActiveAR")).thenReturn(true)
973 when(mex.getVariable("aaiARGetResponse")).thenReturn("<selflink>arlink</selflink>")
974 when(mex.getVariable("sdncAssignResponse")).thenReturn("<response-data><object-path>assignlink</object-path></response-data>")
975 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
976 when(mex.getVariable("sdncCallbackUrl")).thenReturn("myurl")
979 private RollbackData initValidateSDNCResp(ExecutionEntity mex) {
980 def data = new RollbackData()
982 when(mex.getVariable(DBGFLAG)).thenReturn("true")
983 when(mex.getVariable("prefix")).thenReturn(Prefix)
984 when(mex.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
985 when(mex.getVariable("rollbackData")).thenReturn(data)
990 private String initValidateSDNCResp_Resp() {
991 return "<response-data><response-code>200</response-code></response-data>"
994 private initUpdateAaiAROrchStatus(ExecutionEntity mex) {
995 when(mex.getVariable(DBGFLAG)).thenReturn("true")
996 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)