df7c0cff97e1db095ec6ab19505c92f57f085ecb
[so.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20 package org.openecomp.mso.bpmn.vcpe.scripts
21 \r
22 \r
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
31 import org.junit.Test
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
37
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
55
56 import com.github.tomakehurst.wiremock.junit.WireMockRule\r
57 \r
58 class DeleteVcpeResCustServiceTest extends GroovyTestBase {
59         
60         private static String request\r
61         \r
62         @Rule\r
63         public WireMockRule wireMockRule = new WireMockRule(PORT)
64 \r
65         String Prefix = "DVRCS_"
66         String RbType = "DCRENI_"\r
67
68         @BeforeClass
69         public static void setUpBeforeClass() {
70                 super.setUpBeforeClass()
71                 request = FileUtil.readResourceFile("__files/VCPE/DeleteVcpeResCustService/request.json")
72         }
73           \r
74     @Before\r
75         public void init()\r
76         {\r
77                 MockitoAnnotations.initMocks(this)\r
78         }
79         
80         public DeleteVcpeResCustServiceTest() {
81                 super("DeleteVcpeResCustService")
82         }
83         
84         
85         // ***** preProcessRequest *****\r
86                         \r
87         @Test\r
88 //      @Ignore  \r
89         public void preProcessRequest() {\r
90                 ExecutionEntity mex = setupMock()
91                 def map = setupMap(mex)
92                 initPreProcess(mex)
93                 \r
94                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()\r
95                 DeleteVcpeResCustService.preProcessRequest(mex)\r
96 \r
97                 verify(mex).getVariable(DBGFLAG)\r
98                 verify(mex).setVariable("prefix", Prefix)
99                 verify(mex).setVariable("DeleteVcpeResCustServiceRequest", request)
100                 verify(mex).setVariable("msoRequestId", "mri")
101                 verify(mex).setVariable("requestAction", "ra")
102                 verify(mex).setVariable("source", "VID")
103                 verify(mex).setVariable("globalSubscriberId", CUST)
104                 verify(mex).setVariable("globalCustomerId", CUST)
105                 verify(mex).setVariable("disableRollback", "false")
106                 verify(mex).setVariable("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
107                 verify(mex).setVariable("subscriptionServiceType", SVC) 
108                 
109                 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
110                 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
111                 verify(mex).setVariable("sdncVersion", "1702")
112                 verify(mex).setVariable("GENGS_type", "service-instance")
113                 assertTrue(map.containsKey(Prefix+"requestInfo"))
114                 
115                 def reqinfo = map.get(Prefix+"requestInfo")
116                 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
117                 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)\r
118         }
119                         
120         @Test
121 //      @Ignore  
122         public void preProcessRequest_EmptyParts() {
123                 ExecutionEntity mex = setupMock()
124                 def map = setupMap(mex)
125                 initPreProcess(mex)
126                 
127                 def req = request
128                                         .replace('"source"', '"sourceXXX"')
129                 
130                 when(mex.getVariable("bpmnRequest")).thenReturn(req)
131                 
132                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
133                 DeleteVcpeResCustService.preProcessRequest(mex)
134
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) 
146                 
147                 verify(mex).setVariable("lcpCloudRegionId", "mdt1")
148                 verify(mex).setVariable("tenantId", "8b1df54faa3b49078e3416e21370a3ba")
149                 verify(mex).setVariable("sdncVersion", "1702")
150                 verify(mex).setVariable("GENGS_type", "service-instance")
151                 assertTrue(map.containsKey(Prefix+"requestInfo"))
152                 
153                 def reqinfo = map.get(Prefix+"requestInfo")
154                 println reqinfo
155                 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
156                 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
157         }
158                         
159         @Test
160 //      @Ignore  
161         public void preProcessRequest_MissingServiceInstanceId() {
162                 ExecutionEntity mex = setupMock()
163                 initPreProcess(mex)
164                 
165                 when(mex.getVariable("serviceInstanceId")).thenReturn(null)
166                 
167                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
168                 
169                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
170         }
171                         
172         @Test
173 //      @Ignore  
174         public void preProcessRequest_BpmnError() {
175                 ExecutionEntity mex = setupMock()
176                 initPreProcess(mex)
177                 
178                 when(mex.getVariable("bpmnRequest")).thenThrow(new BpmnError("expected exception"))
179                 
180                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
181                 
182                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
183         }
184                         
185         @Test
186 //      @Ignore  
187         public void preProcessRequest_Ex() {
188                 ExecutionEntity mex = setupMock()
189                 initPreProcess(mex)
190                 
191                 when(mex.getVariable("bpmnRequest")).thenThrow(new RuntimeException("expected exception"))
192                 
193                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
194                 
195                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
196         }
197         
198         private void initPreProcess(ExecutionEntity mex) {
199                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
200                 when(mex.getVariable("bpmnRequest")).thenReturn(request)
201                 when(mex.getVariable("mso-request-id")).thenReturn("mri")
202                 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
203                 when(mex.getVariable("requestAction")).thenReturn("ra")
204         }
205         
206         // ***** sendSyncResponse *****
207                         
208         @Test
209 //      @Ignore  
210         public void sendSyncResponse() {
211                 ExecutionEntity mex = setupMock()
212                 def map = setupMap(mex)
213                 initSendSyncResponse(mex)
214                 
215                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
216                 DeleteVcpeResCustService.sendSyncResponse(mex)
217
218                 verify(mex, times(2)).getVariable(DBGFLAG)
219                 
220                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
221                 
222                 assertEquals("202", map.get(processName+"ResponseCode"))
223                 assertEquals("Success", map.get(processName+"Status"))
224                 
225                 def resp = map.get(processName+"Response")
226                 
227                 assertTrue(resp.indexOf('"instanceId":"sii"') >= 0)
228                 assertTrue(resp.indexOf('"requestId":"mri"') >= 0)
229         }
230                         
231         @Test
232 //      @Ignore  
233         public void sendSyncResponse_Ex() {
234                 ExecutionEntity mex = setupMock()
235                 initSendSyncResponse(mex)
236                 
237                 when(mex.getVariable("serviceInstanceId")).thenThrow(new RuntimeException("expected exception"))
238                 
239                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
240                 
241                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.sendSyncResponse(mex) }))
242         }
243         
244         private initSendSyncResponse(ExecutionEntity mex) {
245                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
246                 when(mex.getVariable("mso-request-id")).thenReturn("mri")
247                 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
248         }
249         
250         // ***** prepareServiceDelete *****
251                         
252         @Test
253 //      @Ignore  
254         public void prepareServiceDelete() {
255                 ExecutionEntity mex = setupMock()
256                 def map = setupMap(mex)
257                 initPrepareServiceDelete(mex)
258                 
259                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
260                 DeleteVcpeResCustService.prepareServiceDelete(mex)
261
262                 verify(mex).getVariable(DBGFLAG)
263                 
264                 verify(mex).setVariable(Prefix+"TunnelXConn", true)
265                 assertEquals("txcA", map.get("TXC_allottedResourceId"))
266                 
267                 verify(mex).setVariable(Prefix+"BRG", true)
268                 assertEquals("brgB", map.get("BRG_allottedResourceId"))
269                 
270                 verify(mex).setVariable(Prefix+"vnfsCount", 2)
271                 assertNotNull(map.get(Prefix+"relatedVnfIdList"))
272                 assertEquals("[vnfX, vnfY]", map.get(Prefix+"relatedVnfIdList").toString())
273                 
274                 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
275         }
276                         
277         @Test
278 //      @Ignore  
279         public void prepareServiceDelete_NotFound() {
280                 ExecutionEntity mex = setupMock()
281                 initPrepareServiceDelete(mex)
282                 
283                 when(mex.getVariable("GENGS_FoundIndicator")).thenReturn(false)
284                 
285                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
286                 
287                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
288                 
289                 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
290         }
291                         
292         @Test
293 //      @Ignore  
294         public void prepareServiceDelete_Empty() {
295                 ExecutionEntity mex = setupMock()
296                 def map = setupMap(mex)
297                 initPrepareServiceDelete(mex)
298                 
299                 when(mex.getVariable("GENGS_service")).thenReturn("<empty></empty>")
300                 
301                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
302                 DeleteVcpeResCustService.prepareServiceDelete(mex)
303
304                 verify(mex).getVariable(DBGFLAG)
305                 
306                 verify(mex).setVariable(Prefix+"TunnelXConn", false)
307                 assertNull(map.get("TXC_allottedResourceId"))
308                 
309                 verify(mex).setVariable(Prefix+"BRG", false)
310                 assertNull(map.get("BRG_allottedResourceId"))
311                 
312                 assertEquals(0, map.get(Prefix+"vnfsCount"))
313                 assertFalse(map.containsKey(Prefix+"relatedVnfIdList"))
314                 
315                 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
316         }
317                         
318         @Test
319 //      @Ignore  
320         public void prepareServiceDelete_BpmnError() {
321                 ExecutionEntity mex = setupMock()
322                 initPrepareServiceDelete(mex)
323                 
324                 when(mex.getVariable("GENGS_FoundIndicator")).thenThrow(new BpmnError("expected exception"))
325                 
326                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
327                 
328                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
329                 
330                 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
331         }
332                         
333         @Test
334 //      @Ignore  
335         public void prepareServiceDelete_Ex() {
336                 ExecutionEntity mex = setupMock()
337                 initPrepareServiceDelete(mex)
338                 
339                 when(mex.getVariable("GENGS_FoundIndicator")).thenThrow(new RuntimeException("expected exception"))
340                 
341                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
342                 
343                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
344                 
345                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
346         }
347         
348         private initPrepareServiceDelete(ExecutionEntity mex) {
349                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
350                 when(mex.getVariable("serviceInstanceId")).thenReturn("sii")
351                 when(mex.getVariable("GENGS_FoundIndicator")).thenReturn(true)
352                 when(mex.getVariable("mso-request-id")).thenReturn("mri")
353                 when(mex.getVariable("DeleteVcpeResCustServiceRequest")).thenReturn(request)
354                 when(mex.getVariable("GENGS_service")).thenReturn(FileUtil.readResourceFile("__files/VCPE/DeleteVcpeResCustService/serviceToDelete.xml"))
355         }
356         
357         // ***** prepareVnfAndModulesDelete *****
358                         
359         @Test
360 //      @Ignore  
361         public void prepareVnfAndModulesDelete() {
362                 ExecutionEntity mex = setupMock()
363                 initPrepareVnfAndModulesDelete(mex)
364                 
365                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
366                 DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex)
367
368                 verify(mex).getVariable(DBGFLAG)
369                 
370                 verify(mex).setVariable("vnfId", "vnfB")
371         }
372                         
373         @Test
374 //      @Ignore  
375         public void prepareVnfAndModulesDelete_Empty() {
376                 ExecutionEntity mex = setupMock()
377                 initPrepareVnfAndModulesDelete(mex)
378                 
379                 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenReturn(new LinkedList())
380                 
381                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
382                 DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex)
383
384                 verify(mex).getVariable(DBGFLAG)
385                 
386                 verify(mex).setVariable("vnfId", "")
387         }
388                         
389         @Test
390 //      @Ignore  
391         public void prepareVnfAndModulesDelete_Ex() {
392                 ExecutionEntity mex = setupMock()
393                 initPrepareVnfAndModulesDelete(mex)
394                 
395                 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenThrow(new RuntimeException("expected exception"))
396                 
397                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
398                 
399                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex) }))
400         }
401         
402         private initPrepareVnfAndModulesDelete(ExecutionEntity mex) {
403                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
404                 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenReturn(Arrays.asList("vnfA", "vnfB", "vnfC"))
405                 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenReturn(1)
406         }
407         
408         // ***** validateVnfDelete *****
409                         
410         @Test
411 //      @Ignore  
412         public void validateVnfDelete() {
413                 ExecutionEntity mex = setupMock()
414                 initValidateVnfDelete(mex)
415                 
416                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
417                 DeleteVcpeResCustService.validateVnfDelete(mex)
418
419                 verify(mex).getVariable(DBGFLAG)
420                 
421                 verify(mex).setVariable(Prefix+"vnfsDeletedCount", 3)
422         }
423                         
424         @Test
425 //      @Ignore  
426         public void validateVnfDelete_Ex() {
427                 ExecutionEntity mex = setupMock()
428                 initValidateVnfDelete(mex)
429                 
430                 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenThrow(new RuntimeException("expected exception"))
431                 
432                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
433                 
434                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.validateVnfDelete(mex) }))
435         }
436         
437         private initValidateVnfDelete(ExecutionEntity mex) {
438                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
439                 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenReturn(2)
440         }
441         
442         // ***** postProcessResponse *****
443                         
444         @Test
445 //      @Ignore  
446         public void postProcessResponse() {
447                 ExecutionEntity mex = setupMock()
448                 def map = setupMap(mex)
449                 initPostProcessResponse(mex)
450                 
451                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
452                 DeleteVcpeResCustService.postProcessResponse(mex)
453
454                 verify(mex).getVariable(DBGFLAG)
455                 
456                 assertEquals(true, map.get(Prefix+"Success"))
457                 
458                 def req = map.get(Prefix+"CompleteMsoProcessRequest")
459                 
460                 assertTrue(req.indexOf("<request-id>mri</") >= 0)
461                 assertTrue(req.indexOf("<source>mysrc</") >= 0)
462         }
463                         
464         @Test
465 //      @Ignore  
466         public void postProcessResponse_BpmnError() {
467                 ExecutionEntity mex = setupMock()
468                 initPostProcessResponse(mex)
469                 
470                 when(mex.getVariable("source")).thenThrow(new BpmnError("expected exception"))
471                 
472                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
473                 
474                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.postProcessResponse(mex) }))
475         }
476                         
477         @Test
478 //      @Ignore  
479         public void postProcessResponse_Ex() {
480                 ExecutionEntity mex = setupMock()
481                 initPostProcessResponse(mex)
482                 
483                 when(mex.getVariable("source")).thenThrow(new RuntimeException("expected exception"))
484                 
485                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
486                 
487                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.postProcessResponse(mex) }))
488         }
489         
490         private initPostProcessResponse(ExecutionEntity mex) {
491                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
492                 when(mex.getVariable("source")).thenReturn("mysrc")
493                 when(mex.getVariable("msoRequestId")).thenReturn("mri")
494         }
495         
496         
497         // ***** prepareFalloutRequest *****
498                         
499         @Test
500 //      @Ignore  
501         public void prepareFalloutRequest() {
502                 ExecutionEntity mex = setupMock()
503                 def map = setupMap(mex)
504                 initPrepareFalloutRequest(mex)
505                 
506                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
507                 DeleteVcpeResCustService.prepareFalloutRequest(mex)
508
509                 verify(mex, times(2)).getVariable(DBGFLAG)
510                 
511                 def fo = map.get(Prefix+"falloutRequest")
512                 
513                 assertTrue(fo.indexOf("<hello>world</") >= 0)
514                 assertTrue(fo.indexOf("ErrorMessage>mymsg</") >= 0)
515                 assertTrue(fo.indexOf("ErrorCode>999</") >= 0)
516         }
517                         
518         @Test
519 //      @Ignore  
520         public void prepareFalloutRequest_Ex() {
521                 ExecutionEntity mex = setupMock()
522                 def map = setupMap(mex)
523                 initPrepareFalloutRequest(mex)
524                 
525                 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
526                 
527                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
528                 
529                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.prepareFalloutRequest(mex) }))
530         }
531         
532         private initPrepareFalloutRequest(ExecutionEntity mex) {
533                 WorkflowException wfe = mock(WorkflowException.class)
534                 
535                 when(wfe.getErrorMessage()).thenReturn("mymsg")
536                 when(wfe.getErrorCode()).thenReturn(999)
537                 
538                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
539                 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
540                 when(mex.getVariable(Prefix+"requestInfo")).thenReturn("<hello>world</hello>")
541                 
542                 return wfe
543         }
544         
545         // ***** sendSyncError *****
546                         
547         @Test
548 //      @Ignore  
549         public void sendSyncError() {
550                 ExecutionEntity mex = setupMock()
551                 def map = setupMap(mex)
552                 initSendSyncError(mex)
553                 
554                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
555                 DeleteVcpeResCustService.sendSyncError(mex)
556
557                 verify(mex, times(2)).getVariable(DBGFLAG)
558                 
559                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
560                 
561                 assertEquals("500", map.get(processName+"ResponseCode"))
562                 assertEquals("Fail", map.get(processName+"Status"))
563                 
564                 def resp = map.get(processName+"Response")
565                 
566                 assertTrue(resp.indexOf("ErrorMessage>mymsg</") >= 0)
567                 
568                 verify(mex).setVariable("WorkflowResponse", resp)
569         }
570                         
571         @Test
572 //      @Ignore  
573         public void sendSyncError_NotWfe() {
574                 ExecutionEntity mex = setupMock()
575                 def map = setupMap(mex)
576                 initSendSyncError(mex)
577                 
578                 when(mex.getVariable("WorkflowException")).thenReturn("not a WFE")
579                 
580                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
581                 DeleteVcpeResCustService.sendSyncError(mex)
582
583                 verify(mex, times(2)).getVariable(DBGFLAG)
584                 
585                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
586                 
587                 assertEquals("500", map.get(processName+"ResponseCode"))
588                 assertEquals("Fail", map.get(processName+"Status"))
589                 
590                 def resp = map.get(processName+"Response")
591                 
592                 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
593                 
594                 verify(mex).setVariable("WorkflowResponse", resp)
595         }
596                         
597         @Test
598 //      @Ignore  
599         public void sendSyncError_NullWfe() {
600                 ExecutionEntity mex = setupMock()
601                 def map = setupMap(mex)
602                 initSendSyncError(mex)
603                 
604                 when(mex.getVariable("WorkflowException")).thenReturn(null)
605                 
606                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
607                 DeleteVcpeResCustService.sendSyncError(mex)
608
609                 verify(mex, times(2)).getVariable(DBGFLAG)
610                 
611                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
612                 
613                 assertEquals("500", map.get(processName+"ResponseCode"))
614                 assertEquals("Fail", map.get(processName+"Status"))
615                 
616                 def resp = map.get(processName+"Response")
617                 
618                 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
619                 
620                 verify(mex).setVariable("WorkflowResponse", resp)
621         }
622                         
623         @Test
624 //      @Ignore  
625         public void sendSyncError_Ex() {
626                 ExecutionEntity mex = setupMock()
627                 def map = setupMap(mex)
628                 initSendSyncError(mex)
629                 
630                 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
631                 
632                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
633                 
634                 DeleteVcpeResCustService.sendSyncError(mex)
635                 
636                 assertFalse(map.containsKey(processName+"ResponseCode"))
637         }
638         
639         private initSendSyncError(ExecutionEntity mex) {
640                 WorkflowException wfe = mock(WorkflowException.class)
641                 
642                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
643                 when(mex.getVariable("mso-request-id")).thenReturn("mri")
644                 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
645                 
646                 when(wfe.getErrorMessage()).thenReturn("mymsg")
647         }
648         
649         
650         // ***** processJavaException *****
651                         
652         @Test
653 //      @Ignore  
654         public void processJavaException() {
655                 ExecutionEntity mex = setupMock()
656                 def map = setupMap(mex)
657                 initProcessJavaException(mex)
658                 
659                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
660                 
661                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
662
663                 verify(mex, times(2)).getVariable(DBGFLAG)
664                 
665                 verify(mex).setVariable("prefix", Prefix)
666                 
667                 def wfe = map.get("WorkflowException")
668                 
669                 assertEquals("Caught a Java Lang Exception", wfe.getErrorMessage())
670         }
671                         
672         @Test
673 //      @Ignore  
674         public void processJavaException_BpmnError() {
675                 ExecutionEntity mex = setupMock()
676                 def map = setupMap(mex)
677                 initProcessJavaException(mex)
678                 
679                 when(mex.getVariables()).thenThrow(new BpmnError("expected exception"))
680                 
681                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
682                 
683                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
684                 
685                 assertFalse(map.containsKey("WorkflowException"))
686         }
687                         
688         @Test
689 //      @Ignore  
690         public void processJavaException_Ex() {
691                 ExecutionEntity mex = setupMock()
692                 def map = setupMap(mex)
693                 initProcessJavaException(mex)
694                 
695                 when(mex.getVariables()).thenThrow(new RuntimeException("expected exception"))
696                 
697                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
698                 
699                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
700                 
701                 def wfe = map.get("WorkflowException")
702                 
703                 assertEquals("Exception in processJavaException method", wfe.getErrorMessage())
704         }
705         
706         private initProcessJavaException(ExecutionEntity mex) {
707                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
708         }\r
709 }