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