2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6 * Copyright (c) 2022, Samsung Electronics. All rights reserved.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.so.adapters.requestsdb.client;
24 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
25 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertFalse;
28 import static org.junit.Assert.assertNotNull;
29 import static org.junit.Assert.assertNull;
30 import java.sql.Timestamp;
31 import java.time.Instant;
32 import java.time.temporal.ChronoUnit;
33 import java.util.ArrayList;
34 import java.util.HashMap;
35 import java.util.List;
37 import java.util.UUID;
38 import org.junit.Before;
39 import org.junit.Test;
40 import org.onap.so.adapters.requestsdb.RequestsAdapterBase;
41 import org.onap.so.db.request.beans.CloudApiRequests;
42 import org.onap.so.db.request.beans.InfraActiveRequests;
43 import org.onap.so.db.request.beans.OperationStatus;
44 import org.onap.so.db.request.beans.OperationalEnvDistributionStatus;
45 import org.onap.so.db.request.beans.OperationalEnvServiceModelStatus;
46 import org.onap.so.db.request.beans.RequestProcessingData;
47 import org.onap.so.serviceinstancebeans.ModelType;
48 import org.springframework.beans.factory.annotation.Autowired;
49 import org.springframework.boot.web.server.LocalServerPort;
51 public class RequestsDbClientTest extends RequestsAdapterBase {
54 private RequestDbClientPortChanger requestsDbClient;
56 private InfraActiveRequests infraActiveRequests;
63 requestsDbClient.setPort(port);
65 infraActiveRequests = new InfraActiveRequests();
66 infraActiveRequests.setRequestId(UUID.randomUUID().toString());
67 infraActiveRequests.setOperationalEnvId(UUID.randomUUID().toString());
68 infraActiveRequests.setServiceInstanceId(UUID.randomUUID().toString());
69 infraActiveRequests.setServiceInstanceName("serviceInstanceNameTest");
70 infraActiveRequests.setVnfId(UUID.randomUUID().toString());
71 infraActiveRequests.setVnfName("vnfInstanceNameTest");
72 infraActiveRequests.setVfModuleId(UUID.randomUUID().toString());
73 infraActiveRequests.setVfModuleName("vfModuleInstanceNameTest");
74 infraActiveRequests.setVolumeGroupId(UUID.randomUUID().toString());
75 infraActiveRequests.setVolumeGroupName("volumeGroupInstanceNameTest");
76 infraActiveRequests.setNetworkId(UUID.randomUUID().toString());
77 infraActiveRequests.setNetworkName("networkInstanceNameTest");
78 infraActiveRequests.setConfigurationId(UUID.randomUUID().toString());
79 infraActiveRequests.setConfigurationName("configurationInstanceNameTest");
80 infraActiveRequests.setCloudRegion("1");
81 infraActiveRequests.setTenantId(UUID.randomUUID().toString());
82 infraActiveRequests.setRequestScope("operationalEnvironment");
83 infraActiveRequests.setRequestorId(UUID.randomUUID().toString());
84 infraActiveRequests.setSource("sourceTest");
85 infraActiveRequests.setOperationalEnvName(UUID.randomUUID().toString());
86 infraActiveRequests.setRequestStatus("IN_PROGRESS");
87 infraActiveRequests.setRequestAction("someaction");
88 infraActiveRequests.setStartTime(new Timestamp(System.currentTimeMillis()));
90 .setRequestUrl("http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances");
91 List<CloudApiRequests> cloudApiRequests = new ArrayList<>();
92 CloudApiRequests cloudRequest = new CloudApiRequests();
93 cloudRequest.setCloudIdentifier("heatstackanme/id");
94 cloudRequest.setId(1);
95 cloudRequest.setRequestBody("requestBody");
96 cloudRequest.setRequestId(infraActiveRequests.getRequestId());
97 cloudApiRequests.add(cloudRequest);
98 infraActiveRequests.setCloudApiRequests(cloudApiRequests);
99 requestsDbClient.save(infraActiveRequests);
101 InfraActiveRequests infraActiveRequests2 = new InfraActiveRequests();
102 infraActiveRequests2.setRequestId(UUID.randomUUID().toString());
103 infraActiveRequests2.setOperationalEnvId(UUID.randomUUID().toString());
104 infraActiveRequests2.setServiceInstanceId(UUID.randomUUID().toString());
105 infraActiveRequests2.setServiceInstanceName("serviceInstanceNameTest");
106 infraActiveRequests2.setVnfId(UUID.randomUUID().toString());
107 infraActiveRequests2.setVnfName("vnfInstanceNameTest");
108 infraActiveRequests2.setVfModuleId(UUID.randomUUID().toString());
109 infraActiveRequests2.setVfModuleName("vfModuleInstanceNameTest");
110 infraActiveRequests2.setVolumeGroupId(UUID.randomUUID().toString());
111 infraActiveRequests2.setVolumeGroupName("volumeGroupInstanceNameTest");
112 infraActiveRequests2.setNetworkId(UUID.randomUUID().toString());
113 infraActiveRequests2.setNetworkName("networkInstanceNameTest");
114 infraActiveRequests2.setConfigurationId(UUID.randomUUID().toString());
115 infraActiveRequests2.setConfigurationName("configurationInstanceNameTest");
116 infraActiveRequests2.setCloudRegion("1");
117 infraActiveRequests2.setTenantId(UUID.randomUUID().toString());
118 infraActiveRequests2.setRequestScope("operationalEnvironment");
119 infraActiveRequests2.setRequestorId(UUID.randomUUID().toString());
120 infraActiveRequests2.setSource("sourceTest");
121 infraActiveRequests2.setOperationalEnvName(UUID.randomUUID().toString());
122 infraActiveRequests2.setRequestStatus("IN_PROGRESS");
123 infraActiveRequests2.setRequestAction("someaction");
124 infraActiveRequests2.setStartTime(new Timestamp(System.currentTimeMillis()));
126 .setRequestUrl("http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances");
129 private void verifyOperationStatus(OperationStatus request, OperationStatus response) {
130 assertThat(request, sameBeanAs(response).ignoring("operateAt").ignoring("finishedAt"));
134 private void verifyInfraActiveRequests(InfraActiveRequests infraActiveRequestsResponse) {
135 assertThat(infraActiveRequestsResponse, sameBeanAs(infraActiveRequests).ignoring("modifyTime").ignoring("log")
136 .ignoring("cloudApiRequests.created").ignoring("cloudApiRequests.id"));
140 public void getCloudOrchestrationFiltersFromInfraActiveTest() {
141 Map<String, String> requestMap = new HashMap<>();
142 requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
143 requestMap.put("operationalEnvironmentName", infraActiveRequests.getOperationalEnvName());
144 requestMap.put("resourceType", "operationalEnvironment");
146 List<InfraActiveRequests> iarr = requestsDbClient.getCloudOrchestrationFiltersFromInfraActive(requestMap);
148 assertEquals(1, iarr.size());
149 InfraActiveRequests infraActiveRequestsResponse = iarr.get(0);
150 verifyInfraActiveRequests(infraActiveRequestsResponse);
154 public void checkVnfIdStatusTest() {
155 InfraActiveRequests infraActiveRequestsResponse =
156 requestsDbClient.checkVnfIdStatus(infraActiveRequests.getOperationalEnvId());
157 verifyInfraActiveRequests(infraActiveRequestsResponse);
158 assertNull(requestsDbClient.checkVnfIdStatus(UUID.randomUUID().toString()));
162 public void checkInstanceNameDuplicateTest() {
163 InfraActiveRequests infraActiveRequestsResponse = requestsDbClient.checkInstanceNameDuplicate(null,
164 infraActiveRequests.getOperationalEnvName(), infraActiveRequests.getRequestScope());
166 verifyInfraActiveRequests(infraActiveRequestsResponse);
170 public void checkInstanceNameDuplicateViaTest() {
171 Map<String, String> requestMap = new HashMap<>();
172 requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
174 InfraActiveRequests infraActiveRequestsResponse = requestsDbClient.checkInstanceNameDuplicate(
175 (HashMap<String, String>) requestMap, null, infraActiveRequests.getRequestScope());
177 verifyInfraActiveRequests(infraActiveRequestsResponse);
181 public void getOrchestrationFiltersFromInfraActiveTest() {
182 Map<String, List<String>> requestMap = new HashMap<>();
183 List<String> values = new ArrayList<>();
184 values.add("EQUALS");
185 values.add(infraActiveRequests.getServiceInstanceId());
186 requestMap.put("serviceInstanceId", values);
188 values = new ArrayList<>();
189 values.add("EQUALS");
190 values.add(infraActiveRequests.getServiceInstanceName());
191 requestMap.put("serviceInstanceName", values);
193 List<InfraActiveRequests> iaar = requestsDbClient.getOrchestrationFiltersFromInfraActive(requestMap);
195 assertEquals(1, iaar.size());
196 InfraActiveRequests infraActiveRequestsResponse = iaar.get(0);
198 verifyInfraActiveRequests(infraActiveRequestsResponse);
199 values = new ArrayList<>();
200 values.add("EQUALS");
201 values.add(UUID.randomUUID().toString());
202 requestMap.put("serviceInstanceName", values);
203 requestsDbClient.getOrchestrationFiltersFromInfraActive(requestMap);
207 public void getInfraActiveRequestbyRequestIdTest() {
208 InfraActiveRequests infraActiveRequestsResponse =
209 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
210 verifyInfraActiveRequests(infraActiveRequestsResponse);
211 infraActiveRequestsResponse =
212 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
214 assertNull(requestsDbClient.getInfraActiveRequestbyRequestId(UUID.randomUUID().toString()));
218 public void getInfraActiveRequestbyRequestIdWhereRequestUrlNullTest() {
219 // requestUrl setup to null and save
220 infraActiveRequests.setRequestUrl(null);
221 requestsDbClient.updateInfraActiveRequests(infraActiveRequests);
222 InfraActiveRequests infraActiveRequestsResponse =
223 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
224 verifyInfraActiveRequests(infraActiveRequestsResponse);
226 assertNull(infraActiveRequestsResponse.getRequestUrl());
230 public void getOneByServiceIdAndOperationIdTest() {
231 OperationStatus operationStatus = new OperationStatus();
232 operationStatus.setProgress("IN_PROGRESS");
233 operationStatus.setResult("FAILED");
234 operationStatus.setServiceId(UUID.randomUUID().toString());
235 operationStatus.setOperationContent("operation-content");
236 operationStatus.setOperation("operation");
237 operationStatus.setOperationId(UUID.randomUUID().toString());
238 operationStatus.setReason("reason-test");
239 operationStatus.setUserId(UUID.randomUUID().toString());
240 operationStatus.setServiceName("test-service");
241 requestsDbClient.save(operationStatus);
243 OperationStatus operationStatusResponse = requestsDbClient
244 .getOneByServiceIdAndOperationId(operationStatus.getServiceId(), operationStatus.getOperationId());
246 verifyOperationStatus(operationStatus, operationStatusResponse);
248 assertNull(requestsDbClient.getOneByServiceIdAndOperationId(UUID.randomUUID().toString(),
249 operationStatus.getOperationId()));
254 public void getRequestProcessingDataBySoRequestIdTest() {
255 List<RequestProcessingData> requestProcessingDataList =
256 requestsDbClient.getRequestProcessingDataBySoRequestId("00032ab7-na18-42e5-965d-8ea592502018");
257 assertNotNull(requestProcessingDataList);
258 assertFalse(requestProcessingDataList.isEmpty());
259 assertEquals(2, requestProcessingDataList.size());
264 public void findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestIdTest() {
265 OperationalEnvServiceModelStatus operationalEnvServiceModelStatus =
266 requestsDbClient.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId("1234", "TEST1234",
267 "00032ab7-3fb3-42e5-965d-8ea592502017");
268 assertNotNull(operationalEnvServiceModelStatus);
269 assertEquals("1234", operationalEnvServiceModelStatus.getOperationalEnvId());
270 assertEquals("TEST1234", operationalEnvServiceModelStatus.getServiceModelVersionId());
272 OperationalEnvServiceModelStatus operationalEnvServiceModelStatus1 =
273 requestsDbClient.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId("1234", "TEST1235",
274 "00032ab7-3fb3-42e5-965d-8ea592502018");
275 assertNotNull(operationalEnvServiceModelStatus1);
276 assertEquals("00032ab7-3fb3-42e5-965d-8ea592502018", operationalEnvServiceModelStatus1.getRequestId());
277 assertEquals("1234", operationalEnvServiceModelStatus1.getOperationalEnvId());
278 assertEquals("TEST1235", operationalEnvServiceModelStatus1.getServiceModelVersionId());
282 public void getAllByOperationalEnvIdAndRequestId() {
283 List<OperationalEnvServiceModelStatus> operationalEnvServiceModelStatuses =
284 requestsDbClient.getAllByOperationalEnvIdAndRequestId("1234", "00032ab7-3fb3-42e5-965d-8ea592502017");
285 assertNotNull(operationalEnvServiceModelStatuses);
286 assertFalse(operationalEnvServiceModelStatuses.isEmpty());
287 assertEquals(2, operationalEnvServiceModelStatuses.size());
291 public void getDistributionStatusByIdTest() {
292 OperationalEnvDistributionStatus operationalEnvDistributionStatus =
293 requestsDbClient.getDistributionStatusById("111");
294 assertNotNull(operationalEnvDistributionStatus);
295 assertEquals("111", operationalEnvDistributionStatus.getDistributionId());
296 assertEquals("ERROR", operationalEnvDistributionStatus.getDistributionIdErrorReason());
297 assertEquals("00032ab7-3fb3-42e5-965d-8ea592502017", operationalEnvDistributionStatus.getRequestId());
301 public void getRequestProcessingDataBySoRequestIdAndName() {
302 RequestProcessingData requestProcessingData = requestsDbClient
303 .getRequestProcessingDataBySoRequestIdAndNameAndGrouping("00032ab7-na18-42e5-965d-8ea592502018",
304 "requestAction", "7d2e8c07-4d10-456d-bddc-37abf38ca714");
305 assertNotNull(requestProcessingData);
310 public void getInfraActiveRequestbyRequestId_Filters_Test() {
311 Map<String, String[]> filters = new HashMap<>();
312 filters.put("requestStatus", new String[] {"EQ", "IN_PROGRESS"});
313 filters.put("action", new String[] {"EQ", "create"});
314 filters.put("serviceInstanceId", new String[] {"EQ", infraActiveRequests.getServiceInstanceId()});
315 List<InfraActiveRequests> infraActiveRequestsResponse = requestsDbClient.getRequest(filters);
317 verifyInfraActiveRequests(infraActiveRequestsResponse.get(0));
321 public void getInProgressVolumeGroupsAndVfModulesTest() {
322 InfraActiveRequests request = new InfraActiveRequests();
323 request.setRequestId(UUID.randomUUID().toString());
324 request.setVfModuleId(UUID.randomUUID().toString());
325 request.setRequestStatus("IN_PROGRESS");
326 request.setRequestScope(ModelType.vfModule.toString());
327 Instant startInstant = Instant.now().minus(3, ChronoUnit.MINUTES);
328 request.setStartTime(Timestamp.from(startInstant));
329 request.setRequestAction("create");
330 requestsDbClient.save(request);
332 List<InfraActiveRequests> infraActiveRequests = requestsDbClient.getInProgressVolumeGroupsAndVfModules();
333 assertThat(request, sameBeanAs(infraActiveRequests.get(0)).ignoring("modifyTime"));
337 public void getRequestProcessingDataBySoRequestIdAndNameAndTag() {
338 List<RequestProcessingData> requestProcessingData =
339 requestsDbClient.getRequestProcessingDataBySoRequestIdAndNameAndTagOrderByCreateTimeDesc(
340 "00032ab7-na18-42e5-965d-8ea592502018", "requestAction", "pincFabricConfigRequest");
341 assertNotNull(requestProcessingData);
342 assertEquals(1, requestProcessingData.size());
343 assertEquals("assign", requestProcessingData.get(0).getValue());