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.get
40 import static com.github.tomakehurst.wiremock.client.WireMock.patch
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.*;
\r
45 import static org.mockito.Mockito.*
46 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetAllottedResource
47 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition
48 import org.openecomp.mso.bpmn.core.domain.VnfResource
49 import org.openecomp.mso.bpmn.core.domain.AllottedResource
50 import org.openecomp.mso.bpmn.core.domain.ModelInfo
51 import org.openecomp.mso.bpmn.core.domain.HomingSolution
52 import org.openecomp.mso.bpmn.core.RollbackData
53 import org.openecomp.mso.bpmn.vcpe.scripts.MapGetter
54 import org.openecomp.mso.bpmn.vcpe.scripts.MapSetter
56 import com.github.tomakehurst.wiremock.junit.WireMockRule
\r
58 class DeleteVcpeResCustServiceTest extends GroovyTestBase {
60 private static String request
\r
63 public WireMockRule wireMockRule = new WireMockRule(PORT)
65 String Prefix = "DVRCS_"
66 String RbType = "DCRENI_"
\r
69 public static void setUpBeforeClass() {
70 super.setUpBeforeClass()
71 request = FileUtil.readResourceFile("__files/VCPE/DeleteVcpeResCustService/request.json")
77 MockitoAnnotations.initMocks(this)
\r
80 public DeleteVcpeResCustServiceTest() {
81 super("DeleteVcpeResCustService")
85 // ***** preProcessRequest *****
\r
89 public void preProcessRequest() {
\r
90 ExecutionEntity mex = setupMock()
91 def map = setupMap(mex)
94 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
\r
95 DeleteVcpeResCustService.preProcessRequest(mex)
\r
97 verify(mex).getVariable(DBGFLAG)
99 assertEquals(Prefix, map.get("prefix"))
100 assertEquals(request, map.get("DeleteVcpeResCustServiceRequest"))
101 assertEquals("mri", map.get("msoRequestId"))
102 assertEquals("ra", map.get("requestAction"))
103 assertEquals("VID", map.get("source"))
104 assertEquals(CUST, map.get("globalSubscriberId"))
105 assertEquals(CUST, map.get("globalCustomerId"))
106 assertEquals("false", map.get("disableRollback"))
107 assertEquals("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", map.get("productFamilyId"))
108 assertEquals(SVC, map.get("subscriptionServiceType"))
110 assertEquals("mdt1", map.get("lcpCloudRegionId"))
111 assertEquals("8b1df54faa3b49078e3416e21370a3ba", map.get("tenantId"))
112 assertEquals("1707", map.get("sdncVersion"))
113 assertEquals("service-instance", map.get("GENGS_type"))
114 assertEquals("""{"tenantId":"8b1df54faa3b49078e3416e21370a3ba","lcpCloudRegionId":"mdt1"}""", map.get("cloudConfiguration"))
115 assertTrue(map.containsKey(Prefix+"requestInfo"))
117 def reqinfo = map.get(Prefix+"requestInfo")
118 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
119 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
\r
124 public void preProcessRequest_EmptyParts() {
125 ExecutionEntity mex = setupMock()
126 def map = setupMap(mex)
130 .replace('"source"', '"sourceXXX"')
132 when(mex.getVariable("bpmnRequest")).thenReturn(req)
134 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
135 DeleteVcpeResCustService.preProcessRequest(mex)
137 verify(mex).getVariable(DBGFLAG)
138 verify(mex).setVariable("prefix", Prefix)
139 verify(mex).setVariable("DeleteVcpeResCustServiceRequest", req)
140 verify(mex).setVariable("msoRequestId", "mri")
141 verify(mex).setVariable("requestAction", "ra")
142 verify(mex).setVariable("source", "VID")
143 verify(mex).setVariable("globalSubscriberId", CUST)
144 verify(mex).setVariable("globalCustomerId", CUST)
145 verify(mex).setVariable("disableRollback", "false")
146 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
147 verify(mex).setVariable("subscriptionServiceType", SVC)
149 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
150 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
151 assertEquals("""{"tenantId":"8b1df54faa3b49078e3416e21370a3ba","lcpCloudRegionId":"mdt1"}""", map.get("cloudConfiguration"))
152 verify(mex).setVariable("sdncVersion", "1707")
153 verify(mex).setVariable("GENGS_type", "service-instance")
154 assertTrue(map.containsKey(Prefix+"requestInfo"))
156 def reqinfo = map.get(Prefix+"requestInfo")
158 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
159 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
164 public void preProcessRequest_MissingServiceInstanceId() {
165 ExecutionEntity mex = setupMock()
168 when(mex.getVariable("serviceInstanceId")).thenReturn(null)
170 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
172 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
177 public void preProcessRequest_BpmnError() {
178 ExecutionEntity mex = setupMock()
181 when(mex.getVariable("bpmnRequest")).thenThrow(new BpmnError("expected exception"))
183 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
185 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
190 public void preProcessRequest_Ex() {
191 ExecutionEntity mex = setupMock()
194 when(mex.getVariable("bpmnRequest")).thenThrow(new RuntimeException("expected exception"))
196 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
198 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
201 private void initPreProcess(ExecutionEntity mex) {
202 when(mex.getVariable(DBGFLAG)).thenReturn("true")
203 when(mex.getVariable("bpmnRequest")).thenReturn(request)
204 when(mex.getVariable("mso-request-id")).thenReturn("mri")
205 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
206 when(mex.getVariable("requestAction")).thenReturn("ra")
209 // ***** sendSyncResponse *****
213 public void sendSyncResponse() {
214 ExecutionEntity mex = setupMock()
215 def map = setupMap(mex)
216 initSendSyncResponse(mex)
218 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
219 DeleteVcpeResCustService.sendSyncResponse(mex)
221 verify(mex, times(2)).getVariable(DBGFLAG)
223 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
225 assertEquals("202", map.get(processName+"ResponseCode"))
226 assertEquals("Success", map.get(processName+"Status"))
228 def resp = map.get(processName+"Response")
230 assertTrue(resp.indexOf('"instanceId":"sii"') >= 0)
231 assertTrue(resp.indexOf('"requestId":"mri"') >= 0)
236 public void sendSyncResponse_Ex() {
237 ExecutionEntity mex = setupMock()
238 initSendSyncResponse(mex)
240 when(mex.getVariable("serviceInstanceId")).thenThrow(new RuntimeException("expected exception"))
242 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
244 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.sendSyncResponse(mex) }))
247 private initSendSyncResponse(ExecutionEntity mex) {
248 when(mex.getVariable(DBGFLAG)).thenReturn("true")
249 when(mex.getVariable("mso-request-id")).thenReturn("mri")
250 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
253 // ***** prepareServiceDelete *****
257 public void prepareServiceDelete() {
258 ExecutionEntity mex = setupMock()
259 def map = setupMap(mex)
260 initPrepareServiceDelete(mex)
262 myMockGetAr("/aai/v11/anytxc", 200, "arGetTXCById.xml");
263 myMockGetAr("/aai/v11/anybrg", 200, "arGetBRGById.xml");
264 myMockGetAr("/aai/v11/other", 200, "arGetOtherById.xml");
266 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
267 DeleteVcpeResCustService.prepareServiceDelete(mex)
269 verify(mex).setVariable(Prefix+"TunnelXConn", true)
270 assertEquals("ar-txcA", map.get("TXC_allottedResourceId"))
272 verify(mex).setVariable(Prefix+"BRG", true)
273 assertEquals("ar-brgB", map.get("BRG_allottedResourceId"))
275 verify(mex).setVariable(Prefix+"vnfsCount", 2)
276 assertNotNull(map.get(Prefix+"relatedVnfIdList"))
277 assertEquals("[vnfX, vnfY]", map.get(Prefix+"relatedVnfIdList").toString())
279 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
284 public void prepareServiceDelete_NotFound() {
285 ExecutionEntity mex = setupMock()
286 initPrepareServiceDelete(mex)
288 when(mex.getVariable("GENGS_FoundIndicator")).thenReturn(false)
290 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
292 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
294 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
299 public void prepareServiceDelete_Empty() {
300 ExecutionEntity mex = setupMock()
301 def map = setupMap(mex)
302 initPrepareServiceDelete(mex)
304 when(mex.getVariable("GENGS_service")).thenReturn("<empty></empty>")
306 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
307 DeleteVcpeResCustService.prepareServiceDelete(mex)
309 verify(mex).getVariable(DBGFLAG)
311 verify(mex).setVariable(Prefix+"TunnelXConn", false)
312 assertNull(map.get("TXC_allottedResourceId"))
314 verify(mex).setVariable(Prefix+"BRG", false)
315 assertNull(map.get("BRG_allottedResourceId"))
317 assertEquals(0, map.get(Prefix+"vnfsCount"))
318 assertFalse(map.containsKey(Prefix+"relatedVnfIdList"))
320 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
325 public void prepareServiceDelete_BpmnError() {
326 ExecutionEntity mex = setupMock()
327 initPrepareServiceDelete(mex)
329 when(mex.getVariable("GENGS_FoundIndicator")).thenThrow(new BpmnError("expected exception"))
331 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
333 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
335 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
340 public void prepareServiceDelete_Ex() {
341 ExecutionEntity mex = setupMock()
342 initPrepareServiceDelete(mex)
344 when(mex.getVariable("GENGS_FoundIndicator")).thenThrow(new RuntimeException("expected exception"))
346 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
348 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
350 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
353 private initPrepareServiceDelete(ExecutionEntity mex) {
354 when(mex.getVariable(DBGFLAG)).thenReturn("true")
355 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
356 when(mex.getVariable("GENGS_FoundIndicator")).thenReturn(true)
357 when(mex.getVariable("mso-request-id")).thenReturn("mri")
358 when(mex.getVariable("DeleteVcpeResCustServiceRequest")).thenReturn(request)
359 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
360 when(mex.getVariable("GENGS_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DeleteVcpeResCustService/serviceToDelete.xml"))
363 // ***** getAaiAr *****
367 public void getAaiAr() {
368 myMockGetAr("/myurl/ar1", 200, "arGetBRGById.xml");
370 ExecutionEntity mex = setupMock()
373 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
374 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
376 assertEquals("BRG", type)
377 assertEquals("ar-brgB", id)
382 public void getAaiAr_401() {
383 myMockGetAr("/myurl/ar1", 401, "arGetBRGById.xml");
385 ExecutionEntity mex = setupMock()
388 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
389 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
391 assertEquals(null, type)
392 assertEquals(null, id)
397 public void getAaiAr_EmptyResponse() {
398 myMockGetAr("/myurl/ar1", 200, "empty.txt");
400 ExecutionEntity mex = setupMock()
403 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
404 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
406 assertEquals(null, type)
407 assertEquals(null, id)
410 private void initGetAaiAr(ExecutionEntity mex) {
411 when(mex.getVariable(DBGFLAG)).thenReturn("true")
412 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
415 // ***** prepareVnfAndModulesDelete *****
419 public void prepareVnfAndModulesDelete() {
420 ExecutionEntity mex = setupMock()
421 initPrepareVnfAndModulesDelete(mex)
423 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
424 DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex)
426 verify(mex).getVariable(DBGFLAG)
428 verify(mex).setVariable("vnfId", "vnfB")
433 public void prepareVnfAndModulesDelete_Empty() {
434 ExecutionEntity mex = setupMock()
435 initPrepareVnfAndModulesDelete(mex)
437 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenReturn(new LinkedList())
439 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
440 DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex)
442 verify(mex).getVariable(DBGFLAG)
444 verify(mex).setVariable("vnfId", "")
449 public void prepareVnfAndModulesDelete_Ex() {
450 ExecutionEntity mex = setupMock()
451 initPrepareVnfAndModulesDelete(mex)
453 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenThrow(new RuntimeException("expected exception"))
455 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
457 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex) }))
460 private initPrepareVnfAndModulesDelete(ExecutionEntity mex) {
461 when(mex.getVariable(DBGFLAG)).thenReturn("true")
462 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenReturn(Arrays.asList("vnfA", "vnfB", "vnfC"))
463 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenReturn(1)
466 // ***** validateVnfDelete *****
470 public void validateVnfDelete() {
471 ExecutionEntity mex = setupMock()
472 initValidateVnfDelete(mex)
474 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
475 DeleteVcpeResCustService.validateVnfDelete(mex)
477 verify(mex).getVariable(DBGFLAG)
479 verify(mex).setVariable(Prefix+"vnfsDeletedCount", 3)
484 public void validateVnfDelete_Ex() {
485 ExecutionEntity mex = setupMock()
486 initValidateVnfDelete(mex)
488 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenThrow(new RuntimeException("expected exception"))
490 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
492 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.validateVnfDelete(mex) }))
495 private initValidateVnfDelete(ExecutionEntity mex) {
496 when(mex.getVariable(DBGFLAG)).thenReturn("true")
497 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenReturn(2)
500 // ***** postProcessResponse *****
504 public void postProcessResponse() {
505 ExecutionEntity mex = setupMock()
506 def map = setupMap(mex)
507 initPostProcessResponse(mex)
509 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
510 DeleteVcpeResCustService.postProcessResponse(mex)
512 verify(mex).getVariable(DBGFLAG)
514 assertEquals(true, map.get(Prefix+"Success"))
516 def req = map.get(Prefix+"CompleteMsoProcessRequest")
518 assertTrue(req.indexOf("<request-id>mri</") >= 0)
519 assertTrue(req.indexOf("<source>mysrc</") >= 0)
524 public void postProcessResponse_BpmnError() {
525 ExecutionEntity mex = setupMock()
526 initPostProcessResponse(mex)
528 when(mex.getVariable("source")).thenThrow(new BpmnError("expected exception"))
530 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
532 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.postProcessResponse(mex) }))
537 public void postProcessResponse_Ex() {
538 ExecutionEntity mex = setupMock()
539 initPostProcessResponse(mex)
541 when(mex.getVariable("source")).thenThrow(new RuntimeException("expected exception"))
543 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
545 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.postProcessResponse(mex) }))
548 private initPostProcessResponse(ExecutionEntity mex) {
549 when(mex.getVariable(DBGFLAG)).thenReturn("true")
550 when(mex.getVariable("source")).thenReturn("mysrc")
551 when(mex.getVariable("msoRequestId")).thenReturn("mri")
555 // ***** prepareFalloutRequest *****
559 public void prepareFalloutRequest() {
560 ExecutionEntity mex = setupMock()
561 def map = setupMap(mex)
562 initPrepareFalloutRequest(mex)
564 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
565 DeleteVcpeResCustService.prepareFalloutRequest(mex)
567 verify(mex, times(2)).getVariable(DBGFLAG)
569 def fo = map.get(Prefix+"falloutRequest")
571 assertTrue(fo.indexOf("<hello>world</") >= 0)
572 assertTrue(fo.indexOf("ErrorMessage>mymsg</") >= 0)
573 assertTrue(fo.indexOf("ErrorCode>999</") >= 0)
578 public void prepareFalloutRequest_Ex() {
579 ExecutionEntity mex = setupMock()
580 def map = setupMap(mex)
581 initPrepareFalloutRequest(mex)
583 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
585 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
587 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.prepareFalloutRequest(mex) }))
590 private initPrepareFalloutRequest(ExecutionEntity mex) {
591 WorkflowException wfe = mock(WorkflowException.class)
593 when(wfe.getErrorMessage()).thenReturn("mymsg")
594 when(wfe.getErrorCode()).thenReturn(999)
596 when(mex.getVariable(DBGFLAG)).thenReturn("true")
597 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
598 when(mex.getVariable(Prefix+"requestInfo")).thenReturn("<hello>world</hello>")
603 // ***** sendSyncError *****
607 public void sendSyncError() {
608 ExecutionEntity mex = setupMock()
609 def map = setupMap(mex)
610 initSendSyncError(mex)
612 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
613 DeleteVcpeResCustService.sendSyncError(mex)
615 verify(mex, times(2)).getVariable(DBGFLAG)
617 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
619 assertEquals("500", map.get(processName+"ResponseCode"))
620 assertEquals("Fail", map.get(processName+"Status"))
622 def resp = map.get(processName+"Response")
624 assertTrue(resp.indexOf("ErrorMessage>mymsg</") >= 0)
626 verify(mex).setVariable("WorkflowResponse", resp)
631 public void sendSyncError_NotWfe() {
632 ExecutionEntity mex = setupMock()
633 def map = setupMap(mex)
634 initSendSyncError(mex)
636 when(mex.getVariable("WorkflowException")).thenReturn("not a WFE")
638 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
639 DeleteVcpeResCustService.sendSyncError(mex)
641 verify(mex, times(2)).getVariable(DBGFLAG)
643 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
645 assertEquals("500", map.get(processName+"ResponseCode"))
646 assertEquals("Fail", map.get(processName+"Status"))
648 def resp = map.get(processName+"Response")
650 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
652 verify(mex).setVariable("WorkflowResponse", resp)
657 public void sendSyncError_NullWfe() {
658 ExecutionEntity mex = setupMock()
659 def map = setupMap(mex)
660 initSendSyncError(mex)
662 when(mex.getVariable("WorkflowException")).thenReturn(null)
664 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
665 DeleteVcpeResCustService.sendSyncError(mex)
667 verify(mex, times(2)).getVariable(DBGFLAG)
669 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
671 assertEquals("500", map.get(processName+"ResponseCode"))
672 assertEquals("Fail", map.get(processName+"Status"))
674 def resp = map.get(processName+"Response")
676 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
678 verify(mex).setVariable("WorkflowResponse", resp)
683 public void sendSyncError_Ex() {
684 ExecutionEntity mex = setupMock()
685 def map = setupMap(mex)
686 initSendSyncError(mex)
688 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
690 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
692 DeleteVcpeResCustService.sendSyncError(mex)
694 assertFalse(map.containsKey(processName+"ResponseCode"))
697 private initSendSyncError(ExecutionEntity mex) {
698 WorkflowException wfe = mock(WorkflowException.class)
700 when(mex.getVariable(DBGFLAG)).thenReturn("true")
701 when(mex.getVariable("mso-request-id")).thenReturn("mri")
702 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
704 when(wfe.getErrorMessage()).thenReturn("mymsg")
708 // ***** processJavaException *****
712 public void processJavaException() {
713 ExecutionEntity mex = setupMock()
714 def map = setupMap(mex)
715 initProcessJavaException(mex)
717 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
719 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
721 verify(mex, times(2)).getVariable(DBGFLAG)
723 verify(mex).setVariable("prefix", Prefix)
725 def wfe = map.get("WorkflowException")
727 assertEquals("Caught a Java Lang Exception", wfe.getErrorMessage())
732 public void processJavaException_BpmnError() {
733 ExecutionEntity mex = setupMock()
734 def map = setupMap(mex)
735 initProcessJavaException(mex)
737 when(mex.getVariables()).thenThrow(new BpmnError("expected exception"))
739 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
741 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
743 assertFalse(map.containsKey("WorkflowException"))
748 public void processJavaException_Ex() {
749 ExecutionEntity mex = setupMock()
750 def map = setupMap(mex)
751 initProcessJavaException(mex)
753 when(mex.getVariables()).thenThrow(new RuntimeException("expected exception"))
755 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
757 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
759 def wfe = map.get("WorkflowException")
761 assertEquals("Exception in processJavaException method", wfe.getErrorMessage())
764 private initProcessJavaException(ExecutionEntity mex) {
765 when(mex.getVariable(DBGFLAG)).thenReturn("true")
768 private void myMockGetAr(String url, int status, String fileResp) {
769 stubFor(get(urlMatching(url))
770 .willReturn(aResponse()
772 .withHeader("Content-Type", "text/xml")
773 .withBodyFile("VCPE/DeleteVcpeResCustService/" + fileResp)));