Merge "remove delcarartion"
[so.git] / adapters / mso-requests-db-adapter / src / test / java / org / onap / so / adapters / requestsdb / client / RequestsDbClientTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 - 2018 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.adapters.requestsdb.client;
22
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertFalse;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertNull;
29 import java.sql.Timestamp;
30 import java.time.Instant;
31 import java.time.temporal.ChronoUnit;
32 import java.util.ArrayList;
33 import java.util.HashMap;
34 import java.util.List;
35 import java.util.Map;
36 import java.util.UUID;
37 import org.junit.Before;
38 import org.junit.Test;
39 import org.onap.so.adapters.requestsdb.RequestsAdapterBase;
40 import org.onap.so.db.request.beans.CloudApiRequests;
41 import org.onap.so.db.request.beans.InfraActiveRequests;
42 import org.onap.so.db.request.beans.OperationStatus;
43 import org.onap.so.db.request.beans.OperationalEnvDistributionStatus;
44 import org.onap.so.db.request.beans.OperationalEnvServiceModelStatus;
45 import org.onap.so.db.request.beans.RequestProcessingData;
46 import org.onap.so.serviceinstancebeans.ModelType;
47 import org.springframework.beans.factory.annotation.Autowired;
48 import org.springframework.boot.web.server.LocalServerPort;
49
50 public class RequestsDbClientTest extends RequestsAdapterBase {
51
52     @Autowired
53     private RequestDbClientPortChanger requestsDbClient;
54
55     private InfraActiveRequests infraActiveRequests;
56
57     @LocalServerPort
58     private int port;
59
60     @Before
61     public void setup() {
62         requestsDbClient.setPort(port);
63
64         infraActiveRequests = new InfraActiveRequests();
65         infraActiveRequests.setRequestId(UUID.randomUUID().toString());
66         infraActiveRequests.setOperationalEnvId(UUID.randomUUID().toString());
67         infraActiveRequests.setServiceInstanceId(UUID.randomUUID().toString());
68         infraActiveRequests.setServiceInstanceName("serviceInstanceNameTest");
69         infraActiveRequests.setVnfId(UUID.randomUUID().toString());
70         infraActiveRequests.setVnfName("vnfInstanceNameTest");
71         infraActiveRequests.setVfModuleId(UUID.randomUUID().toString());
72         infraActiveRequests.setVfModuleName("vfModuleInstanceNameTest");
73         infraActiveRequests.setVolumeGroupId(UUID.randomUUID().toString());
74         infraActiveRequests.setVolumeGroupName("volumeGroupInstanceNameTest");
75         infraActiveRequests.setNetworkId(UUID.randomUUID().toString());
76         infraActiveRequests.setNetworkName("networkInstanceNameTest");
77         infraActiveRequests.setConfigurationId(UUID.randomUUID().toString());
78         infraActiveRequests.setConfigurationName("configurationInstanceNameTest");
79         infraActiveRequests.setAicCloudRegion("1");
80         infraActiveRequests.setTenantId(UUID.randomUUID().toString());
81         infraActiveRequests.setRequestScope("operationalEnvironment");
82         infraActiveRequests.setRequestorId(UUID.randomUUID().toString());
83         infraActiveRequests.setSource("sourceTest");
84         infraActiveRequests.setOperationalEnvName(UUID.randomUUID().toString());
85         infraActiveRequests.setRequestStatus("IN_PROGRESS");
86         infraActiveRequests.setRequestAction("someaction");
87         infraActiveRequests.setStartTime(new Timestamp(System.currentTimeMillis()));
88         infraActiveRequests
89                 .setRequestUrl("http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances");
90         List<CloudApiRequests> cloudApiRequests = new ArrayList<>();
91         CloudApiRequests cloudRequest = new CloudApiRequests();
92         cloudRequest.setCloudIdentifier("heatstackanme/id");
93         cloudRequest.setId(1);
94         cloudRequest.setRequestBody("requestBody");
95         cloudRequest.setRequestId(infraActiveRequests.getRequestId());
96         cloudApiRequests.add(cloudRequest);
97         infraActiveRequests.setCloudApiRequests(cloudApiRequests);
98         requestsDbClient.save(infraActiveRequests);
99
100         InfraActiveRequests infraActiveRequests2 = new InfraActiveRequests();
101         infraActiveRequests2.setRequestId(UUID.randomUUID().toString());
102         infraActiveRequests2.setOperationalEnvId(UUID.randomUUID().toString());
103         infraActiveRequests2.setServiceInstanceId(UUID.randomUUID().toString());
104         infraActiveRequests2.setServiceInstanceName("serviceInstanceNameTest");
105         infraActiveRequests2.setVnfId(UUID.randomUUID().toString());
106         infraActiveRequests2.setVnfName("vnfInstanceNameTest");
107         infraActiveRequests2.setVfModuleId(UUID.randomUUID().toString());
108         infraActiveRequests2.setVfModuleName("vfModuleInstanceNameTest");
109         infraActiveRequests2.setVolumeGroupId(UUID.randomUUID().toString());
110         infraActiveRequests2.setVolumeGroupName("volumeGroupInstanceNameTest");
111         infraActiveRequests2.setNetworkId(UUID.randomUUID().toString());
112         infraActiveRequests2.setNetworkName("networkInstanceNameTest");
113         infraActiveRequests2.setConfigurationId(UUID.randomUUID().toString());
114         infraActiveRequests2.setConfigurationName("configurationInstanceNameTest");
115         infraActiveRequests2.setAicCloudRegion("1");
116         infraActiveRequests2.setTenantId(UUID.randomUUID().toString());
117         infraActiveRequests2.setRequestScope("operationalEnvironment");
118         infraActiveRequests2.setRequestorId(UUID.randomUUID().toString());
119         infraActiveRequests2.setSource("sourceTest");
120         infraActiveRequests2.setOperationalEnvName(UUID.randomUUID().toString());
121         infraActiveRequests2.setRequestStatus("IN_PROGRESS");
122         infraActiveRequests2.setRequestAction("someaction");
123         infraActiveRequests2.setStartTime(new Timestamp(System.currentTimeMillis()));
124         infraActiveRequests
125                 .setRequestUrl("http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances");
126     }
127
128     private void verifyOperationStatus(OperationStatus request, OperationStatus response) {
129         assertThat(request, sameBeanAs(response).ignoring("operateAt").ignoring("finishedAt"));
130     }
131
132
133     private void verifyInfraActiveRequests(InfraActiveRequests infraActiveRequestsResponse) {
134         assertThat(infraActiveRequestsResponse, sameBeanAs(infraActiveRequests).ignoring("modifyTime").ignoring("log")
135                 .ignoring("cloudApiRequests.created").ignoring("cloudApiRequests.id"));
136     }
137
138     @Test
139     public void getCloudOrchestrationFiltersFromInfraActiveTest() {
140         Map<String, String> requestMap = new HashMap<>();
141         requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
142         requestMap.put("operationalEnvironmentName", infraActiveRequests.getOperationalEnvName());
143         requestMap.put("resourceType", "operationalEnvironment");
144
145         List<InfraActiveRequests> iarr = requestsDbClient.getCloudOrchestrationFiltersFromInfraActive(requestMap);
146
147         assertEquals(1, iarr.size());
148         InfraActiveRequests infraActiveRequestsResponse = iarr.get(0);
149         verifyInfraActiveRequests(infraActiveRequestsResponse);
150     }
151
152     @Test
153     public void checkVnfIdStatusTest() {
154         InfraActiveRequests infraActiveRequestsResponse =
155                 requestsDbClient.checkVnfIdStatus(infraActiveRequests.getOperationalEnvId());
156         verifyInfraActiveRequests(infraActiveRequestsResponse);
157         assertNull(requestsDbClient.checkVnfIdStatus(UUID.randomUUID().toString()));
158     }
159
160     @Test
161     public void checkInstanceNameDuplicateTest() {
162         InfraActiveRequests infraActiveRequestsResponse = requestsDbClient.checkInstanceNameDuplicate(null,
163                 infraActiveRequests.getOperationalEnvName(), infraActiveRequests.getRequestScope());
164
165         verifyInfraActiveRequests(infraActiveRequestsResponse);
166     }
167
168     @Test
169     public void checkInstanceNameDuplicateViaTest() {
170         Map<String, String> requestMap = new HashMap<>();
171         requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
172
173         InfraActiveRequests infraActiveRequestsResponse = requestsDbClient.checkInstanceNameDuplicate(
174                 (HashMap<String, String>) requestMap, null, infraActiveRequests.getRequestScope());
175
176         verifyInfraActiveRequests(infraActiveRequestsResponse);
177     }
178
179     @Test
180     public void getOrchestrationFiltersFromInfraActiveTest() {
181         Map<String, List<String>> requestMap = new HashMap<>();
182         List<String> values = new ArrayList<>();
183         values.add("EQUALS");
184         values.add(infraActiveRequests.getServiceInstanceId());
185         requestMap.put("serviceInstanceId", values);
186
187         values = new ArrayList<>();
188         values.add("EQUALS");
189         values.add(infraActiveRequests.getServiceInstanceName());
190         requestMap.put("serviceInstanceName", values);
191
192         List<InfraActiveRequests> iaar = requestsDbClient.getOrchestrationFiltersFromInfraActive(requestMap);
193
194         assertEquals(1, iaar.size());
195         InfraActiveRequests infraActiveRequestsResponse = iaar.get(0);
196
197         verifyInfraActiveRequests(infraActiveRequestsResponse);
198         values = new ArrayList<>();
199         values.add("EQUALS");
200         values.add(UUID.randomUUID().toString());
201         requestMap.put("serviceInstanceName", values);
202         requestsDbClient.getOrchestrationFiltersFromInfraActive(requestMap);
203     }
204
205     @Test
206     public void getInfraActiveRequestbyRequestIdTest() {
207         InfraActiveRequests infraActiveRequestsResponse =
208                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
209         verifyInfraActiveRequests(infraActiveRequestsResponse);
210         infraActiveRequestsResponse =
211                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
212
213         assertNull(requestsDbClient.getInfraActiveRequestbyRequestId(UUID.randomUUID().toString()));
214     }
215
216     @Test
217     public void getInfraActiveRequestbyRequestIdWhereRequestUrlNullTest() {
218         // requestUrl setup to null and save
219         infraActiveRequests.setRequestUrl(null);
220         requestsDbClient.updateInfraActiveRequests(infraActiveRequests);
221         InfraActiveRequests infraActiveRequestsResponse =
222                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
223         verifyInfraActiveRequests(infraActiveRequestsResponse);
224
225         assertNull(infraActiveRequestsResponse.getRequestUrl());
226     }
227
228     @Test
229     public void getOneByServiceIdAndOperationIdTest() {
230         OperationStatus operationStatus = new OperationStatus();
231         operationStatus.setProgress("IN_PROGRESS");
232         operationStatus.setResult("FAILED");
233         operationStatus.setServiceId(UUID.randomUUID().toString());
234         operationStatus.setOperationContent("operation-content");
235         operationStatus.setOperation("operation");
236         operationStatus.setOperationId(UUID.randomUUID().toString());
237         operationStatus.setReason("reason-test");
238         operationStatus.setUserId(UUID.randomUUID().toString());
239         operationStatus.setServiceName("test-service");
240         requestsDbClient.save(operationStatus);
241
242         OperationStatus operationStatusResponse = requestsDbClient
243                 .getOneByServiceIdAndOperationId(operationStatus.getServiceId(), operationStatus.getOperationId());
244
245         verifyOperationStatus(operationStatus, operationStatusResponse);
246
247         assertNull(requestsDbClient.getOneByServiceIdAndOperationId(UUID.randomUUID().toString(),
248                 operationStatus.getOperationId()));
249     }
250
251
252     @Test
253     public void getRequestProcessingDataBySoRequestIdTest() {
254         List<RequestProcessingData> requestProcessingDataList =
255                 requestsDbClient.getRequestProcessingDataBySoRequestId("00032ab7-na18-42e5-965d-8ea592502018");
256         assertNotNull(requestProcessingDataList);
257         assertFalse(requestProcessingDataList.isEmpty());
258         assertEquals(2, requestProcessingDataList.size());
259     }
260
261
262     @Test
263     public void findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestIdTest() {
264         OperationalEnvServiceModelStatus operationalEnvServiceModelStatus =
265                 requestsDbClient.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId("1234", "TEST1234",
266                         "00032ab7-3fb3-42e5-965d-8ea592502017");
267         assertNotNull(operationalEnvServiceModelStatus);
268         assertEquals("1234", operationalEnvServiceModelStatus.getOperationalEnvId());
269         assertEquals("TEST1234", operationalEnvServiceModelStatus.getServiceModelVersionId());
270
271         OperationalEnvServiceModelStatus operationalEnvServiceModelStatus1 =
272                 requestsDbClient.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId("1234", "TEST1235",
273                         "00032ab7-3fb3-42e5-965d-8ea592502018");
274         assertNotNull(operationalEnvServiceModelStatus1);
275         assertEquals("00032ab7-3fb3-42e5-965d-8ea592502018", operationalEnvServiceModelStatus1.getRequestId());
276         assertEquals("1234", operationalEnvServiceModelStatus1.getOperationalEnvId());
277         assertEquals("TEST1235", operationalEnvServiceModelStatus1.getServiceModelVersionId());
278     }
279
280     @Test
281     public void getAllByOperationalEnvIdAndRequestId() {
282         List<OperationalEnvServiceModelStatus> operationalEnvServiceModelStatuses =
283                 requestsDbClient.getAllByOperationalEnvIdAndRequestId("1234", "00032ab7-3fb3-42e5-965d-8ea592502017");
284         assertNotNull(operationalEnvServiceModelStatuses);
285         assertFalse(operationalEnvServiceModelStatuses.isEmpty());
286         assertEquals(2, operationalEnvServiceModelStatuses.size());
287     }
288
289     @Test
290     public void getDistributionStatusByIdTest() {
291         OperationalEnvDistributionStatus operationalEnvDistributionStatus =
292                 requestsDbClient.getDistributionStatusById("111");
293         assertNotNull(operationalEnvDistributionStatus);
294         assertEquals("111", operationalEnvDistributionStatus.getDistributionId());
295         assertEquals("ERROR", operationalEnvDistributionStatus.getDistributionIdErrorReason());
296         assertEquals("00032ab7-3fb3-42e5-965d-8ea592502017", operationalEnvDistributionStatus.getRequestId());
297     }
298
299     @Test
300     public void getRequestProcessingDataBySoRequestIdAndName() {
301         RequestProcessingData requestProcessingData = requestsDbClient
302                 .getRequestProcessingDataBySoRequestIdAndNameAndGrouping("00032ab7-na18-42e5-965d-8ea592502018",
303                         "requestAction", "7d2e8c07-4d10-456d-bddc-37abf38ca714");
304         assertNotNull(requestProcessingData);
305
306     }
307
308     @Test
309     public void getInfraActiveRequestbyRequestId_Filters_Test() {
310         Map<String, String[]> filters = new HashMap<>();
311         filters.put("requestStatus", new String[] {"EQ", "IN_PROGRESS"});
312         filters.put("action", new String[] {"EQ", "create"});
313         filters.put("serviceInstanceId", new String[] {"EQ", infraActiveRequests.getServiceInstanceId()});
314         List<InfraActiveRequests> infraActiveRequestsResponse = requestsDbClient.getRequest(filters);
315
316         verifyInfraActiveRequests(infraActiveRequestsResponse.get(0));
317     }
318
319     @Test
320     public void getInProgressVolumeGroupsAndVfModulesTest() {
321         InfraActiveRequests request = new InfraActiveRequests();
322         request.setRequestId(UUID.randomUUID().toString());
323         request.setVfModuleId(UUID.randomUUID().toString());
324         request.setRequestStatus("IN_PROGRESS");
325         request.setRequestScope(ModelType.vfModule.toString());
326         Instant startInstant = Instant.now().minus(3, ChronoUnit.MINUTES);
327         request.setStartTime(Timestamp.from(startInstant));
328         request.setRequestAction("create");
329         requestsDbClient.save(request);
330
331         List<InfraActiveRequests> infraActiveRequests = requestsDbClient.getInProgressVolumeGroupsAndVfModules();
332         assertThat(request, sameBeanAs(infraActiveRequests.get(0)).ignoring("modifyTime"));
333     }
334 }