AT&T 1712 and 1802 release code
[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
22
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
29 import org.junit.Rule
30 import org.junit.Test
31 import org.junit.Ignore
32 import org.mockito.MockitoAnnotations
33 import org.camunda.bpm.engine.delegate.BpmnError
34 import org.openecomp.mso.bpmn.core.WorkflowException
35 import org.openecomp.mso.bpmn.mock.FileUtil
36
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.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetAllottedResource
46 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition
47 import org.openecomp.mso.bpmn.core.domain.VnfResource
48 import org.openecomp.mso.bpmn.core.domain.AllottedResource
49 import org.openecomp.mso.bpmn.core.domain.ModelInfo
50 import org.openecomp.mso.bpmn.core.domain.HomingSolution
51 import org.openecomp.mso.bpmn.core.RollbackData
52 import org.openecomp.mso.bpmn.vcpe.scripts.MapGetter
53 import org.openecomp.mso.bpmn.vcpe.scripts.MapSetter
54
55 import com.github.tomakehurst.wiremock.junit.WireMockRule
56
57 class DeleteVcpeResCustServiceTest extends GroovyTestBase {
58         
59         private static String request
60         
61         @Rule
62         public WireMockRule wireMockRule = new WireMockRule(PORT)
63
64         String Prefix = "DVRCS_"
65         String RbType = "DCRENI_"
66
67         @BeforeClass
68         public static void setUpBeforeClass() {
69                 request = FileUtil.readResourceFile("__files/VCPE/DeleteVcpeResCustService/request.json")
70         }
71           
72     @Before
73         public void init()
74         {
75                 MockitoAnnotations.initMocks(this)
76         }
77         
78         public DeleteVcpeResCustServiceTest() {
79                 super("DeleteVcpeResCustService")
80         }
81         
82         
83         // ***** preProcessRequest *****
84                         
85         @Test
86 //      @Ignore  
87         public void preProcessRequest() {
88                 ExecutionEntity mex = setupMock()
89                 def map = setupMap(mex)
90                 initPreProcess(mex)
91                 
92                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
93                 DeleteVcpeResCustService.preProcessRequest(mex)
94
95                 verify(mex).getVariable(DBGFLAG)
96                 
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"))
107                 
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"))
114                 
115                 def reqinfo = map.get(Prefix+"requestInfo")
116                 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
117                 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
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                 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"))
153                 
154                 def reqinfo = map.get(Prefix+"requestInfo")
155                 println reqinfo
156                 assertTrue(reqinfo.indexOf("<request-id>mri</") >= 0)
157                 assertTrue(reqinfo.indexOf("<source>VID</") >= 0)
158         }
159                         
160         @Test
161 //      @Ignore  
162         public void preProcessRequest_MissingServiceInstanceId() {
163                 ExecutionEntity mex = setupMock()
164                 initPreProcess(mex)
165                 
166                 when(mex.getVariable("serviceInstanceId")).thenReturn(null)
167                 
168                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
169                 
170                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
171         }
172                         
173         @Test
174 //      @Ignore  
175         public void preProcessRequest_BpmnError() {
176                 ExecutionEntity mex = setupMock()
177                 initPreProcess(mex)
178                 
179                 when(mex.getVariable("bpmnRequest")).thenThrow(new BpmnError("expected exception"))
180                 
181                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
182                 
183                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
184         }
185                         
186         @Test
187 //      @Ignore  
188         public void preProcessRequest_Ex() {
189                 ExecutionEntity mex = setupMock()
190                 initPreProcess(mex)
191                 
192                 when(mex.getVariable("bpmnRequest")).thenThrow(new RuntimeException("expected exception"))
193                 
194                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
195                 
196                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.preProcessRequest(mex) }))
197         }
198         
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")
205         }
206         
207         // ***** sendSyncResponse *****
208                         
209         @Test
210 //      @Ignore  
211         public void sendSyncResponse() {
212                 ExecutionEntity mex = setupMock()
213                 def map = setupMap(mex)
214                 initSendSyncResponse(mex)
215                 
216                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
217                 DeleteVcpeResCustService.sendSyncResponse(mex)
218
219                 verify(mex, times(2)).getVariable(DBGFLAG)
220                 
221                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
222                 
223                 assertEquals("202", map.get(processName+"ResponseCode"))
224                 assertEquals("Success", map.get(processName+"Status"))
225                 
226                 def resp = map.get(processName+"Response")
227                 
228                 assertTrue(resp.indexOf('"instanceId":"sii"') >= 0)
229                 assertTrue(resp.indexOf('"requestId":"mri"') >= 0)
230         }
231                         
232         @Test
233 //      @Ignore  
234         public void sendSyncResponse_Ex() {
235                 ExecutionEntity mex = setupMock()
236                 initSendSyncResponse(mex)
237                 
238                 when(mex.getVariable("serviceInstanceId")).thenThrow(new RuntimeException("expected exception"))
239                 
240                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
241                 
242                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.sendSyncResponse(mex) }))
243         }
244         
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")
249         }
250         
251         // ***** prepareServiceDelete *****
252                         
253         @Test
254 //      @Ignore  
255         public void prepareServiceDelete() {
256                 ExecutionEntity mex = setupMock()
257                 def map = setupMap(mex)
258                 initPrepareServiceDelete(mex)
259                 
260                 myMockGetAr("/aai/v11/anytxc", 200, "arGetTXCById.xml");
261                 myMockGetAr("/aai/v11/anybrg", 200, "arGetBRGById.xml");
262                 myMockGetAr("/aai/v11/other", 200, "arGetOtherById.xml");
263                 
264                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
265                 DeleteVcpeResCustService.prepareServiceDelete(mex)
266                 
267                 verify(mex).setVariable(Prefix+"TunnelXConn", true)
268                 assertEquals("ar-txcA", map.get("TXC_allottedResourceId"))
269                 
270                 verify(mex).setVariable(Prefix+"BRG", true)
271                 assertEquals("ar-brgB", map.get("BRG_allottedResourceId"))
272                 
273                 verify(mex).setVariable(Prefix+"vnfsCount", 2)
274                 assertNotNull(map.get(Prefix+"relatedVnfIdList"))
275                 assertEquals("[vnfX, vnfY]", map.get(Prefix+"relatedVnfIdList").toString())
276                 
277                 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
278         }
279                         
280         @Test
281 //      @Ignore  
282         public void prepareServiceDelete_NotFound() {
283                 ExecutionEntity mex = setupMock()
284                 initPrepareServiceDelete(mex)
285                 
286                 when(mex.getVariable("GENGS_FoundIndicator")).thenReturn(false)
287                 
288                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
289                 
290                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
291                 
292                 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
293         }
294                         
295         @Test
296 //      @Ignore  
297         public void prepareServiceDelete_Empty() {
298                 ExecutionEntity mex = setupMock()
299                 def map = setupMap(mex)
300                 initPrepareServiceDelete(mex)
301                 
302                 when(mex.getVariable("GENGS_service")).thenReturn("<empty></empty>")
303                 
304                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
305                 DeleteVcpeResCustService.prepareServiceDelete(mex)
306
307                 verify(mex).getVariable(DBGFLAG)
308                 
309                 verify(mex).setVariable(Prefix+"TunnelXConn", false)
310                 assertNull(map.get("TXC_allottedResourceId"))
311                 
312                 verify(mex).setVariable(Prefix+"BRG", false)
313                 assertNull(map.get("BRG_allottedResourceId"))
314                 
315                 assertEquals(0, map.get(Prefix+"vnfsCount"))
316                 assertFalse(map.containsKey(Prefix+"relatedVnfIdList"))
317                 
318                 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
319         }
320                         
321         @Test
322 //      @Ignore  
323         public void prepareServiceDelete_BpmnError() {
324                 ExecutionEntity mex = setupMock()
325                 initPrepareServiceDelete(mex)
326                 
327                 when(mex.getVariable("GENGS_FoundIndicator")).thenThrow(new BpmnError("expected exception"))
328                 
329                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
330                 
331                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
332                 
333                 verify(mex, never()).setVariable(processName+"WorkflowResponseSent", "true")
334         }
335                         
336         @Test
337 //      @Ignore  
338         public void prepareServiceDelete_Ex() {
339                 ExecutionEntity mex = setupMock()
340                 initPrepareServiceDelete(mex)
341                 
342                 when(mex.getVariable("GENGS_FoundIndicator")).thenThrow(new RuntimeException("expected exception"))
343                 
344                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
345                 
346                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareServiceDelete(mex) }))
347                 
348                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
349         }
350         
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"))
359         }
360         
361         // ***** getAaiAr *****
362         
363         @Test
364 //      @Ignore
365         public void getAaiAr() {
366                 myMockGetAr("/myurl/ar1", 200, "arGetBRGById.xml");
367                 
368                 ExecutionEntity mex = setupMock()
369                 initGetAaiAr(mex)
370                                 
371                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
372                 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
373                 
374                 assertEquals("BRG", type)
375                 assertEquals("ar-brgB", id)
376         }
377         
378         @Test
379 //      @Ignore
380         public void getAaiAr_401() {
381                 myMockGetAr("/myurl/ar1", 401, "arGetBRGById.xml");
382                 
383                 ExecutionEntity mex = setupMock()
384                 initGetAaiAr(mex)
385                                 
386                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
387                 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
388                 
389                 assertEquals(null, type)
390                 assertEquals(null, id)
391         }
392         
393         @Test
394 //      @Ignore
395         public void getAaiAr_EmptyResponse() {
396                 myMockGetAr("/myurl/ar1", 200, "empty.txt");
397                 
398                 ExecutionEntity mex = setupMock()
399                 initGetAaiAr(mex)
400                                 
401                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
402                 def (type, id) = DeleteVcpeResCustService.getAaiAr(mex, "/myurl/ar1")
403                 
404                 assertEquals(null, type)
405                 assertEquals(null, id)
406         }
407         
408         private void initGetAaiAr(ExecutionEntity mex) {
409                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
410                 when(mex.getVariable("URN_aai_endpoint")).thenReturn(aaiUriPfx)
411         }
412         
413         // ***** prepareVnfAndModulesDelete *****
414                         
415         @Test
416 //      @Ignore  
417         public void prepareVnfAndModulesDelete() {
418                 ExecutionEntity mex = setupMock()
419                 initPrepareVnfAndModulesDelete(mex)
420                 
421                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
422                 DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex)
423
424                 verify(mex).getVariable(DBGFLAG)
425                 
426                 verify(mex).setVariable("vnfId", "vnfB")
427         }
428                         
429         @Test
430 //      @Ignore  
431         public void prepareVnfAndModulesDelete_Empty() {
432                 ExecutionEntity mex = setupMock()
433                 initPrepareVnfAndModulesDelete(mex)
434                 
435                 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenReturn(new LinkedList())
436                 
437                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
438                 DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex)
439
440                 verify(mex).getVariable(DBGFLAG)
441                 
442                 verify(mex).setVariable("vnfId", "")
443         }
444                         
445         @Test
446 //      @Ignore  
447         public void prepareVnfAndModulesDelete_Ex() {
448                 ExecutionEntity mex = setupMock()
449                 initPrepareVnfAndModulesDelete(mex)
450                 
451                 when(mex.getVariable(Prefix+"relatedVnfIdList")).thenThrow(new RuntimeException("expected exception"))
452                 
453                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
454                 
455                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.prepareVnfAndModulesDelete(mex) }))
456         }
457         
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)
462         }
463         
464         // ***** validateVnfDelete *****
465                         
466         @Test
467 //      @Ignore  
468         public void validateVnfDelete() {
469                 ExecutionEntity mex = setupMock()
470                 initValidateVnfDelete(mex)
471                 
472                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
473                 DeleteVcpeResCustService.validateVnfDelete(mex)
474
475                 verify(mex).getVariable(DBGFLAG)
476                 
477                 verify(mex).setVariable(Prefix+"vnfsDeletedCount", 3)
478         }
479                         
480         @Test
481 //      @Ignore  
482         public void validateVnfDelete_Ex() {
483                 ExecutionEntity mex = setupMock()
484                 initValidateVnfDelete(mex)
485                 
486                 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenThrow(new RuntimeException("expected exception"))
487                 
488                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
489                 
490                 assertTrue(doBpmnError({ _ -> DeleteVcpeResCustService.validateVnfDelete(mex) }))
491         }
492         
493         private initValidateVnfDelete(ExecutionEntity mex) {
494                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
495                 when(mex.getVariable(Prefix+"vnfsDeletedCount")).thenReturn(2)
496         }
497         
498         // ***** postProcessResponse *****
499                         
500         @Test
501 //      @Ignore  
502         public void postProcessResponse() {
503                 ExecutionEntity mex = setupMock()
504                 def map = setupMap(mex)
505                 initPostProcessResponse(mex)
506                 
507                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
508                 DeleteVcpeResCustService.postProcessResponse(mex)
509
510                 verify(mex).getVariable(DBGFLAG)
511                 
512                 assertEquals(true, map.get(Prefix+"Success"))
513                 
514                 def req = map.get(Prefix+"CompleteMsoProcessRequest")
515                 
516                 assertTrue(req.indexOf("<request-id>mri</") >= 0)
517                 assertTrue(req.indexOf("<source>mysrc</") >= 0)
518         }
519                         
520         @Test
521 //      @Ignore  
522         public void postProcessResponse_BpmnError() {
523                 ExecutionEntity mex = setupMock()
524                 initPostProcessResponse(mex)
525                 
526                 when(mex.getVariable("source")).thenThrow(new BpmnError("expected exception"))
527                 
528                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
529                 
530                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.postProcessResponse(mex) }))
531         }
532                         
533         @Test
534 //      @Ignore  
535         public void postProcessResponse_Ex() {
536                 ExecutionEntity mex = setupMock()
537                 initPostProcessResponse(mex)
538                 
539                 when(mex.getVariable("source")).thenThrow(new RuntimeException("expected exception"))
540                 
541                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
542                 
543                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.postProcessResponse(mex) }))
544         }
545         
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")
550         }
551         
552         
553         // ***** prepareFalloutRequest *****
554                         
555         @Test
556 //      @Ignore  
557         public void prepareFalloutRequest() {
558                 ExecutionEntity mex = setupMock()
559                 def map = setupMap(mex)
560                 initPrepareFalloutRequest(mex)
561                 
562                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
563                 DeleteVcpeResCustService.prepareFalloutRequest(mex)
564
565                 verify(mex, times(2)).getVariable(DBGFLAG)
566                 
567                 def fo = map.get(Prefix+"falloutRequest")
568                 
569                 assertTrue(fo.indexOf("<hello>world</") >= 0)
570                 assertTrue(fo.indexOf("ErrorMessage>mymsg</") >= 0)
571                 assertTrue(fo.indexOf("ErrorCode>999</") >= 0)
572         }
573                         
574         @Test
575 //      @Ignore  
576         public void prepareFalloutRequest_Ex() {
577                 ExecutionEntity mex = setupMock()
578                 def map = setupMap(mex)
579                 initPrepareFalloutRequest(mex)
580                 
581                 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
582                 
583                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
584                 
585                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.prepareFalloutRequest(mex) }))
586         }
587         
588         private initPrepareFalloutRequest(ExecutionEntity mex) {
589                 WorkflowException wfe = mock(WorkflowException.class)
590                 
591                 when(wfe.getErrorMessage()).thenReturn("mymsg")
592                 when(wfe.getErrorCode()).thenReturn(999)
593                 
594                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
595                 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
596                 when(mex.getVariable(Prefix+"requestInfo")).thenReturn("<hello>world</hello>")
597                 
598                 return wfe
599         }
600         
601         // ***** sendSyncError *****
602                         
603         @Test
604 //      @Ignore  
605         public void sendSyncError() {
606                 ExecutionEntity mex = setupMock()
607                 def map = setupMap(mex)
608                 initSendSyncError(mex)
609                 
610                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
611                 DeleteVcpeResCustService.sendSyncError(mex)
612
613                 verify(mex, times(2)).getVariable(DBGFLAG)
614                 
615                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
616                 
617                 assertEquals("500", map.get(processName+"ResponseCode"))
618                 assertEquals("Fail", map.get(processName+"Status"))
619                 
620                 def resp = map.get(processName+"Response")
621                 
622                 assertTrue(resp.indexOf("ErrorMessage>mymsg</") >= 0)
623                 
624                 verify(mex).setVariable("WorkflowResponse", resp)
625         }
626                         
627         @Test
628 //      @Ignore  
629         public void sendSyncError_NotWfe() {
630                 ExecutionEntity mex = setupMock()
631                 def map = setupMap(mex)
632                 initSendSyncError(mex)
633                 
634                 when(mex.getVariable("WorkflowException")).thenReturn("not a WFE")
635                 
636                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
637                 DeleteVcpeResCustService.sendSyncError(mex)
638
639                 verify(mex, times(2)).getVariable(DBGFLAG)
640                 
641                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
642                 
643                 assertEquals("500", map.get(processName+"ResponseCode"))
644                 assertEquals("Fail", map.get(processName+"Status"))
645                 
646                 def resp = map.get(processName+"Response")
647                 
648                 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
649                 
650                 verify(mex).setVariable("WorkflowResponse", resp)
651         }
652                         
653         @Test
654 //      @Ignore  
655         public void sendSyncError_NullWfe() {
656                 ExecutionEntity mex = setupMock()
657                 def map = setupMap(mex)
658                 initSendSyncError(mex)
659                 
660                 when(mex.getVariable("WorkflowException")).thenReturn(null)
661                 
662                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
663                 DeleteVcpeResCustService.sendSyncError(mex)
664
665                 verify(mex, times(2)).getVariable(DBGFLAG)
666                 
667                 verify(mex).setVariable(processName+"WorkflowResponseSent", "true")
668                 
669                 assertEquals("500", map.get(processName+"ResponseCode"))
670                 assertEquals("Fail", map.get(processName+"Status"))
671                 
672                 def resp = map.get(processName+"Response")
673                 
674                 assertTrue(resp.indexOf("ErrorMessage>Sending Sync Error.</") >= 0)
675                 
676                 verify(mex).setVariable("WorkflowResponse", resp)
677         }
678                         
679         @Test
680 //      @Ignore  
681         public void sendSyncError_Ex() {
682                 ExecutionEntity mex = setupMock()
683                 def map = setupMap(mex)
684                 initSendSyncError(mex)
685                 
686                 when(mex.getVariable("WorkflowException")).thenThrow(new RuntimeException("expected exception"))
687                 
688                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
689                 
690                 DeleteVcpeResCustService.sendSyncError(mex)
691                 
692                 assertFalse(map.containsKey(processName+"ResponseCode"))
693         }
694         
695         private initSendSyncError(ExecutionEntity mex) {
696                 WorkflowException wfe = mock(WorkflowException.class)
697                 
698                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
699                 when(mex.getVariable("mso-request-id")).thenReturn("mri")
700                 when(mex.getVariable("WorkflowException")).thenReturn(wfe)
701                 
702                 when(wfe.getErrorMessage()).thenReturn("mymsg")
703         }
704         
705         
706         // ***** processJavaException *****
707                         
708         @Test
709 //      @Ignore  
710         public void processJavaException() {
711                 ExecutionEntity mex = setupMock()
712                 def map = setupMap(mex)
713                 initProcessJavaException(mex)
714                 
715                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
716                 
717                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
718
719                 verify(mex, times(2)).getVariable(DBGFLAG)
720                 
721                 verify(mex).setVariable("prefix", Prefix)
722                 
723                 def wfe = map.get("WorkflowException")
724                 
725                 assertEquals("Caught a Java Lang Exception", wfe.getErrorMessage())
726         }
727                         
728         @Test
729 //      @Ignore  
730         public void processJavaException_BpmnError() {
731                 ExecutionEntity mex = setupMock()
732                 def map = setupMap(mex)
733                 initProcessJavaException(mex)
734                 
735                 when(mex.getVariables()).thenThrow(new BpmnError("expected exception"))
736                 
737                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
738                 
739                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
740                 
741                 assertFalse(map.containsKey("WorkflowException"))
742         }
743                         
744         @Test
745 //      @Ignore  
746         public void processJavaException_Ex() {
747                 ExecutionEntity mex = setupMock()
748                 def map = setupMap(mex)
749                 initProcessJavaException(mex)
750                 
751                 when(mex.getVariables()).thenThrow(new RuntimeException("expected exception"))
752                 
753                 DeleteVcpeResCustService DeleteVcpeResCustService = new DeleteVcpeResCustService()
754                 
755                 assertTrue(doBpmnError( { _ -> DeleteVcpeResCustService.processJavaException(mex) }))
756                 
757                 def wfe = map.get("WorkflowException")
758                 
759                 assertEquals("Exception in processJavaException method", wfe.getErrorMessage())
760         }
761         
762         private initProcessJavaException(ExecutionEntity mex) {
763                 when(mex.getVariable(DBGFLAG)).thenReturn("true")
764         }
765         
766         private void myMockGetAr(String url, int status, String fileResp) {
767                 stubFor(get(urlMatching(url))
768                                 .willReturn(aResponse()
769                                                 .withStatus(status)
770                                                 .withHeader("Content-Type", "text/xml")
771                                                 .withBodyFile("VCPE/DeleteVcpeResCustService/" + fileResp)));
772         }
773 }