99ff4ffe9e45234bcee85a0f987a7c1cf8c12ffc
[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.assertThat;
27 import static org.mockito.ArgumentMatchers.any;
28 import static org.mockito.Mockito.times;
29 import static org.mockito.Mockito.verify;
30 import static org.mockito.Mockito.when;
31 import java.io.IOException;
32 import java.util.ArrayList;
33 import java.util.List;
34 import javax.ws.rs.core.Response;
35 import org.apache.http.HttpStatus;
36 import org.junit.Before;
37 import org.junit.Rule;
38 import org.junit.Test;
39 import org.junit.rules.ExpectedException;
40 import org.junit.runner.RunWith;
41 import org.mockito.InjectMocks;
42 import org.mockito.Mock;
43 import org.mockito.Mockito;
44 import org.mockito.Spy;
45 import org.mockito.junit.MockitoJUnitRunner;
46 import org.onap.so.apihandler.common.ResponseBuilder;
47 import org.onap.so.apihandlerinfra.exceptions.ApiException;
48 import org.onap.so.db.request.beans.InfraActiveRequests;
49 import org.onap.so.db.request.client.RequestsDbClient;
50 import org.onap.so.serviceinstancebeans.InstanceReferences;
51 import org.onap.so.serviceinstancebeans.Request;
52 import org.onap.so.serviceinstancebeans.RequestStatus;
53
54 @RunWith(MockitoJUnitRunner.class)
55 public class OrchestrationRequestsUnitTest {
56     @Mock
57     private RequestsDbClient requestDbClient;
58     @Mock
59     private MsoRequest msoRequest;
60     @Mock
61     private ResponseBuilder builder;
62     @Mock
63     private Response response;
64     @Rule
65     public ExpectedException thrown = ExpectedException.none();
66     @InjectMocks
67     @Spy
68     private OrchestrationRequests orchestrationRequests;
69
70     private static final String REQUEST_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebba";
71     private static final String SERVICE_INSTANCE_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebbb";
72     private static final String ORIGINAL_REQUEST_ID = "8f2d38a6-7c20-465a-bd7e-075645f1394b";
73     private static final String SERVICE = "service";
74     private static final String EXT_SYSTEM_ERROR_SOURCE = "external system error source";
75     private static final String ROLLBACK_EXT_SYSTEM_ERROR_SOURCE = "SDNC";
76     private InfraActiveRequests iar;
77     boolean includeCloudRequest = false;
78     boolean extSystemErrorSource = false;
79
80     private static final String VERSION = "v7";
81
82     List<org.onap.so.db.request.beans.RequestProcessingData> requestProcessingData = new ArrayList<>();
83
84     @Before
85     public void setup() {
86         iar = new InfraActiveRequests();
87         iar.setRequestScope(SERVICE);
88         iar.setRequestId(REQUEST_ID);
89         iar.setServiceInstanceId(SERVICE_INSTANCE_ID);
90         when(requestDbClient.getInfraActiveRequestbyRequestId(Mockito.eq(REQUEST_ID))).thenReturn(iar);
91         when(requestDbClient.getRequestProcessingDataBySoRequestId(Mockito.eq(REQUEST_ID)))
92                 .thenReturn(requestProcessingData);
93
94         when(builder.buildResponse(Mockito.eq(HttpStatus.SC_OK), Mockito.eq(REQUEST_ID), any(Object.class),
95                 any(String.class))).thenReturn(response);
96     }
97
98     @Test
99     public void mapInfraActiveRequestToRequestWithOriginalRequestIdTest() throws ApiException {
100         InstanceReferences instanceReferences = new InstanceReferences();
101         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
102         RequestStatus requestStatus = new RequestStatus();
103         Request expected = new Request();
104         expected.setRequestId(REQUEST_ID);
105         expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
106         expected.setInstanceReferences(instanceReferences);
107         expected.setRequestStatus(requestStatus);
108         expected.setRequestScope(SERVICE);
109
110         iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
111
112         Request result =
113                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
114         assertThat(result, sameBeanAs(expected));
115     }
116
117     @Test
118     public void mapInfraActiveRequestToRequestOriginalRequestIdNullTest() throws ApiException {
119         InstanceReferences instanceReferences = new InstanceReferences();
120         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
121         RequestStatus requestStatus = new RequestStatus();
122         Request expected = new Request();
123         expected.setRequestId(REQUEST_ID);
124         expected.setInstanceReferences(instanceReferences);
125         expected.setRequestStatus(requestStatus);
126         expected.setRequestScope(SERVICE);
127
128         Request result =
129                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
130         assertThat(result, sameBeanAs(expected));
131     }
132
133     @Test
134     public void mapExtSystemErrorSourceToRequestFalseTest() throws ApiException {
135         InstanceReferences instanceReferences = new InstanceReferences();
136         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
137         RequestStatus requestStatus = new RequestStatus();
138
139         Request expected = new Request();
140         expected.setRequestId(REQUEST_ID);
141         expected.setInstanceReferences(instanceReferences);
142         expected.setRequestStatus(requestStatus);
143         expected.setRequestScope(SERVICE);
144
145         extSystemErrorSource = false;
146         includeCloudRequest = false;
147
148         Request actual =
149                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
150         assertThat(actual, sameBeanAs(expected));
151     }
152
153     @Test
154     public void mapExtSystemErrorSourceToRequestTrueTest() throws ApiException {
155         InstanceReferences instanceReferences = new InstanceReferences();
156         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
157         RequestStatus requestStatus = new RequestStatus();
158         requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
159         requestStatus.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
160
161         Request expected = new Request();
162         expected.setRequestId(REQUEST_ID);
163         expected.setInstanceReferences(instanceReferences);
164         expected.setRequestStatus(requestStatus);
165         expected.setRequestScope(SERVICE);
166
167         extSystemErrorSource = true;
168         includeCloudRequest = false;
169         iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
170         iar.setRollbackExtSystemErrorSource(ROLLBACK_EXT_SYSTEM_ERROR_SOURCE);
171
172         Request actual =
173                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
174         assertThat(actual, sameBeanAs(expected));
175     }
176
177     @Test
178     public void mapExtSystemErrorSourceToRequestMethodInvokedTest() throws ApiException, IOException {
179         extSystemErrorSource = true;
180         includeCloudRequest = false;
181         orchestrationRequests.getOrchestrationRequest(REQUEST_ID, VERSION, includeCloudRequest, extSystemErrorSource);
182
183         verify(orchestrationRequests, times(1)).mapExtSystemErrorSourceToRequest(Mockito.eq(iar), Mockito.any(),
184                 Mockito.eq(extSystemErrorSource));
185     }
186
187     @Test
188     public void requestStatusExtSystemErrorSourceTest() {
189         RequestStatus requestStatus = new RequestStatus();
190         requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
191         assertThat(requestStatus.getExtSystemErrorSource(), is(equalTo(EXT_SYSTEM_ERROR_SOURCE)));
192     }
193 }