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.ValidateException;
50 import org.onap.so.constants.OrchestrationRequestFormat;
51 import org.onap.so.constants.Status;
52 import org.onap.so.db.request.beans.InfraActiveRequests;
53 import org.onap.so.db.request.client.RequestsDbClient;
54 import org.onap.so.serviceinstancebeans.InstanceReferences;
55 import org.onap.so.serviceinstancebeans.Request;
56 import org.onap.so.serviceinstancebeans.RequestStatus;
57 import org.springframework.core.env.Environment;
59 @RunWith(MockitoJUnitRunner.class)
60 public class OrchestrationRequestsUnitTest {
62 private RequestsDbClient requestDbClient;
64 private MsoRequest msoRequest;
66 private ResponseBuilder builder;
68 private Response response;
70 private CamundaRequestHandler camundaRequestHandler;
72 private Environment env;
74 public ExpectedException thrown = ExpectedException.none();
76 private OrchestrationRequests orchestrationRequests;
78 private static final String REQUEST_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebba";
79 private static final String SERVICE_INSTANCE_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebbb";
80 private static final String ORIGINAL_REQUEST_ID = "8f2d38a6-7c20-465a-bd7e-075645f1394b";
81 private static final String SERVICE = "service";
82 private static final String EXT_SYSTEM_ERROR_SOURCE = "external system error source";
83 private static final String FLOW_STATUS = "FlowStatus";
84 private static final String RETRY_STATUS_MESSAGE = "RetryStatusMessage";
85 private static final String ROLLBACK_STATUS_MESSAGE = "RollbackStatusMessage";
86 private static final String TASK_INFORMATION = " TASK INFORMATION: Last task executed: Call SDNC";
87 private static final String WORKFLOW_NAME = "testWorkflowName";
88 private static final String OPERATION_NAME = "testOperationName";
89 private static final String REQUEST_ACTION = "createInstance";
90 private InfraActiveRequests iar;
91 boolean includeCloudRequest = false;
92 private static final String ROLLBACK_EXT_SYSTEM_ERROR_SOURCE = "SDNC";
93 private Timestamp startTime = new Timestamp(System.currentTimeMillis());
98 iar = new InfraActiveRequests();
99 iar.setRequestScope(SERVICE);
100 iar.setRequestId(REQUEST_ID);
101 iar.setServiceInstanceId(SERVICE_INSTANCE_ID);
102 iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
103 iar.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
104 iar.setFlowStatus(FLOW_STATUS);
105 iar.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
106 iar.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
107 iar.setResourceStatusMessage("The vf module already exist");
108 iar.setStartTime(startTime);
112 public void mapInfraActiveRequestToRequestWithOriginalRequestIdTest() throws ApiException {
113 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
114 InstanceReferences instanceReferences = new InstanceReferences();
115 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
116 RequestStatus requestStatus = new RequestStatus();
117 requestStatus.setRequestState(iar.getRequestStatus());
118 requestStatus.setStatusMessage(
119 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
120 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
121 "The vf module already exist"));
123 Request expected = new Request();
124 expected.setRequestId(REQUEST_ID);
125 expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
126 expected.setInstanceReferences(instanceReferences);
127 expected.setRequestStatus(requestStatus);
128 expected.setRequestScope(SERVICE);
129 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
131 iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
133 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
134 OrchestrationRequestFormat.DETAIL.toString(), "v7");
135 assertThat(result, sameBeanAs(expected));
139 public void mapInfraActiveRequestToRequestOriginalRequestIdNullTest() throws ApiException {
140 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
141 InstanceReferences instanceReferences = new InstanceReferences();
142 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
143 RequestStatus requestStatus = new RequestStatus();
144 requestStatus.setRequestState(iar.getRequestStatus());
145 requestStatus.setStatusMessage(
146 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
147 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
148 "The vf module already exist"));
150 Request expected = new Request();
151 expected.setRequestId(REQUEST_ID);
152 expected.setInstanceReferences(instanceReferences);
153 expected.setRequestStatus(requestStatus);
154 expected.setRequestScope(SERVICE);
155 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
157 iar.setWorkflowName(WORKFLOW_NAME);
158 iar.setOperationName(OPERATION_NAME);
160 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
161 OrchestrationRequestFormat.DETAIL.toString(), "v7");
162 assertThat(result, sameBeanAs(expected));
166 public void mapInfraActiveRequestToRequestWithWorkflowNameAndOperationNameTest() throws ApiException {
167 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
168 InstanceReferences instanceReferences = new InstanceReferences();
169 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
170 RequestStatus requestStatus = new RequestStatus();
171 requestStatus.setRequestState(iar.getRequestStatus());
172 requestStatus.setStatusMessage(
173 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
174 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
175 "The vf module already exist"));
177 Request expected = new Request();
178 expected.setRequestId(REQUEST_ID);
179 expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
180 expected.setInstanceReferences(instanceReferences);
181 expected.setRequestStatus(requestStatus);
182 expected.setRequestScope(SERVICE);
183 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
184 expected.setWorkflowName(WORKFLOW_NAME);
185 expected.setOperationName(OPERATION_NAME);
187 iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
188 iar.setWorkflowName(WORKFLOW_NAME);
189 iar.setOperationName(OPERATION_NAME);
191 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
192 OrchestrationRequestFormat.DETAIL.toString(), "v8");
193 assertThat(result, sameBeanAs(expected));
197 public void mapInfraActiveRequestToRequestWithNoWorkflowNameAndNoOperationNameTest() throws ApiException {
198 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
199 InstanceReferences instanceReferences = new InstanceReferences();
200 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
201 RequestStatus requestStatus = new RequestStatus();
202 requestStatus.setRequestState(iar.getRequestStatus());
203 requestStatus.setStatusMessage(
204 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
205 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
206 "The vf module already exist"));
208 Request expected = new Request();
209 expected.setRequestId(REQUEST_ID);
210 expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
211 expected.setInstanceReferences(instanceReferences);
212 expected.setRequestStatus(requestStatus);
213 expected.setRequestScope(SERVICE);
214 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
217 expected.setWorkflowName(REQUEST_ACTION);
218 expected.setRequestType(REQUEST_ACTION);
220 iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
221 iar.setRequestAction(REQUEST_ACTION);
222 iar.setWorkflowName(null);
223 iar.setOperationName(null);
225 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
226 OrchestrationRequestFormat.DETAIL.toString(), "v8");
227 assertThat(result, sameBeanAs(expected));
231 public void mapRequestStatusAndExtSysErrSrcToRequestFalseTest() throws ApiException {
232 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
233 InstanceReferences instanceReferences = new InstanceReferences();
234 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
235 RequestStatus requestStatus = new RequestStatus();
236 requestStatus.setRequestState(iar.getRequestStatus());
237 requestStatus.setStatusMessage(
238 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
239 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
240 "The vf module already exist"));
242 Request expected = new Request();
243 expected.setRequestId(REQUEST_ID);
244 expected.setInstanceReferences(instanceReferences);
245 expected.setRequestStatus(requestStatus);
246 expected.setRequestScope(SERVICE);
247 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
249 includeCloudRequest = false;
251 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
252 OrchestrationRequestFormat.DETAIL.toString(), "v7");
253 assertThat(actual, sameBeanAs(expected));
257 public void mapRequestStatusAndExtSysErrSrcToRequestStatusDetailTest() throws ApiException {
258 doReturn(null).when(camundaRequestHandler).getTaskName(REQUEST_ID);
259 InstanceReferences instanceReferences = new InstanceReferences();
260 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
261 RequestStatus requestStatus = new RequestStatus();
262 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
263 requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
264 requestStatus.setRequestState(iar.getRequestStatus());
265 requestStatus.setFlowStatus(FLOW_STATUS);
266 requestStatus.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
267 requestStatus.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
269 Request expected = new Request();
270 expected.setRequestId(REQUEST_ID);
271 expected.setInstanceReferences(instanceReferences);
272 expected.setRequestStatus(requestStatus);
273 expected.setRequestScope(SERVICE);
274 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
276 includeCloudRequest = false;
278 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
279 OrchestrationRequestFormat.STATUSDETAIL.toString(), "v7");
280 assertThat(actual, sameBeanAs(expected));
284 public void mapRequestStatusAndExtSysErrSrcToRequestStatusDetailV8Test() throws ApiException {
285 doReturn(null).when(camundaRequestHandler).getTaskName(REQUEST_ID);
286 InstanceReferences instanceReferences = new InstanceReferences();
287 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
288 RequestStatus requestStatus = new RequestStatus();
289 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
290 requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
291 requestStatus.setRequestState(iar.getRequestStatus());
292 requestStatus.setFlowStatus(FLOW_STATUS);
293 requestStatus.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
294 requestStatus.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
295 requestStatus.setResourceStatusMessage("The vf module already exist");
297 Request expected = new Request();
298 expected.setRequestId(REQUEST_ID);
299 expected.setInstanceReferences(instanceReferences);
300 expected.setRequestStatus(requestStatus);
301 expected.setRequestScope(SERVICE);
302 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
304 includeCloudRequest = false;
306 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
307 OrchestrationRequestFormat.STATUSDETAIL.toString(), "v8");
308 assertThat(actual, sameBeanAs(expected));
312 public void mapRequestStatusNoTaskInfoTest() throws ApiException {
313 InstanceReferences instanceReferences = new InstanceReferences();
314 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
315 RequestStatus requestStatus = new RequestStatus();
316 requestStatus.setRequestState(iar.getRequestStatus());
317 requestStatus.setStatusMessage(
318 "FLOW STATUS: FlowStatus RETRY STATUS: RetryStatusMessage ROLLBACK STATUS: RollbackStatusMessage RESOURCE STATUS: The vf module already exist");
320 Request expected = new Request();
321 expected.setRequestId(REQUEST_ID);
322 expected.setInstanceReferences(instanceReferences);
323 expected.setRequestStatus(requestStatus);
324 expected.setRequestScope(SERVICE);
325 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
327 includeCloudRequest = false;
329 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
330 OrchestrationRequestFormat.SIMPLENOTASKINFO.toString(), "v7");
331 assertThat(expected, sameBeanAs(actual));
335 public void mapRequestStatusNullFormatTest() throws ApiException {
336 doReturn("TaskName").when(camundaRequestHandler).getTaskName(REQUEST_ID);
337 InstanceReferences instanceReferences = new InstanceReferences();
338 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
339 RequestStatus requestStatus = new RequestStatus();
340 requestStatus.setRequestState(iar.getRequestStatus());
341 requestStatus.setStatusMessage(
342 "FLOW STATUS: FlowStatus TASK INFORMATION: TaskName RETRY STATUS: RetryStatusMessage ROLLBACK STATUS: RollbackStatusMessage RESOURCE STATUS: The vf module already exist");
344 Request expected = new Request();
345 expected.setRequestId(REQUEST_ID);
346 expected.setInstanceReferences(instanceReferences);
347 expected.setRequestStatus(requestStatus);
348 expected.setRequestScope(SERVICE);
349 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
351 includeCloudRequest = false;
353 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, null, "v7");
354 assertThat(expected, sameBeanAs(actual));
358 public void mapRequestStatusAndExtSysErrSrcToRequestDetailTest() throws ApiException {
359 doReturn("Last task executed: Call SDNC").when(camundaRequestHandler).getTaskName(REQUEST_ID);
360 InstanceReferences instanceReferences = new InstanceReferences();
361 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
362 RequestStatus requestStatus = new RequestStatus();
363 requestStatus.setRequestState(iar.getRequestStatus());
364 requestStatus.setStatusMessage(
365 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
366 FLOW_STATUS + TASK_INFORMATION, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
367 "The vf module already exist"));
369 Request expected = new Request();
370 expected.setRequestId(REQUEST_ID);
371 expected.setInstanceReferences(instanceReferences);
372 expected.setRequestStatus(requestStatus);
373 expected.setRequestScope(SERVICE);
374 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
376 includeCloudRequest = false;
378 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
379 OrchestrationRequestFormat.DETAIL.toString(), "v7");
381 assertThat(actual, sameBeanAs(expected));
385 public void mapRequestStatusAndExtSysErrSrcToRequestNoFlowStatusTest() throws ApiException {
386 InstanceReferences instanceReferences = new InstanceReferences();
387 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
388 RequestStatus requestStatus = new RequestStatus();
389 requestStatus.setRequestState(iar.getRequestStatus());
390 requestStatus.setStatusMessage(
391 String.format("RETRY STATUS: %s ROLLBACK STATUS: %s", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE));
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");
400 includeCloudRequest = false;
401 iar.setFlowStatus(null);
402 iar.setResourceStatusMessage(null);
404 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
405 OrchestrationRequestFormat.DETAIL.toString(), "v7");
407 assertThat(actual, sameBeanAs(expected));
411 public void mapRequestStatusAndExtSysErrSrcToRequestErrorMessageTest() throws ApiException {
412 InstanceReferences instanceReferences = new InstanceReferences();
413 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
414 iar.setExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
415 iar.setFlowStatus(null);
416 iar.setStatusMessage("Error retrieving cloud region from AAI");
418 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
419 OrchestrationRequestFormat.DETAIL.toString(), "v7");
421 assertTrue(actual.getRequestStatus().getStatusMessage()
422 .contains("Error Source: " + ROLLBACK_EXT_SYSTEM_ERROR_SOURCE));
426 public void mapRequestStatusAndExtSysErrSrcToRequestFlowStatusSuccessfulCompletionTest() throws ApiException {
427 InstanceReferences instanceReferences = new InstanceReferences();
428 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
429 RequestStatus requestStatus = new RequestStatus();
430 requestStatus.setRequestState(iar.getRequestStatus());
431 requestStatus.setStatusMessage(
432 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
433 "Successfully completed all Building Blocks", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
434 "The vf module already exist"));
436 Request expected = new Request();
437 expected.setRequestId(REQUEST_ID);
438 expected.setInstanceReferences(instanceReferences);
439 expected.setRequestStatus(requestStatus);
440 expected.setRequestScope(SERVICE);
441 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
443 includeCloudRequest = false;
444 iar.setFlowStatus("Successfully completed all Building Blocks");
446 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
447 OrchestrationRequestFormat.DETAIL.toString(), "v7");
449 assertThat(actual, sameBeanAs(expected));
453 public void mapRequestStatusAndExtSysErrSrcToRequestFlowStatusSuccessfulRollbackTest() throws ApiException {
454 InstanceReferences instanceReferences = new InstanceReferences();
455 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
456 RequestStatus requestStatus = new RequestStatus();
457 requestStatus.setRequestState(iar.getRequestStatus());
458 requestStatus.setStatusMessage(
459 String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s RESOURCE STATUS: %s",
460 "All Rollback flows have completed successfully", RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE,
461 "The vf module already exist"));
463 Request expected = new Request();
464 expected.setRequestId(REQUEST_ID);
465 expected.setInstanceReferences(instanceReferences);
466 expected.setRequestStatus(requestStatus);
467 expected.setRequestScope(SERVICE);
468 expected.setStartTime(new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss").format(startTime) + " GMT");
470 includeCloudRequest = false;
471 iar.setFlowStatus("All Rollback flows have completed successfully");
473 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
474 OrchestrationRequestFormat.DETAIL.toString(), "v7");
476 assertThat(actual, sameBeanAs(expected));
480 public void requestStatusExtSystemErrorSourceTest() {
481 RequestStatus requestStatus = new RequestStatus();
482 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
483 assertThat(requestStatus.getExtSystemErrorSource(), is(equalTo(EXT_SYSTEM_ERROR_SOURCE)));
487 public void mapRequestStatusToRequestForFormatDetailTest() {
488 iar.setRequestStatus(Status.ABORTED.toString());
490 orchestrationRequests.mapRequestStatusToRequest(iar, OrchestrationRequestFormat.DETAIL.toString());
492 assertEquals(Status.ABORTED.toString(), result);
496 public void mapRequestStatusToRequestForFormatStatusDetailTest() {
497 iar.setRequestStatus(Status.ABORTED.toString());
498 String result = orchestrationRequests.mapRequestStatusToRequest(iar, "statusDetail");
500 assertEquals(Status.ABORTED.toString(), result);
505 public void mapRequestStatusToRequestForFormatEmptyStringTest() {
506 iar.setRequestStatus(Status.ABORTED.toString());
507 String result = orchestrationRequests.mapRequestStatusToRequest(iar, StringUtils.EMPTY);
509 assertEquals(Status.FAILED.toString(), result);
513 public void infraActiveRequestNullValidationExceptionTest() throws ApiException {
514 iar.setRequestId(REQUEST_ID);
515 thrown.expect(ValidateException.class);
516 thrown.expectMessage(containsString("Null response from RequestDB when searching by RequestId " + REQUEST_ID));
517 orchestrationRequests.infraActiveRequestLookup(iar.getRequestId());
521 public void isRequestProcessingDataRequiredTest() {
522 boolean required = orchestrationRequests.isRequestProcessingDataRequired("simpleNoTaskInfo");
523 assertFalse(required);
527 public void taskNameLookup() {
528 InfraActiveRequests req = new InfraActiveRequests();
529 req.setRequestId("70debc2a-d6bc-4795-87ba-38a94d9b0b99");
530 Instant startInstant = Instant.now().minus(1, ChronoUnit.DAYS);
531 req.setStartTime(Timestamp.from(startInstant));
532 when(env.getProperty("mso.camundaCleanupInterval")).thenReturn(null);
533 when(camundaRequestHandler.getTaskName("70debc2a-d6bc-4795-87ba-38a94d9b0b99")).thenReturn("taskName");
535 RequestStatus requestStatus = new RequestStatus();
536 req.setFlowStatus("Building blocks 1 of 3 completed.");
538 orchestrationRequests.mapRequestStatusAndExtSysErrSrcToRequest(req, requestStatus, null, "v7");
539 assertEquals("FLOW STATUS: Building blocks 1 of 3 completed. TASK INFORMATION: taskName",
540 requestStatus.getStatusMessage());
544 public void noCamundaLookupAfterInterval() {
545 InfraActiveRequests req = new InfraActiveRequests();
546 req.setRequestId("70debc2a-d6bc-4795-87ba-38a94d9b0b99");
547 Instant startInstant = Instant.now().minus(36, ChronoUnit.DAYS);
548 req.setStartTime(Timestamp.from(startInstant));
549 when(env.getProperty("mso.camundaCleanupInterval")).thenReturn("35");
551 RequestStatus requestStatus = new RequestStatus();
552 req.setFlowStatus("Building blocks 1 of 3 completed.");
554 orchestrationRequests.mapRequestStatusAndExtSysErrSrcToRequest(req, requestStatus, null, "v7");
555 assertEquals("FLOW STATUS: Building blocks 1 of 3 completed.", requestStatus.getStatusMessage());