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.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.nio.file.Files;
33 import java.nio.file.Paths;
34 import java.util.ArrayList;
35 import java.util.List;
36 import javax.ws.rs.core.Response;
37 import org.apache.http.HttpStatus;
38 import org.junit.Before;
39 import org.junit.Rule;
40 import org.junit.Test;
41 import org.junit.rules.ExpectedException;
42 import org.junit.runner.RunWith;
43 import org.mockito.InjectMocks;
44 import org.mockito.Mock;
45 import org.mockito.Mockito;
46 import org.mockito.Spy;
47 import org.mockito.junit.MockitoJUnitRunner;
48 import org.onap.so.apihandler.common.ResponseBuilder;
49 import org.onap.so.apihandlerinfra.exceptions.ApiException;
50 import org.onap.so.db.request.beans.InfraActiveRequests;
51 import org.onap.so.db.request.client.RequestsDbClient;
52 import org.onap.so.serviceinstancebeans.InstanceReferences;
53 import org.onap.so.serviceinstancebeans.Request;
54 import org.onap.so.serviceinstancebeans.RequestStatus;
56 @RunWith(MockitoJUnitRunner.class)
57 public class OrchestrationRequestsUnitTest {
59 private RequestsDbClient requestDbClient;
61 private MsoRequest msoRequest;
63 private ResponseBuilder builder;
65 private Response response;
67 public ExpectedException thrown = ExpectedException.none();
70 private OrchestrationRequests orchestrationRequests;
72 private static final String REQUEST_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebba";
73 private static final String SERVICE_INSTANCE_ID = "7cb9aa56-dd31-41e5-828e-d93027d4ebbb";
74 private static final String ORIGINAL_REQUEST_ID = "8f2d38a6-7c20-465a-bd7e-075645f1394b";
75 private static final String SERVICE = "service";
76 private static final String EXT_SYSTEM_ERROR_SOURCE = "external system error source";
77 private InfraActiveRequests iar;
78 boolean includeCloudRequest = false;
79 boolean extSystemErrorSource = false;
80 private static final String SERVICE_INSTANCE_NAME = "serviceInstanceName";
81 private static final String VNF_ID = "00032ab7-na18-42e5-965d-8ea592502017";
82 private static final String VFMODULE_ID = "00032ab7-na18-42e5-965d-8ea592502016";
83 private static final String NETWORK_ID = "00032ab7-na18-42e5-965d-8ea592502015";
84 private static final String VOLUME_GROUP_ID = "00032ab7-na18-42e5-965d-8ea592502014";
85 private static final String VNF_NAME = "vnfName";
86 private static final String VFMODULE_NAME = "vfModuleName";
87 private static final String NETWORK_NAME = "networkName";
88 private static final String VOLUME_GROUP_NAME = "volumeGroupName";
89 private static final String VERSION = "v7";
90 List<org.onap.so.db.request.beans.RequestProcessingData> requestProcessingData = new ArrayList<>();
94 iar = new InfraActiveRequests();
95 iar.setRequestScope(SERVICE);
96 iar.setRequestId(REQUEST_ID);
97 iar.setServiceInstanceId(SERVICE_INSTANCE_ID);
98 when(requestDbClient.getInfraActiveRequestbyRequestId(Mockito.eq(REQUEST_ID))).thenReturn(iar);
99 when(requestDbClient.getRequestProcessingDataBySoRequestId(Mockito.eq(REQUEST_ID)))
100 .thenReturn(requestProcessingData);
102 when(builder.buildResponse(Mockito.eq(HttpStatus.SC_OK), Mockito.eq(REQUEST_ID), any(Object.class),
103 any(String.class))).thenReturn(response);
107 public void mapInfraActiveRequestToRequestWithOriginalRequestIdTest() throws ApiException {
108 InstanceReferences instanceReferences = new InstanceReferences();
109 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
110 RequestStatus requestStatus = new RequestStatus();
111 Request expected = new Request();
112 expected.setRequestId(REQUEST_ID);
113 expected.setOriginalRequestId(ORIGINAL_REQUEST_ID);
114 expected.setInstanceReferences(instanceReferences);
115 expected.setRequestStatus(requestStatus);
116 expected.setRequestScope(SERVICE);
118 iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
121 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
122 assertThat(result, sameBeanAs(expected));
126 public void mapInfraActiveRequestToRequestOriginalRequestIdNullTest() throws ApiException {
127 InstanceReferences instanceReferences = new InstanceReferences();
128 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
129 RequestStatus requestStatus = new RequestStatus();
130 Request expected = new Request();
131 expected.setRequestId(REQUEST_ID);
132 expected.setInstanceReferences(instanceReferences);
133 expected.setRequestStatus(requestStatus);
134 expected.setRequestScope(SERVICE);
137 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
138 assertThat(result, sameBeanAs(expected));
142 public void mapExtSystemErrorSourceToRequestFalseTest() throws ApiException {
143 InstanceReferences instanceReferences = new InstanceReferences();
144 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
145 RequestStatus requestStatus = new RequestStatus();
147 Request expected = new Request();
148 expected.setRequestId(REQUEST_ID);
149 expected.setInstanceReferences(instanceReferences);
150 expected.setRequestStatus(requestStatus);
151 expected.setRequestScope(SERVICE);
153 extSystemErrorSource = false;
154 includeCloudRequest = false;
157 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
158 assertThat(actual, sameBeanAs(expected));
162 public void mapExtSystemErrorSourceToRequestTrueTest() throws ApiException {
163 InstanceReferences instanceReferences = new InstanceReferences();
164 instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
165 RequestStatus requestStatus = new RequestStatus();
166 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
168 Request expected = new Request();
169 expected.setRequestId(REQUEST_ID);
170 expected.setInstanceReferences(instanceReferences);
171 expected.setRequestStatus(requestStatus);
172 expected.setRequestScope(SERVICE);
174 extSystemErrorSource = true;
175 includeCloudRequest = false;
176 iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
179 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
180 assertThat(actual, sameBeanAs(expected));
184 public void mapExtSystemErrorSourceToRequestMethodInvokedTest() throws ApiException, IOException {
185 extSystemErrorSource = true;
186 includeCloudRequest = false;
187 orchestrationRequests.getOrchestrationRequest(REQUEST_ID, VERSION, includeCloudRequest, extSystemErrorSource);
189 verify(orchestrationRequests, times(1)).mapExtSystemErrorSourceToRequest(Mockito.eq(iar), Mockito.any(),
190 Mockito.eq(extSystemErrorSource));
194 public void requestStatusExtSystemErrorSourceTest() {
195 RequestStatus requestStatus = new RequestStatus();
196 requestStatus.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
197 assertThat(requestStatus.getExtSystemErrorSource(), is(equalTo(EXT_SYSTEM_ERROR_SOURCE)));