3db2b2d96d1e69a0c1c52b768293974bb3b41eb8
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2019 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
21 package org.onap.so.apihandlerinfra;
22
23 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
24 import static org.hamcrest.CoreMatchers.containsString;
25 import static org.hamcrest.CoreMatchers.equalTo;
26 import static org.hamcrest.CoreMatchers.is;
27 import static org.junit.Assert.assertEquals;
28 import static org.junit.Assert.assertFalse;
29 import static org.junit.Assert.assertThat;
30 import static org.junit.Assert.assertTrue;
31 import static org.mockito.Mockito.doReturn;
32 import static org.mockito.Mockito.when;
33 import java.sql.Timestamp;
34 import java.text.SimpleDateFormat;
35 import java.time.Instant;
36 import java.time.temporal.ChronoUnit;
37 import javax.ws.rs.core.Response;
38 import org.apache.commons.lang.StringUtils;
39 import org.junit.Before;
40 import org.junit.Rule;
41 import org.junit.Test;
42 import org.junit.rules.ExpectedException;
43 import org.junit.runner.RunWith;
44 import org.mockito.InjectMocks;
45 import org.mockito.Mock;
46 import org.mockito.junit.MockitoJUnitRunner;
47 import org.onap.so.apihandler.common.ResponseBuilder;
48 import org.onap.so.apihandlerinfra.exceptions.ApiException;
49 import org.onap.so.apihandlerinfra.exceptions.ContactCamundaException;
50 import org.onap.so.apihandlerinfra.exceptions.ValidateException;
51 import org.onap.so.constants.OrchestrationRequestFormat;
52 import org.onap.so.constants.Status;
53 import org.onap.so.db.request.beans.InfraActiveRequests;
54 import org.onap.so.db.request.client.RequestsDbClient;
55 import org.onap.so.serviceinstancebeans.InstanceReferences;
56 import org.onap.so.serviceinstancebeans.Request;
57 import org.onap.so.serviceinstancebeans.RequestStatus;
58 import org.springframework.core.env.Environment;
59
60 @RunWith(MockitoJUnitRunner.class)
61 public class OrchestrationRequestsUnitTest {
62     @Mock
63     private RequestsDbClient requestDbClient;
64     @Mock
65     private MsoRequest msoRequest;
66     @Mock
67     private ResponseBuilder builder;
68     @Mock
69     private Response response;
70     @Mock
71     private CamundaRequestHandler camundaRequestHandler;
72     @Mock
73     private Environment env;
74     @Rule
75     public ExpectedException thrown = ExpectedException.none();
76     @InjectMocks
77     private OrchestrationRequests orchestrationRequests;
78
79     private static final String REQUEST_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebba";
80     private static final String SERVICE_INSTANCE_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebbb";
81     private static final String ORIGINAL_REQUEST_ID = "8f2d38a6-7c20-465a-bd7e-075645f1394b";
82     private static final String SERVICE = "service";
83     private static final String EXT_SYSTEM_ERROR_SOURCE = "external system error source";
84     private static final String FLOW_STATUS = "FlowStatus";
85     private static final String RETRY_STATUS_MESSAGE = "RetryStatusMessage";
86     private static final String ROLLBACK_STATUS_MESSAGE = "RollbackStatusMessage";
87     private static final String TASK_INFORMATION = " TASK INFORMATION: Last task executed: Call SDNC";
88     private InfraActiveRequests iar;
89     boolean includeCloudRequest = false;
90     private static final String ROLLBACK_EXT_SYSTEM_ERROR_SOURCE = "SDNC";
91     private Timestamp startTime = new Timestamp(System.currentTimeMillis());
92
93
94     @Before
95     public void setup() {
96         iar = new InfraActiveRequests();
97         iar.setRequestScope(SERVICE);
98         iar.setRequestId(REQUEST_ID);
99         iar.setServiceInstanceId(SERVICE_INSTANCE_ID);
100         iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
101         iar.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
102         iar.setFlowStatus(FLOW_STATUS);
103         iar.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
104         iar.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
105         iar.setResourceStatusMessage("The vf module already exist");
106         iar.setStartTime(startTime);
107     }
108
109     @Test
110     public void mapInfraActiveRequestToRequestWithOriginalRequestIdTest() throws ApiException {
111         doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
112         InstanceReferences instanceReferences = new InstanceReferences();
113         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
114         RequestStatus requestStatus = new RequestStatus();
115         requestStatus.setRequestState(iar.getRequestStatus());
116         requestStatus.setStatusMessage(
117                 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
118                         FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
119                         "The vf module already exist"));
120
121         Request expected = new Request();
122         expected.setRequestId(REQUEST_ID);
123         expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
124         expected.setInstanceReferences(instanceReferences);
125         expected.setRequestStatus(requestStatus);
126         expected.setRequestScope(SERVICE);
127         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
128
129         iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
130
131         Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
132                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
133         assertThat(result, sameBeanAs(expected));
134     }
135
136     @Test
137     public void mapInfraActiveRequestToRequestOriginalRequestIdNullTest() throws ApiException {
138         doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
139         InstanceReferences instanceReferences = new InstanceReferences();
140         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
141         RequestStatus requestStatus = new RequestStatus();
142         requestStatus.setRequestState(iar.getRequestStatus());
143         requestStatus.setStatusMessage(
144                 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
145                         FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
146                         "The vf module already exist"));
147
148         Request expected = new Request();
149         expected.setRequestId(REQUEST_ID);
150         expected.setInstanceReferences(instanceReferences);
151         expected.setRequestStatus(requestStatus);
152         expected.setRequestScope(SERVICE);
153         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
154
155         Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
156                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
157         assertThat(result, sameBeanAs(expected));
158     }
159
160     @Test
161     public void mapRequestStatusAndExtSysErrSrcToRequestFalseTest() throws ApiException {
162         doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
163         InstanceReferences instanceReferences = new InstanceReferences();
164         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
165         RequestStatus requestStatus = new RequestStatus();
166         requestStatus.setRequestState(iar.getRequestStatus());
167         requestStatus.setStatusMessage(
168                 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
169                         FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
170                         "The vf module already exist"));
171
172         Request expected = new Request();
173         expected.setRequestId(REQUEST_ID);
174         expected.setInstanceReferences(instanceReferences);
175         expected.setRequestStatus(requestStatus);
176         expected.setRequestScope(SERVICE);
177         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
178
179         includeCloudRequest = false;
180
181         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
182                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
183         assertThat(actual, sameBeanAs(expected));
184     }
185
186     @Test
187     public void mapRequestStatusAndExtSysErrSrcToRequestStatusDetailTest() throws ApiException {
188         doReturn(null).when(camundaRequestHandler).getTaskName(REQUEST_ID);
189         InstanceReferences instanceReferences = new InstanceReferences();
190         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
191         RequestStatus requestStatus = new RequestStatus();
192         requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
193         requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
194         requestStatus.setRequestState(iar.getRequestStatus());
195         requestStatus.setFlowStatus(FLOW_STATUS);
196         requestStatus.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
197         requestStatus.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
198
199         Request expected = new Request();
200         expected.setRequestId(REQUEST_ID);
201         expected.setInstanceReferences(instanceReferences);
202         expected.setRequestStatus(requestStatus);
203         expected.setRequestScope(SERVICE);
204         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
205
206         includeCloudRequest = false;
207
208         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
209                 OrchestrationRequestFormat.STATUSDETAIL.toString(), "v7");
210         assertThat(actual, sameBeanAs(expected));
211     }
212
213     @Test
214     public void mapRequestStatusAndExtSysErrSrcToRequestStatusDetailV8Test() throws ApiException {
215         doReturn(null).when(camundaRequestHandler).getTaskName(REQUEST_ID);
216         InstanceReferences instanceReferences = new InstanceReferences();
217         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
218         RequestStatus requestStatus = new RequestStatus();
219         requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
220         requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
221         requestStatus.setRequestState(iar.getRequestStatus());
222         requestStatus.setFlowStatus(FLOW_STATUS);
223         requestStatus.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
224         requestStatus.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
225         requestStatus.setResourceStatusMessage("The vf module already exist");
226
227         Request expected = new Request();
228         expected.setRequestId(REQUEST_ID);
229         expected.setInstanceReferences(instanceReferences);
230         expected.setRequestStatus(requestStatus);
231         expected.setRequestScope(SERVICE);
232         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
233
234         includeCloudRequest = false;
235
236         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
237                 OrchestrationRequestFormat.STATUSDETAIL.toString(), "v8");
238         assertThat(actual, sameBeanAs(expected));
239     }
240
241     @Test
242     public void mapRequestStatusNoTaskInfoTest() throws ApiException {
243         InstanceReferences instanceReferences = new InstanceReferences();
244         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
245         RequestStatus requestStatus = new RequestStatus();
246         requestStatus.setRequestState(iar.getRequestStatus());
247         requestStatus.setStatusMessage(
248                 "FLOW STATUS: FlowStatus RETRY STATUS: RetryStatusMessage ROLLBACK STATUS: RollbackStatusMessage RESOURCE STATUS: The vf module already exist");
249
250         Request expected = new Request();
251         expected.setRequestId(REQUEST_ID);
252         expected.setInstanceReferences(instanceReferences);
253         expected.setRequestStatus(requestStatus);
254         expected.setRequestScope(SERVICE);
255         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
256
257         includeCloudRequest = false;
258
259         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
260                 OrchestrationRequestFormat.SIMPLENOTASKINFO.toString(), "v7");
261         assertThat(expected, sameBeanAs(actual));
262     }
263
264     @Test
265     public void mapRequestStatusNullFormatTest() throws ApiException {
266         doReturn("TaskName").when(camundaRequestHandler).getTaskName(REQUEST_ID);
267         InstanceReferences instanceReferences = new InstanceReferences();
268         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
269         RequestStatus requestStatus = new RequestStatus();
270         requestStatus.setRequestState(iar.getRequestStatus());
271         requestStatus.setStatusMessage(
272                 "FLOW STATUS: FlowStatus TASK INFORMATION: TaskName RETRY STATUS: RetryStatusMessage ROLLBACK STATUS: RollbackStatusMessage RESOURCE STATUS: The vf module already exist");
273
274         Request expected = new Request();
275         expected.setRequestId(REQUEST_ID);
276         expected.setInstanceReferences(instanceReferences);
277         expected.setRequestStatus(requestStatus);
278         expected.setRequestScope(SERVICE);
279         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
280
281         includeCloudRequest = false;
282
283         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, null, "v7");
284         assertThat(expected, sameBeanAs(actual));
285     }
286
287     @Test
288     public void mapRequestStatusAndExtSysErrSrcToRequestDetailTest() throws ApiException {
289         doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
290         InstanceReferences instanceReferences = new InstanceReferences();
291         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
292         RequestStatus requestStatus = new RequestStatus();
293         requestStatus.setRequestState(iar.getRequestStatus());
294         requestStatus.setStatusMessage(
295                 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
296                         FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
297                         "The vf module already exist"));
298
299         Request expected = new Request();
300         expected.setRequestId(REQUEST_ID);
301         expected.setInstanceReferences(instanceReferences);
302         expected.setRequestStatus(requestStatus);
303         expected.setRequestScope(SERVICE);
304         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
305
306         includeCloudRequest = false;
307
308         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
309                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
310
311         assertThat(actual, sameBeanAs(expected));
312     }
313
314     @Test
315     public void mapRequestStatusAndExtSysErrSrcToRequestNoFlowStatusTest() throws ApiException {
316         InstanceReferences instanceReferences = new InstanceReferences();
317         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
318         RequestStatus requestStatus = new RequestStatus();
319         requestStatus.setRequestState(iar.getRequestStatus());
320         requestStatus.setStatusMessage(
321                 String.format("RETRY STATUS: %s ROLLBACK STATUS: %s", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE));
322
323         Request expected = new Request();
324         expected.setRequestId(REQUEST_ID);
325         expected.setInstanceReferences(instanceReferences);
326         expected.setRequestStatus(requestStatus);
327         expected.setRequestScope(SERVICE);
328         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
329
330         includeCloudRequest = false;
331         iar.setFlowStatus(null);
332         iar.setResourceStatusMessage(null);
333
334         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
335                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
336
337         assertThat(actual, sameBeanAs(expected));
338     }
339
340     @Test
341     public void mapRequestStatusAndExtSysErrSrcToRequestErrorMessageTest() throws ApiException {
342         InstanceReferences instanceReferences = new InstanceReferences();
343         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
344         iar.setExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
345         iar.setFlowStatus(null);
346         iar.setStatusMessage("Error retrieving cloud region from AAI");
347
348         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
349                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
350
351         assertTrue(actual.getRequestStatus().getStatusMessage()
352                 .contains("Error Source: " + ROLLBACK_EXT_SYSTEM_ERROR_SOURCE));
353     }
354
355     @Test
356     public void mapRequestStatusAndExtSysErrSrcToRequestFlowStatusSuccessfulCompletionTest() throws ApiException {
357         InstanceReferences instanceReferences = new InstanceReferences();
358         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
359         RequestStatus requestStatus = new RequestStatus();
360         requestStatus.setRequestState(iar.getRequestStatus());
361         requestStatus.setStatusMessage(
362                 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
363                         "Successfully completed all Building Blocks", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
364                         "The vf module already exist"));
365
366         Request expected = new Request();
367         expected.setRequestId(REQUEST_ID);
368         expected.setInstanceReferences(instanceReferences);
369         expected.setRequestStatus(requestStatus);
370         expected.setRequestScope(SERVICE);
371         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
372
373         includeCloudRequest = false;
374         iar.setFlowStatus("Successfully completed all Building Blocks");
375
376         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
377                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
378
379         assertThat(actual, sameBeanAs(expected));
380     }
381
382     @Test
383     public void mapRequestStatusAndExtSysErrSrcToRequestFlowStatusSuccessfulRollbackTest() throws ApiException {
384         InstanceReferences instanceReferences = new InstanceReferences();
385         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
386         RequestStatus requestStatus = new RequestStatus();
387         requestStatus.setRequestState(iar.getRequestStatus());
388         requestStatus.setStatusMessage(
389                 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
390                         "All Rollback flows have completed successfully", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
391                         "The vf module already exist"));
392
393         Request expected = new Request();
394         expected.setRequestId(REQUEST_ID);
395         expected.setInstanceReferences(instanceReferences);
396         expected.setRequestStatus(requestStatus);
397         expected.setRequestScope(SERVICE);
398         expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
399
400         includeCloudRequest = false;
401         iar.setFlowStatus("All Rollback flows have completed successfully");
402
403         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
404                 OrchestrationRequestFormat.DETAIL.toString(), "v7");
405
406         assertThat(actual, sameBeanAs(expected));
407     }
408
409     @Test
410     public void requestStatusExtSystemErrorSourceTest() {
411         RequestStatus requestStatus = new RequestStatus();
412         requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
413         assertThat(requestStatus.getExtSystemErrorSource(), is(equalTo(EXT_SYSTEM_ERROR_SOURCE)));
414     }
415
416     @Test
417     public void mapRequestStatusToRequestForFormatDetailTest() throws ApiException {
418         iar.setRequestStatus(Status.ABORTED.toString());
419         String result =
420                 orchestrationRequests.mapRequestStatusToRequest(iar, OrchestrationRequestFormat.DETAIL.toString());
421
422         assertEquals(Status.ABORTED.toString(), result);
423     }
424
425     @Test
426     public void mapRequestStatusToRequestForFormatStatusDetailTest() throws ApiException {
427         iar.setRequestStatus(Status.ABORTED.toString());
428         String result = orchestrationRequests.mapRequestStatusToRequest(iar, "statusDetail");
429
430         assertEquals(Status.ABORTED.toString(), result);
431     }
432
433
434     @Test
435     public void mapRequestStatusToRequestForFormatEmptyStringTest() throws ApiException {
436         iar.setRequestStatus(Status.ABORTED.toString());
437         String result = orchestrationRequests.mapRequestStatusToRequest(iar, StringUtils.EMPTY);
438
439         assertEquals(Status.FAILED.toString(), result);
440     }
441
442     @Test
443     public void infraActiveRequestNullValidationExceptionTest() throws ApiException {
444         iar.setRequestId(REQUEST_ID);
445         thrown.expect(ValidateException.class);
446         thrown.expectMessage(containsString("Null response from RequestDB when searching by RequestId " + REQUEST_ID));
447         orchestrationRequests.infraActiveRequestLookup(iar.getRequestId());
448     }
449
450     @Test
451     public void isRequestProcessingDataRequiredTest() {
452         boolean required = orchestrationRequests.isRequestProcessingDataRequired("simpleNoTaskInfo");
453         assertFalse(required);
454     }
455
456     @Test
457     public void taskNameLookup() throws ContactCamundaException {
458         InfraActiveRequests req = new InfraActiveRequests();
459         req.setRequestId("70debc2a-d6bc-4795-87ba-38a94d9b0b99");
460         Instant startInstant = Instant.now().minus(1, ChronoUnit.DAYS);
461         req.setStartTime(Timestamp.from(startInstant));
462         when(env.getProperty("mso.camundaCleanupInterval")).thenReturn(null);
463         when(camundaRequestHandler.getTaskName("70debc2a-d6bc-4795-87ba-38a94d9b0b99")).thenReturn("taskName");
464
465         RequestStatus requestStatus = new RequestStatus();
466         req.setFlowStatus("Building blocks 1 of 3 completed.");
467
468         orchestrationRequests.mapRequestStatusAndExtSysErrSrcToRequest(req, requestStatus, null, "v7");
469         assertEquals("FLOW STATUS: Building blocks 1 of 3 completed. TASK INFORMATION: taskName",
470                 requestStatus.getStatusMessage());
471     }
472
473     @Test
474     public void noCamundaLookupAfterInterval() throws ContactCamundaException {
475         InfraActiveRequests req = new InfraActiveRequests();
476         req.setRequestId("70debc2a-d6bc-4795-87ba-38a94d9b0b99");
477         Instant startInstant = Instant.now().minus(36, ChronoUnit.DAYS);
478         req.setStartTime(Timestamp.from(startInstant));
479         when(env.getProperty("mso.camundaCleanupInterval")).thenReturn("35");
480
481         RequestStatus requestStatus = new RequestStatus();
482         req.setFlowStatus("Building blocks 1 of 3 completed.");
483
484         orchestrationRequests.mapRequestStatusAndExtSysErrSrcToRequest(req, requestStatus, null, "v7");
485         assertEquals("FLOW STATUS: Building blocks 1 of 3 completed.", requestStatus.getStatusMessage());
486     }
487 }