2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.apihandlerinfra;
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;
60 @RunWith(MockitoJUnitRunner.class)
61 public class OrchestrationRequestsUnitTest {
63 private RequestsDbClient requestDbClient;
65 private MsoRequest msoRequest;
67 private ResponseBuilder builder;
69 private Response response;
71 private CamundaRequestHandler camundaRequestHandler;
73 private Environment env;
75 public ExpectedException thrown = ExpectedException.none();
77 private OrchestrationRequests orchestrationRequests;
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 static final String WORKFLOW_NAME = "testWorkflowName";
89 private static final String OPERATION_NAME = "testOperationName";
90 private static final String REQUEST_ACTION = "createInstance";
91 private InfraActiveRequests iar;
92 boolean includeCloudRequest = false;
93 private static final String ROLLBACK_EXT_SYSTEM_ERROR_SOURCE = "SDNC";
94 private Timestamp startTime = new Timestamp(System.currentTimeMillis());
99 iar = new InfraActiveRequests();
100 iar.setRequestScope(SERVICE);
101 iar.setRequestId(REQUEST_ID);
102 iar.setServiceInstanceId(SERVICE_INSTANCE_ID);
103 iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
104 iar.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
105 iar.setFlowStatus(FLOW_STATUS);
106 iar.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
107 iar.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
108 iar.setResourceStatusMessage("The vf module already exist");
109 iar.setStartTime(startTime);
113 public void mapInfraActiveRequestToRequestWithOriginalRequestIdTest() throws ApiException {
114 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
115 InstanceReferences instanceReferences = new InstanceReferences();
116 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
117 RequestStatus requestStatus = new RequestStatus();
118 requestStatus.setRequestState(iar.getRequestStatus());
119 requestStatus.setStatusMessage(
120 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
121 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
122 "The vf module already exist"));
124 Request expected = new Request();
125 expected.setRequestId(REQUEST_ID);
126 expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
127 expected.setInstanceReferences(instanceReferences);
128 expected.setRequestStatus(requestStatus);
129 expected.setRequestScope(SERVICE);
130 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
132 iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
134 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
135 OrchestrationRequestFormat.DETAIL.toString(), "v7");
136 assertThat(result, sameBeanAs(expected));
140 public void mapInfraActiveRequestToRequestOriginalRequestIdNullTest() throws ApiException {
141 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
142 InstanceReferences instanceReferences = new InstanceReferences();
143 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
144 RequestStatus requestStatus = new RequestStatus();
145 requestStatus.setRequestState(iar.getRequestStatus());
146 requestStatus.setStatusMessage(
147 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
148 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
149 "The vf module already exist"));
151 Request expected = new Request();
152 expected.setRequestId(REQUEST_ID);
153 expected.setInstanceReferences(instanceReferences);
154 expected.setRequestStatus(requestStatus);
155 expected.setRequestScope(SERVICE);
156 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
158 iar.setWorkflowName(WORKFLOW_NAME);
159 iar.setOperationName(OPERATION_NAME);
161 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
162 OrchestrationRequestFormat.DETAIL.toString(), "v7");
163 assertThat(result, sameBeanAs(expected));
167 public void mapInfraActiveRequestToRequestWithWorkflowNameAndOperationNameTest() throws ApiException {
168 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
169 InstanceReferences instanceReferences = new InstanceReferences();
170 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
171 RequestStatus requestStatus = new RequestStatus();
172 requestStatus.setRequestState(iar.getRequestStatus());
173 requestStatus.setStatusMessage(
174 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
175 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
176 "The vf module already exist"));
178 Request expected = new Request();
179 expected.setRequestId(REQUEST_ID);
180 expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
181 expected.setInstanceReferences(instanceReferences);
182 expected.setRequestStatus(requestStatus);
183 expected.setRequestScope(SERVICE);
184 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
185 expected.setWorkflowName(WORKFLOW_NAME);
186 expected.setOperationName(OPERATION_NAME);
188 iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
189 iar.setWorkflowName(WORKFLOW_NAME);
190 iar.setOperationName(OPERATION_NAME);
192 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
193 OrchestrationRequestFormat.DETAIL.toString(), "v8");
194 assertThat(result, sameBeanAs(expected));
198 public void mapInfraActiveRequestToRequestWithNoWorkflowNameAndNoOperationNameTest() throws ApiException {
199 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
200 InstanceReferences instanceReferences = new InstanceReferences();
201 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
202 RequestStatus requestStatus = new RequestStatus();
203 requestStatus.setRequestState(iar.getRequestStatus());
204 requestStatus.setStatusMessage(
205 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
206 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
207 "The vf module already exist"));
209 Request expected = new Request();
210 expected.setRequestId(REQUEST_ID);
211 expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
212 expected.setInstanceReferences(instanceReferences);
213 expected.setRequestStatus(requestStatus);
214 expected.setRequestScope(SERVICE);
215 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
218 expected.setWorkflowName(REQUEST_ACTION);
219 expected.setRequestType(REQUEST_ACTION);
221 iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
222 iar.setRequestAction(REQUEST_ACTION);
223 iar.setWorkflowName(null);
224 iar.setOperationName(null);
226 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
227 OrchestrationRequestFormat.DETAIL.toString(), "v8");
228 assertThat(result, sameBeanAs(expected));
232 public void mapRequestStatusAndExtSysErrSrcToRequestFalseTest() throws ApiException {
233 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
234 InstanceReferences instanceReferences = new InstanceReferences();
235 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
236 RequestStatus requestStatus = new RequestStatus();
237 requestStatus.setRequestState(iar.getRequestStatus());
238 requestStatus.setStatusMessage(
239 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
240 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
241 "The vf module already exist"));
243 Request expected = new Request();
244 expected.setRequestId(REQUEST_ID);
245 expected.setInstanceReferences(instanceReferences);
246 expected.setRequestStatus(requestStatus);
247 expected.setRequestScope(SERVICE);
248 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
250 includeCloudRequest = false;
252 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
253 OrchestrationRequestFormat.DETAIL.toString(), "v7");
254 assertThat(actual, sameBeanAs(expected));
258 public void mapRequestStatusAndExtSysErrSrcToRequestStatusDetailTest() throws ApiException {
259 doReturn(null).when(camundaRequestHandler).getTaskName(REQUEST_ID);
260 InstanceReferences instanceReferences = new InstanceReferences();
261 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
262 RequestStatus requestStatus = new RequestStatus();
263 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
264 requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
265 requestStatus.setRequestState(iar.getRequestStatus());
266 requestStatus.setFlowStatus(FLOW_STATUS);
267 requestStatus.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
268 requestStatus.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
270 Request expected = new Request();
271 expected.setRequestId(REQUEST_ID);
272 expected.setInstanceReferences(instanceReferences);
273 expected.setRequestStatus(requestStatus);
274 expected.setRequestScope(SERVICE);
275 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
277 includeCloudRequest = false;
279 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
280 OrchestrationRequestFormat.STATUSDETAIL.toString(), "v7");
281 assertThat(actual, sameBeanAs(expected));
285 public void mapRequestStatusAndExtSysErrSrcToRequestStatusDetailV8Test() throws ApiException {
286 doReturn(null).when(camundaRequestHandler).getTaskName(REQUEST_ID);
287 InstanceReferences instanceReferences = new InstanceReferences();
288 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
289 RequestStatus requestStatus = new RequestStatus();
290 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
291 requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
292 requestStatus.setRequestState(iar.getRequestStatus());
293 requestStatus.setFlowStatus(FLOW_STATUS);
294 requestStatus.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
295 requestStatus.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
296 requestStatus.setResourceStatusMessage("The vf module already exist");
298 Request expected = new Request();
299 expected.setRequestId(REQUEST_ID);
300 expected.setInstanceReferences(instanceReferences);
301 expected.setRequestStatus(requestStatus);
302 expected.setRequestScope(SERVICE);
303 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
305 includeCloudRequest = false;
307 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
308 OrchestrationRequestFormat.STATUSDETAIL.toString(), "v8");
309 assertThat(actual, sameBeanAs(expected));
313 public void mapRequestStatusNoTaskInfoTest() throws ApiException {
314 InstanceReferences instanceReferences = new InstanceReferences();
315 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
316 RequestStatus requestStatus = new RequestStatus();
317 requestStatus.setRequestState(iar.getRequestStatus());
318 requestStatus.setStatusMessage(
319 "FLOW STATUS: FlowStatus RETRY STATUS: RetryStatusMessage ROLLBACK STATUS: RollbackStatusMessage RESOURCE STATUS: The vf module already exist");
321 Request expected = new Request();
322 expected.setRequestId(REQUEST_ID);
323 expected.setInstanceReferences(instanceReferences);
324 expected.setRequestStatus(requestStatus);
325 expected.setRequestScope(SERVICE);
326 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
328 includeCloudRequest = false;
330 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
331 OrchestrationRequestFormat.SIMPLENOTASKINFO.toString(), "v7");
332 assertThat(expected, sameBeanAs(actual));
336 public void mapRequestStatusNullFormatTest() throws ApiException {
337 doReturn("TaskName").when(camundaRequestHandler).getTaskName(REQUEST_ID);
338 InstanceReferences instanceReferences = new InstanceReferences();
339 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
340 RequestStatus requestStatus = new RequestStatus();
341 requestStatus.setRequestState(iar.getRequestStatus());
342 requestStatus.setStatusMessage(
343 "FLOW STATUS: FlowStatus TASK INFORMATION: TaskName RETRY STATUS: RetryStatusMessage ROLLBACK STATUS: RollbackStatusMessage RESOURCE STATUS: The vf module already exist");
345 Request expected = new Request();
346 expected.setRequestId(REQUEST_ID);
347 expected.setInstanceReferences(instanceReferences);
348 expected.setRequestStatus(requestStatus);
349 expected.setRequestScope(SERVICE);
350 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
352 includeCloudRequest = false;
354 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, null, "v7");
355 assertThat(expected, sameBeanAs(actual));
359 public void mapRequestStatusAndExtSysErrSrcToRequestDetailTest() throws ApiException {
360 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
361 InstanceReferences instanceReferences = new InstanceReferences();
362 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
363 RequestStatus requestStatus = new RequestStatus();
364 requestStatus.setRequestState(iar.getRequestStatus());
365 requestStatus.setStatusMessage(
366 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
367 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
368 "The vf module already exist"));
370 Request expected = new Request();
371 expected.setRequestId(REQUEST_ID);
372 expected.setInstanceReferences(instanceReferences);
373 expected.setRequestStatus(requestStatus);
374 expected.setRequestScope(SERVICE);
375 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
377 includeCloudRequest = false;
379 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
380 OrchestrationRequestFormat.DETAIL.toString(), "v7");
382 assertThat(actual, sameBeanAs(expected));
386 public void mapRequestStatusAndExtSysErrSrcToRequestNoFlowStatusTest() throws ApiException {
387 InstanceReferences instanceReferences = new InstanceReferences();
388 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
389 RequestStatus requestStatus = new RequestStatus();
390 requestStatus.setRequestState(iar.getRequestStatus());
391 requestStatus.setStatusMessage(
392 String.format("RETRY STATUS: %s ROLLBACK STATUS: %s", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE));
394 Request expected = new Request();
395 expected.setRequestId(REQUEST_ID);
396 expected.setInstanceReferences(instanceReferences);
397 expected.setRequestStatus(requestStatus);
398 expected.setRequestScope(SERVICE);
399 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
401 includeCloudRequest = false;
402 iar.setFlowStatus(null);
403 iar.setResourceStatusMessage(null);
405 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
406 OrchestrationRequestFormat.DETAIL.toString(), "v7");
408 assertThat(actual, sameBeanAs(expected));
412 public void mapRequestStatusAndExtSysErrSrcToRequestErrorMessageTest() throws ApiException {
413 InstanceReferences instanceReferences = new InstanceReferences();
414 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
415 iar.setExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
416 iar.setFlowStatus(null);
417 iar.setStatusMessage("Error retrieving cloud region from AAI");
419 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
420 OrchestrationRequestFormat.DETAIL.toString(), "v7");
422 assertTrue(actual.getRequestStatus().getStatusMessage()
423 .contains("Error Source: " + ROLLBACK_EXT_SYSTEM_ERROR_SOURCE));
427 public void mapRequestStatusAndExtSysErrSrcToRequestFlowStatusSuccessfulCompletionTest() throws ApiException {
428 InstanceReferences instanceReferences = new InstanceReferences();
429 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
430 RequestStatus requestStatus = new RequestStatus();
431 requestStatus.setRequestState(iar.getRequestStatus());
432 requestStatus.setStatusMessage(
433 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
434 "Successfully completed all Building Blocks", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
435 "The vf module already exist"));
437 Request expected = new Request();
438 expected.setRequestId(REQUEST_ID);
439 expected.setInstanceReferences(instanceReferences);
440 expected.setRequestStatus(requestStatus);
441 expected.setRequestScope(SERVICE);
442 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
444 includeCloudRequest = false;
445 iar.setFlowStatus("Successfully completed all Building Blocks");
447 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
448 OrchestrationRequestFormat.DETAIL.toString(), "v7");
450 assertThat(actual, sameBeanAs(expected));
454 public void mapRequestStatusAndExtSysErrSrcToRequestFlowStatusSuccessfulRollbackTest() throws ApiException {
455 InstanceReferences instanceReferences = new InstanceReferences();
456 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
457 RequestStatus requestStatus = new RequestStatus();
458 requestStatus.setRequestState(iar.getRequestStatus());
459 requestStatus.setStatusMessage(
460 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
461 "All Rollback flows have completed successfully", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
462 "The vf module already exist"));
464 Request expected = new Request();
465 expected.setRequestId(REQUEST_ID);
466 expected.setInstanceReferences(instanceReferences);
467 expected.setRequestStatus(requestStatus);
468 expected.setRequestScope(SERVICE);
469 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
471 includeCloudRequest = false;
472 iar.setFlowStatus("All Rollback flows have completed successfully");
474 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
475 OrchestrationRequestFormat.DETAIL.toString(), "v7");
477 assertThat(actual, sameBeanAs(expected));
481 public void requestStatusExtSystemErrorSourceTest() {
482 RequestStatus requestStatus = new RequestStatus();
483 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
484 assertThat(requestStatus.getExtSystemErrorSource(), is(equalTo(EXT_SYSTEM_ERROR_SOURCE)));
488 public void mapRequestStatusToRequestForFormatDetailTest() throws ApiException {
489 iar.setRequestStatus(Status.ABORTED.toString());
491 orchestrationRequests.mapRequestStatusToRequest(iar, OrchestrationRequestFormat.DETAIL.toString());
493 assertEquals(Status.ABORTED.toString(), result);
497 public void mapRequestStatusToRequestForFormatStatusDetailTest() throws ApiException {
498 iar.setRequestStatus(Status.ABORTED.toString());
499 String result = orchestrationRequests.mapRequestStatusToRequest(iar, "statusDetail");
501 assertEquals(Status.ABORTED.toString(), result);
506 public void mapRequestStatusToRequestForFormatEmptyStringTest() throws ApiException {
507 iar.setRequestStatus(Status.ABORTED.toString());
508 String result = orchestrationRequests.mapRequestStatusToRequest(iar, StringUtils.EMPTY);
510 assertEquals(Status.FAILED.toString(), result);
514 public void infraActiveRequestNullValidationExceptionTest() throws ApiException {
515 iar.setRequestId(REQUEST_ID);
516 thrown.expect(ValidateException.class);
517 thrown.expectMessage(containsString("Null response from RequestDB when searching by RequestId " + REQUEST_ID));
518 orchestrationRequests.infraActiveRequestLookup(iar.getRequestId());
522 public void isRequestProcessingDataRequiredTest() {
523 boolean required = orchestrationRequests.isRequestProcessingDataRequired("simpleNoTaskInfo");
524 assertFalse(required);
528 public void taskNameLookup() throws ContactCamundaException {
529 InfraActiveRequests req = new InfraActiveRequests();
530 req.setRequestId("70debc2a-d6bc-4795-87ba-38a94d9b0b99");
531 Instant startInstant = Instant.now().minus(1, ChronoUnit.DAYS);
532 req.setStartTime(Timestamp.from(startInstant));
533 when(env.getProperty("mso.camundaCleanupInterval")).thenReturn(null);
534 when(camundaRequestHandler.getTaskName("70debc2a-d6bc-4795-87ba-38a94d9b0b99")).thenReturn("taskName");
536 RequestStatus requestStatus = new RequestStatus();
537 req.setFlowStatus("Building blocks 1 of 3 completed.");
539 orchestrationRequests.mapRequestStatusAndExtSysErrSrcToRequest(req, requestStatus, null, "v7");
540 assertEquals("FLOW STATUS: Building blocks 1 of 3 completed. TASK INFORMATION: taskName",
541 requestStatus.getStatusMessage());
545 public void noCamundaLookupAfterInterval() throws ContactCamundaException {
546 InfraActiveRequests req = new InfraActiveRequests();
547 req.setRequestId("70debc2a-d6bc-4795-87ba-38a94d9b0b99");
548 Instant startInstant = Instant.now().minus(36, ChronoUnit.DAYS);
549 req.setStartTime(Timestamp.from(startInstant));
550 when(env.getProperty("mso.camundaCleanupInterval")).thenReturn("35");
552 RequestStatus requestStatus = new RequestStatus();
553 req.setFlowStatus("Building blocks 1 of 3 completed.");
555 orchestrationRequests.mapRequestStatusAndExtSysErrSrcToRequest(req, requestStatus, null, "v7");
556 assertEquals("FLOW STATUS: Building blocks 1 of 3 completed.", requestStatus.getStatusMessage());