a400caeae2c11e68d2840d5e81b91c655ea0da9c
[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.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;
55
56 @RunWith(MockitoJUnitRunner.class)
57 public class OrchestrationRequestsUnitTest {
58     @Mock
59     private RequestsDbClient requestDbClient;
60     @Mock
61     private MsoRequest msoRequest;
62     @Mock
63     private ResponseBuilder builder;
64     @Mock
65     private Response response;
66     @Rule
67     public ExpectedException thrown = ExpectedException.none();
68     @InjectMocks
69     @Spy
70     private OrchestrationRequests orchestrationRequests;
71
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<>();
91
92     @Before
93     public void setup() {
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);
101
102         when(builder.buildResponse(Mockito.eq(HttpStatus.SC_OK), Mockito.eq(REQUEST_ID), any(Object.class),
103                 any(String.class))).thenReturn(response);
104     }
105
106     @Test
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);
117
118         iar.setOriginalRequestId(ORIGINAL_REQUEST_ID);
119
120         Request result =
121                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
122         assertThat(result, sameBeanAs(expected));
123     }
124
125     @Test
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);
135
136         Request result =
137                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
138         assertThat(result, sameBeanAs(expected));
139     }
140
141     @Test
142     public void mapExtSystemErrorSourceToRequestFalseTest() throws ApiException {
143         InstanceReferences instanceReferences = new InstanceReferences();
144         instanceReferences.setServiceInstanceId(SERVICE_INSTANCE_ID);
145         RequestStatus requestStatus = new RequestStatus();
146
147         Request expected = new Request();
148         expected.setRequestId(REQUEST_ID);
149         expected.setInstanceReferences(instanceReferences);
150         expected.setRequestStatus(requestStatus);
151         expected.setRequestScope(SERVICE);
152
153         extSystemErrorSource = false;
154         includeCloudRequest = false;
155
156         Request actual =
157                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
158         assertThat(actual, sameBeanAs(expected));
159     }
160
161     @Test
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);
167
168         Request expected = new Request();
169         expected.setRequestId(REQUEST_ID);
170         expected.setInstanceReferences(instanceReferences);
171         expected.setRequestStatus(requestStatus);
172         expected.setRequestScope(SERVICE);
173
174         extSystemErrorSource = true;
175         includeCloudRequest = false;
176         iar.setExtSystemErrorSource(EXT_SYSTEM_ERROR_SOURCE);
177
178         Request actual =
179                 orchestrationRequests.mapInfraActiveRequestToRequest(iar, includeCloudRequest, extSystemErrorSource);
180         assertThat(actual, sameBeanAs(expected));
181     }
182
183     @Test
184     public void mapExtSystemErrorSourceToRequestMethodInvokedTest() throws ApiException, IOException {
185         extSystemErrorSource = true;
186         includeCloudRequest = false;
187         orchestrationRequests.getOrchestrationRequest(REQUEST_ID, VERSION, includeCloudRequest, extSystemErrorSource);
188
189         verify(orchestrationRequests, times(1)).mapExtSystemErrorSourceToRequest(Mockito.eq(iar), Mockito.any(),
190                 Mockito.eq(extSystemErrorSource));
191     }
192
193     @Test
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)));
198     }
199 }