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.onap.so.bpmn.vcpe.scripts
23 import org.camunda.bpm.engine.ProcessEngineServices
24 import org.camunda.bpm.engine.RepositoryService
25 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
26 import org.camunda.bpm.engine.repository.ProcessDefinition
27 import org.junit.Before
28 import org.junit.BeforeClass
31 import org.junit.Ignore
32 import org.mockito.MockitoAnnotations
33 import org.camunda.bpm.engine.delegate.BpmnError
34 import org.onap.so.bpmn.core.WorkflowException
35 import org.onap.so.bpmn.mock.FileUtil
37 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse
38 import static com.github.tomakehurst.wiremock.client.WireMock.get
39 import static com.github.tomakehurst.wiremock.client.WireMock.patch
40 import static com.github.tomakehurst.wiremock.client.WireMock.put
41 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor
42 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching
43 import static org.junit.Assert.*;
44 import static org.mockito.Mockito.*
45 import static org.onap.so.bpmn.mock.StubResponseAAI.MockGetAllottedResource
46 import org.onap.so.bpmn.core.domain.ServiceDecomposition
47 import org.onap.so.bpmn.core.domain.VnfResource
48 import org.onap.so.bpmn.core.domain.AllottedResource
49 import org.onap.so.bpmn.core.domain.ModelInfo
51 import org.onap.so.bpmn.core.RollbackData
52 import org.onap.so.bpmn.vcpe.scripts.MapGetter
53 import org.onap.so.bpmn.vcpe.scripts.MapSetter
55 import com.github.tomakehurst.wiremock.junit.WireMockRule
57 class DeleteVcpeResCustServiceTest extends GroovyTestBase {
59 private static String request
62 public WireMockRule wireMockRule = new WireMockRule(PORT)
64 String Prefix = "DVRCS_"
65 String RbType = "DCRENI_"
68 public static void setUpBeforeClass() {
69 request = FileUtil.readResourceFile("__files/VCPE/DeleteVcpeResCustService/request.json")
75 MockitoAnnotations.initMocks(this)
78 public DeleteVcpeResCustServiceTest() {
79 super("DeleteVcpeResCustService")
83 // ***** preProcessRequest *****
87 public void preProcessRequest() {
88 ExecutionEntity mex = setupMock()
89 def map = setupMap(mex)
92 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
93 DeleteVcpeResCustService.preProcessRequest(mex)
95 verify(mex).getVariable(DBGFLAG)
97 assertEquals(Prefix, map.get("prefix"))
98 assertEquals(request, map.get("DeleteVcpeResCustServiceRequest"))
99 assertEquals("mri", map.get("msoRequestId"))
100 assertEquals("ra", map.get("requestAction"))
101 assertEquals("VID", map.get("source"))
102 assertEquals(CUST, map.get("globalSubscriberId"))
103 assertEquals(CUST, map.get("globalCustomerId"))
104 assertEquals("false", map.get("disableRollback"))
105 assertEquals("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", map.get("productFamilyId"))
106 assertEquals(SVC, map.get("subscriptionServiceType"))
108 assertEquals("mdt1", map.get("lcpCloudRegionId"))
109 assertEquals("8b1df54faa3b49078e3416e21370a3ba", map.get("tenantId"))
110 assertEquals("1707", map.get("sdncVersion"))
111 assertEquals("service-instance", map.get("GENGS_type"))
112 assertEquals("""{"tenantId":"8b1df54faa3b49078e3416e21370a3ba","lcpCloudRegionId":"mdt1"}""", map.get("cloudConfiguration"))
113 assertTrue(map.containsKey(Prefix+"requestInfo"))
115 def reqinfo = map.get(Prefix+"requestInfo")
116 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
117 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
122 public void preProcessRequest_EmptyParts() {
123 ExecutionEntity mex = setupMock()
124 def map = setupMap(mex)
128 .replace('"source"', '"sourceXXX"')
130 when(mex.getVariable("bpmnRequest")).thenReturn(req)
132 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
133 DeleteVcpeResCustService.preProcessRequest(mex)
135 verify(mex).getVariable(DBGFLAG)
136 verify(mex).setVariable("prefix", Prefix)
137 verify(mex).setVariable("DeleteVcpeResCustServiceRequest", req)
138 verify(mex).setVariable("msoRequestId", "mri")
139 verify(mex).setVariable("requestAction", "ra")
140 verify(mex).setVariable("source", "VID")
141 verify(mex).setVariable("globalSubscriberId", CUST)
142 verify(mex).setVariable("globalCustomerId", CUST)
143 verify(mex).setVariable("disableRollback", "false")
144 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
145 verify(mex).setVariable("subscriptionServiceType", SVC)
147 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
148 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
149 assertEquals("""{"tenantId":"8b1df54faa3b49078e3416e21370a3ba","lcpCloudRegionId":"mdt1"}""", map.get("cloudConfiguration"))
150 verify(mex).setVariable("sdncVersion", "1707")
151 verify(mex).setVariable("GENGS_type", "service-instance")
152 assertTrue(map.containsKey(Prefix+"requestInfo"))
154 def reqinfo = map.get(Prefix+"requestInfo")
156 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
157 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
162 public void preProcessRequest_MissingServiceInstanceId() {
163 ExecutionEntity mex = setupMock()
166 when(mex.getVariable("serviceInstanceId")).thenReturn(null)
168 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
170 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
175 public void preProcessRequest_BpmnError() {
176 ExecutionEntity mex = setupMock()
179 when(mex.getVariable("bpmnRequest")).thenThrow(new BpmnError("expected exception"))
181 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
183 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
188 public void preProcessRequest_Ex() {
189 ExecutionEntity mex = setupMock()
192 when(mex.getVariable("bpmnRequest")).thenThrow(new RuntimeException("expected exception"))
194 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
196 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
199 private void initPreProcess(ExecutionEntity mex) {
200 when(mex.getVariable(DBGFLAG)).thenReturn("true")
201 when(mex.getVariable("bpmnRequest")).thenReturn(request)
202 when(mex.getVariable("mso-request-id")).thenReturn("mri")
203 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
204 when(mex.getVariable("requestAction")).thenReturn("ra")
207 // ***** sendSyncResponse *****
211 public void sendSyncResponse() {
212 ExecutionEntity mex = setupMock()
213 def map = setupMap(mex)
214 initSendSyncResponse(mex)
216 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
217 DeleteVcpeResCustService.sendSyncResponse(mex)
219 verify(mex, times(2)).getVariable(DBGFLAG)
221 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
223 assertEquals("202", map.get(processName+"ResponseCode"))
224 assertEquals("Success", map.get(processName+"Status"))
226 def resp = map.get(processName+"Response")
228 assertTrue(resp.indexOf('"instanceId":"sii"') >= 0)
229 assertTrue(resp.indexOf('"requestId":"mri"') >= 0)
234 public void sendSyncResponse_Ex() {
235 ExecutionEntity mex = setupMock()
236 initSendSyncResponse(mex)
238 when(mex.getVariable("serviceInstanceId")).thenThrow(new RuntimeException("expected exception"))
240 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
242 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.sendSyncResponse(mex) }))
245 private initSendSyncResponse(ExecutionEntity mex) {
246 when(mex.getVariable(DBGFLAG)).thenReturn("true")
247 when(mex.getVariable("mso-request-id")).thenReturn("mri")
248 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
251 // ***** prepareServiceDelete *****
255 public void prepareServiceDelete() {
256 ExecutionEntity mex = setupMock()
257 def map = setupMap(mex)
258 initPrepareServiceDelete(mex)
260 myMockGetAr("/aai/v11/anytxc", 200, "arGetTXCById.xml");
261 myMockGetAr("/aai/v11/anybrg", 200, "arGetBRGById.xml");
262 myMockGetAr("/aai/v11/other", 200, "arGetOtherById.xml");
264 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
265 DeleteVcpeResCustService.prepareServiceDelete(mex)
267 verify(mex).setVariable(Prefix+"TunnelXConn", true)
268 assertEquals("ar-txcA", map.get("TXC_allottedResourceId"))
270 verify(mex).setVariable(Prefix+"BRG", true)
271 assertEquals("ar-brgB", map.get("BRG_allottedResourceId"))
273 verify(mex).setVariable(Prefix+"vnfsCount", 2)
274 assertNotNull(map.get(Prefix+"relatedVnfIdList"))
275 assertEquals("[vnfX, vnfY]", map.get(Prefix+"relatedVnfIdList").toString())
277 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
282 public void prepareServiceDelete_NotFound() {
283 ExecutionEntity mex = setupMock()
284 initPrepareServiceDelete(mex)
286 when(mex.getVariable("GENGS_FoundIndicator")).thenReturn(false)
288 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
290 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
292 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
297 public void prepareServiceDelete_Empty() {
298 ExecutionEntity mex = setupMock()
299 def map = setupMap(mex)
300 initPrepareServiceDelete(mex)
302 when(mex.getVariable("GENGS_service")).thenReturn("<empty></empty>")
304 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
305 DeleteVcpeResCustService.prepareServiceDelete(mex)
307 verify(mex).getVariable(DBGFLAG)
309 verify(mex).setVariable(Prefix+"TunnelXConn", false)
310 assertNull(map.get("TXC_allottedResourceId"))
312 verify(mex).setVariable(Prefix+"BRG", false)
313 assertNull(map.get("BRG_allottedResourceId"))
315 assertEquals(0, map.get(Prefix+"vnfsCount"))
316 assertFalse(map.containsKey(Prefix+"relatedVnfIdList"))
318 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
323 public void prepareServiceDelete_BpmnError() {
324 ExecutionEntity mex = setupMock()
325 initPrepareServiceDelete(mex)
327 when(mex.getVariable("GENGS_FoundIndicator")).thenThrow(new BpmnError("expected exception"))
329 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
331 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
333 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
338 public void prepareServiceDelete_Ex() {
339 ExecutionEntity mex = setupMock()
340 initPrepareServiceDelete(mex)
342 when(mex.getVariable("GENGS_FoundIndicator")).thenThrow(new RuntimeException("expected exception"))
344 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
346 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
348 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
351 private initPrepareServiceDelete(ExecutionEntity mex) {
352 when(mex.getVariable(DBGFLAG)).thenReturn("true")
353 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
354 when(mex.getVariable("GENGS_FoundIndicator")).thenReturn(true)
355 when(mex.getVariable("mso-request-id")).thenReturn("mri")
356 when(mex.getVariable("DeleteVcpeResCustServiceRequest")).thenReturn(request)
357 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
358 when(mex.getVariable("GENGS_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DeleteVcpeResCustService/serviceToDelete.xml"))
361 // ***** getAaiAr *****
365 public void getAaiAr() {
366 myMockGetAr("/myurl/ar1", 200, "arGetBRGById.xml");
368 ExecutionEntity mex = setupMock()
371 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
372 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
374 assertEquals("BRG", type)
375 assertEquals("ar-brgB", id)
380 public void getAaiAr_401() {
381 myMockGetAr("/myurl/ar1", 401, "arGetBRGById.xml");
383 ExecutionEntity mex = setupMock()
386 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
387 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
389 assertEquals(null, type)
390 assertEquals(null, id)
395 public void getAaiAr_EmptyResponse() {
396 myMockGetAr("/myurl/ar1", 200, "empty.txt");
398 ExecutionEntity mex = setupMock()
401 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
402 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
404 assertEquals(null, type)
405 assertEquals(null, id)
408 private void initGetAaiAr(ExecutionEntity mex) {
409 when(mex.getVariable(DBGFLAG)).thenReturn("true")
410 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
413 // ***** prepareVnfAndModulesDelete *****
417 public void prepareVnfAndModulesDelete() {
418 ExecutionEntity mex = setupMock()
419 initPrepareVnfAndModulesDelete(mex)
421 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
422 DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex)
424 verify(mex).getVariable(DBGFLAG)
426 verify(mex).setVariable("vnfId", "vnfB")
431 public void prepareVnfAndModulesDelete_Empty() {
432 ExecutionEntity mex = setupMock()
433 initPrepareVnfAndModulesDelete(mex)
435 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenReturn(new LinkedList())
437 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
438 DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex)
440 verify(mex).getVariable(DBGFLAG)
442 verify(mex).setVariable("vnfId", "")
447 public void prepareVnfAndModulesDelete_Ex() {
448 ExecutionEntity mex = setupMock()
449 initPrepareVnfAndModulesDelete(mex)
451 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenThrow(new RuntimeException("expected exception"))
453 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
455 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex) }))
458 private initPrepareVnfAndModulesDelete(ExecutionEntity mex) {
459 when(mex.getVariable(DBGFLAG)).thenReturn("true")
460 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenReturn(Arrays.asList("vnfA", "vnfB", "vnfC"))
461 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenReturn(1)
464 // ***** validateVnfDelete *****
468 public void validateVnfDelete() {
469 ExecutionEntity mex = setupMock()
470 initValidateVnfDelete(mex)
472 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
473 DeleteVcpeResCustService.validateVnfDelete(mex)
475 verify(mex).getVariable(DBGFLAG)
477 verify(mex).setVariable(Prefix+"vnfsDeletedCount", 3)
482 public void validateVnfDelete_Ex() {
483 ExecutionEntity mex = setupMock()
484 initValidateVnfDelete(mex)
486 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenThrow(new RuntimeException("expected exception"))
488 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
490 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.validateVnfDelete(mex) }))
493 private initValidateVnfDelete(ExecutionEntity mex) {
494 when(mex.getVariable(DBGFLAG)).thenReturn("true")
495 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenReturn(2)
498 // ***** postProcessResponse *****
502 public void postProcessResponse() {
503 ExecutionEntity mex = setupMock()
504 def map = setupMap(mex)
505 initPostProcessResponse(mex)
507 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
508 DeleteVcpeResCustService.postProcessResponse(mex)
510 verify(mex).getVariable(DBGFLAG)
512 assertEquals(true, map.get(Prefix+"Success"))
514 def req = map.get(Prefix+"CompleteMsoProcessRequest")
516 assertTrue(req.indexOf("<request-id>mri</") >= 0)
517 assertTrue(req.indexOf("<source>mysrc</") >= 0)
522 public void postProcessResponse_BpmnError() {
523 ExecutionEntity mex = setupMock()
524 initPostProcessResponse(mex)
526 when(mex.getVariable("source")).thenThrow(new BpmnError("expected exception"))
528 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
530 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.postProcessResponse(mex) }))
535 public void postProcessResponse_Ex() {
536 ExecutionEntity mex = setupMock()
537 initPostProcessResponse(mex)
539 when(mex.getVariable("source")).thenThrow(new RuntimeException("expected exception"))
541 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
543 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.postProcessResponse(mex) }))
546 private initPostProcessResponse(ExecutionEntity mex) {
547 when(mex.getVariable(DBGFLAG)).thenReturn("true")
548 when(mex.getVariable("source")).thenReturn("mysrc")
549 when(mex.getVariable("msoRequestId")).thenReturn("mri")
553 // ***** prepareFalloutRequest *****
557 public void prepareFalloutRequest() {
558 ExecutionEntity mex = setupMock()
559 def map = setupMap(mex)
560 initPrepareFalloutRequest(mex)
562 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
563 DeleteVcpeResCustService.prepareFalloutRequest(mex)
565 verify(mex, times(2)).getVariable(DBGFLAG)
567 def fo = map.get(Prefix+"falloutRequest")
569 assertTrue(fo.indexOf("<hello>world</") >= 0)
570 assertTrue(fo.indexOf("ErrorMessage>mymsg</") >= 0)
571 assertTrue(fo.indexOf("ErrorCode>999</") >= 0)
576 public void prepareFalloutRequest_Ex() {
577 ExecutionEntity mex = setupMock()
578 def map = setupMap(mex)
579 initPrepareFalloutRequest(mex)
581 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
583 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
585 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.prepareFalloutRequest(mex) }))
588 private initPrepareFalloutRequest(ExecutionEntity mex) {
589 WorkflowException wfe = mock(WorkflowException.class)
591 when(wfe.getErrorMessage()).thenReturn("mymsg")
592 when(wfe.getErrorCode()).thenReturn(999)
594 when(mex.getVariable(DBGFLAG)).thenReturn("true")
595 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
596 when(mex.getVariable(Prefix+"requestInfo")).thenReturn("<hello>world</hello>")
601 // ***** sendSyncError *****
605 public void sendSyncError() {
606 ExecutionEntity mex = setupMock()
607 def map = setupMap(mex)
608 initSendSyncError(mex)
610 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
611 DeleteVcpeResCustService.sendSyncError(mex)
613 verify(mex, times(2)).getVariable(DBGFLAG)
615 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
617 assertEquals("500", map.get(processName+"ResponseCode"))
618 assertEquals("Fail", map.get(processName+"Status"))
620 def resp = map.get(processName+"Response")
622 assertTrue(resp.indexOf("ErrorMessage>mymsg</") >= 0)
624 verify(mex).setVariable("WorkflowResponse", resp)
629 public void sendSyncError_NotWfe() {
630 ExecutionEntity mex = setupMock()
631 def map = setupMap(mex)
632 initSendSyncError(mex)
634 when(mex.getVariable("WorkflowException")).thenReturn("not a WFE")
636 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
637 DeleteVcpeResCustService.sendSyncError(mex)
639 verify(mex, times(2)).getVariable(DBGFLAG)
641 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
643 assertEquals("500", map.get(processName+"ResponseCode"))
644 assertEquals("Fail", map.get(processName+"Status"))
646 def resp = map.get(processName+"Response")
648 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
650 verify(mex).setVariable("WorkflowResponse", resp)
655 public void sendSyncError_NullWfe() {
656 ExecutionEntity mex = setupMock()
657 def map = setupMap(mex)
658 initSendSyncError(mex)
660 when(mex.getVariable("WorkflowException")).thenReturn(null)
662 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
663 DeleteVcpeResCustService.sendSyncError(mex)
665 verify(mex, times(2)).getVariable(DBGFLAG)
667 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
669 assertEquals("500", map.get(processName+"ResponseCode"))
670 assertEquals("Fail", map.get(processName+"Status"))
672 def resp = map.get(processName+"Response")
674 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
676 verify(mex).setVariable("WorkflowResponse", resp)
681 public void sendSyncError_Ex() {
682 ExecutionEntity mex = setupMock()
683 def map = setupMap(mex)
684 initSendSyncError(mex)
686 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
688 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
690 DeleteVcpeResCustService.sendSyncError(mex)
692 assertFalse(map.containsKey(processName+"ResponseCode"))
695 private initSendSyncError(ExecutionEntity mex) {
696 WorkflowException wfe = mock(WorkflowException.class)
698 when(mex.getVariable(DBGFLAG)).thenReturn("true")
699 when(mex.getVariable("mso-request-id")).thenReturn("mri")
700 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
702 when(wfe.getErrorMessage()).thenReturn("mymsg")
706 // ***** processJavaException *****
710 public void processJavaException() {
711 ExecutionEntity mex = setupMock()
712 def map = setupMap(mex)
713 initProcessJavaException(mex)
715 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
717 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
719 verify(mex, times(2)).getVariable(DBGFLAG)
721 verify(mex).setVariable("prefix", Prefix)
723 def wfe = map.get("WorkflowException")
725 assertEquals("Caught a Java Lang Exception", wfe.getErrorMessage())
730 public void processJavaException_BpmnError() {
731 ExecutionEntity mex = setupMock()
732 def map = setupMap(mex)
733 initProcessJavaException(mex)
735 when(mex.getVariables()).thenThrow(new BpmnError("expected exception"))
737 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
739 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
741 assertFalse(map.containsKey("WorkflowException"))
746 public void processJavaException_Ex() {
747 ExecutionEntity mex = setupMock()
748 def map = setupMap(mex)
749 initProcessJavaException(mex)
751 when(mex.getVariables()).thenThrow(new RuntimeException("expected exception"))
753 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
755 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
757 def wfe = map.get("WorkflowException")
759 assertEquals("Exception in processJavaException method", wfe.getErrorMessage())
762 private initProcessJavaException(ExecutionEntity mex) {
763 when(mex.getVariable(DBGFLAG)).thenReturn("true")
766 private void myMockGetAr(String url, int status, String fileResp) {
767 stubFor(get(urlMatching(url))
768 .willReturn(aResponse()
770 .withHeader("Content-Type", "text/xml")
771 .withBodyFile("VCPE/DeleteVcpeResCustService/" + fileResp)));