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.equalTo;
25 import static org.hamcrest.CoreMatchers.is;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertThat;
28 import javax.ws.rs.core.Response;
29 import org.apache.commons.lang.StringUtils;
30 import org.junit.Before;
31 import org.junit.Rule;
32 import org.junit.Test;
33 import org.junit.rules.ExpectedException;
34 import org.junit.runner.RunWith;
35 import org.mockito.InjectMocks;
36 import org.mockito.Mock;
37 import org.mockito.junit.MockitoJUnitRunner;
38 import org.onap.so.apihandler.common.ResponseBuilder;
39 import org.onap.so.apihandlerinfra.exceptions.ApiException;
40 import org.onap.so.constants.OrchestrationRequestFormat;
41 import org.onap.so.constants.Status;
42 import org.onap.so.db.request.beans.InfraActiveRequests;
43 import org.onap.so.db.request.client.RequestsDbClient;
44 import org.onap.so.serviceinstancebeans.InstanceReferences;
45 import org.onap.so.serviceinstancebeans.Request;
46 import org.onap.so.serviceinstancebeans.RequestStatus;
48 @RunWith(MockitoJUnitRunner.class)
49 public class OrchestrationRequestsUnitTest {
51 private RequestsDbClient requestDbClient;
53 private MsoRequest msoRequest;
55 private ResponseBuilder builder;
57 private Response response;
59 public ExpectedException thrown = ExpectedException.none();
61 private OrchestrationRequests orchestrationRequests;
63 private static final String REQUEST_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebba";
64 private static final String SERVICE_INSTANCE_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebbb";
65 private static final String ORIGINAL_REQUEST_ID = "8f2d38a6-7c20-465a-bd7e-075645f1394b";
66 private static final String SERVICE = "service";
67 private static final String EXT_SYSTEM_ERROR_SOURCE = "external system error source";
68 private static final String FLOW_STATUS = "FlowStatus";
69 private static final String RETRY_STATUS_MESSAGE = "RetryStatusMessage";
70 private static final String ROLLBACK_STATUS_MESSAGE = "RollbackStatusMessage";
71 private InfraActiveRequests iar;
72 boolean includeCloudRequest = false;
73 private static final String ROLLBACK_EXT_SYSTEM_ERROR_SOURCE = "SDNC";
78 iar = new InfraActiveRequests();
79 iar.setRequestScope(SERVICE);
80 iar.setRequestId(REQUEST_ID);
81 iar.setServiceInstanceId(SERVICE_INSTANCE_ID);
85 public void mapInfraActiveRequestToRequestWithOriginalRequestIdTest() throws ApiException {
86 InstanceReferences instanceReferences = new InstanceReferences();
87 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
88 RequestStatus requestStatus = new RequestStatus();
89 requestStatus.setRequestState(iar.getRequestStatus());
90 Request expected = new Request();
91 expected.setRequestId(REQUEST_ID);
92 expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
93 expected.setInstanceReferences(instanceReferences);
94 expected.setRequestStatus(requestStatus);
95 expected.setRequestScope(SERVICE);
97 iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
99 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
100 OrchestrationRequestFormat.DETAIL.toString());
101 assertThat(result, sameBeanAs(expected));
105 public void mapInfraActiveRequestToRequestOriginalRequestIdNullTest() throws ApiException {
106 InstanceReferences instanceReferences = new InstanceReferences();
107 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
108 RequestStatus requestStatus = new RequestStatus();
109 requestStatus.setRequestState(iar.getRequestStatus());
110 Request expected = new Request();
111 expected.setRequestId(REQUEST_ID);
112 expected.setInstanceReferences(instanceReferences);
113 expected.setRequestStatus(requestStatus);
114 expected.setRequestScope(SERVICE);
116 Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
117 OrchestrationRequestFormat.DETAIL.toString());
118 assertThat(result, sameBeanAs(expected));
122 public void mapRequestStatusAndExtSysErrSrcToRequestFalseTest() throws ApiException {
123 InstanceReferences instanceReferences = new InstanceReferences();
124 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
125 RequestStatus requestStatus = new RequestStatus();
126 requestStatus.setRequestState(iar.getRequestStatus());
128 Request expected = new Request();
129 expected.setRequestId(REQUEST_ID);
130 expected.setInstanceReferences(instanceReferences);
131 expected.setRequestStatus(requestStatus);
132 expected.setRequestScope(SERVICE);
134 includeCloudRequest = false;
136 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
137 OrchestrationRequestFormat.DETAIL.toString());
138 assertThat(actual, sameBeanAs(expected));
142 public void mapRequestStatusAndExtSysErrSrcToRequestStatusDetailTest() throws ApiException {
143 InstanceReferences instanceReferences = new InstanceReferences();
144 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
145 RequestStatus requestStatus = new RequestStatus();
146 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
147 requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
148 requestStatus.setRequestState(iar.getRequestStatus());
149 requestStatus.setFlowStatus(FLOW_STATUS);
150 requestStatus.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
151 requestStatus.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
153 Request expected = new Request();
154 expected.setRequestId(REQUEST_ID);
155 expected.setInstanceReferences(instanceReferences);
156 expected.setRequestStatus(requestStatus);
157 expected.setRequestScope(SERVICE);
159 includeCloudRequest = false;
160 iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
161 iar.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
162 iar.setFlowStatus(FLOW_STATUS);
163 iar.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
164 iar.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
166 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
167 OrchestrationRequestFormat.STATUSDETAIL.toString());
168 assertThat(actual, sameBeanAs(expected));
172 public void mapRequestStatusAndExtSysErrSrcToRequestDetailTest() throws ApiException {
173 InstanceReferences instanceReferences = new InstanceReferences();
174 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
175 RequestStatus requestStatus = new RequestStatus();
176 requestStatus.setRequestState(iar.getRequestStatus());
177 requestStatus.setStatusMessage(String.format("FLOW STATUS: %s RETRY STATUS: %s ROLLBACK STATUS: %s",
178 FLOW_STATUS, RETRY_STATUS_MESSAGE, ROLLBACK_STATUS_MESSAGE));
180 Request expected = new Request();
181 expected.setRequestId(REQUEST_ID);
182 expected.setInstanceReferences(instanceReferences);
183 expected.setRequestStatus(requestStatus);
184 expected.setRequestScope(SERVICE);
186 includeCloudRequest = false;
187 iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
188 iar.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
189 iar.setFlowStatus(FLOW_STATUS);
190 iar.setRollbackStatusMessage(ROLLBACK_STATUS_MESSAGE);
191 iar.setRetryStatusMessage(RETRY_STATUS_MESSAGE);
193 Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
194 OrchestrationRequestFormat.DETAIL.toString());
196 assertThat(actual, sameBeanAs(expected));
200 public void requestStatusExtSystemErrorSourceTest() {
201 RequestStatus requestStatus = new RequestStatus();
202 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
203 assertThat(requestStatus.getExtSystemErrorSource(), is(equalTo(EXT_SYSTEM_ERROR_SOURCE)));
207 public void mapRequestStatusToRequestForFormatDetailTest() throws ApiException {
208 iar.setRequestStatus(Status.ABORTED.toString());
210 orchestrationRequests.mapRequestStatusToRequest(iar, OrchestrationRequestFormat.DETAIL.toString());
212 assertEquals(Status.ABORTED.toString(), result);
217 public void mapRequestStatusToRequestForFormatEmptyStringTest() throws ApiException {
218 iar.setRequestStatus(Status.ABORTED.toString());
219 String result = orchestrationRequests.mapRequestStatusToRequest(iar, StringUtils.EMPTY);
221 assertEquals(Status.FAILED.toString(), result);