fc548a715e2eadeab89028ba948b79dff60426ae
[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.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;
47
48 @RunWith(MockitoJUnitRunner.class)
49 public class OrchestrationRequestsUnitTest {
50     @Mock
51     private RequestsDbClient requestDbClient;
52     @Mock
53     private MsoRequest msoRequest;
54     @Mock
55     private ResponseBuilder builder;
56     @Mock
57     private Response response;
58     @Rule
59     public ExpectedException thrown = ExpectedException.none();
60     @InjectMocks
61     private OrchestrationRequests orchestrationRequests;
62
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";
74
75
76     @Before
77     public void setup() {
78         iar = new InfraActiveRequests();
79         iar.setRequestScope(SERVICE);
80         iar.setRequestId(REQUEST_ID);
81         iar.setServiceInstanceId(SERVICE_INSTANCE_ID);
82     }
83
84     @Test
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);
96
97         iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
98
99         Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
100                 OrchestrationRequestFormat.DETAIL.toString());
101         assertThat(result, sameBeanAs(expected));
102     }
103
104     @Test
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);
115
116         Request result = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
117                 OrchestrationRequestFormat.DETAIL.toString());
118         assertThat(result, sameBeanAs(expected));
119     }
120
121     @Test
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());
127
128         Request expected = new Request();
129         expected.setRequestId(REQUEST_ID);
130         expected.setInstanceReferences(instanceReferences);
131         expected.setRequestStatus(requestStatus);
132         expected.setRequestScope(SERVICE);
133
134         includeCloudRequest = false;
135
136         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
137                 OrchestrationRequestFormat.DETAIL.toString());
138         assertThat(actual, sameBeanAs(expected));
139     }
140
141     @Test
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);
152
153         Request expected = new Request();
154         expected.setRequestId(REQUEST_ID);
155         expected.setInstanceReferences(instanceReferences);
156         expected.setRequestStatus(requestStatus);
157         expected.setRequestScope(SERVICE);
158
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);
165
166         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
167                 OrchestrationRequestFormat.STATUSDETAIL.toString());
168         assertThat(actual, sameBeanAs(expected));
169     }
170
171     @Test
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));
179
180         Request expected = new Request();
181         expected.setRequestId(REQUEST_ID);
182         expected.setInstanceReferences(instanceReferences);
183         expected.setRequestStatus(requestStatus);
184         expected.setRequestScope(SERVICE);
185
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);
192
193         Request actual = orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest,
194                 OrchestrationRequestFormat.DETAIL.toString());
195
196         assertThat(actual, sameBeanAs(expected));
197     }
198
199     @Test
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)));
204     }
205
206     @Test
207     public void mapRequestStatusToRequestForFormatDetailTest() throws ApiException {
208         iar.setRequestStatus(Status.ABORTED.toString());
209         String result =
210                 orchestrationRequests.mapRequestStatusToRequest(iar, OrchestrationRequestFormat.DETAIL.toString());
211
212         assertEquals(Status.ABORTED.toString(), result);
213     }
214
215
216     @Test
217     public void mapRequestStatusToRequestForFormatEmptyStringTest() throws ApiException {
218         iar.setRequestStatus(Status.ABORTED.toString());
219         String result = orchestrationRequests.mapRequestStatusToRequest(iar, StringUtils.EMPTY);
220
221         assertEquals(Status.FAILED.toString(), result);
222     }
223 }