Merge remote-tracking branch 'origin/dublin' into 'origin/master'
[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.util.ArrayList;
30 import java.util.HashMap;
31 import java.util.List;
32 import java.util.Map;
33 import java.util.UUID;
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.junit.runner.RunWith;
37 import org.onap.so.adapters.requestsdb.RequestsAdapterBase;
38 import org.onap.so.adapters.requestsdb.application.MSORequestDBApplication;
39 import org.onap.so.db.request.beans.CloudApiRequests;
40 import org.onap.so.db.request.beans.InfraActiveRequests;
41 import org.onap.so.db.request.beans.OperationStatus;
42 import org.onap.so.db.request.beans.OperationalEnvDistributionStatus;
43 import org.onap.so.db.request.beans.OperationalEnvServiceModelStatus;
44 import org.onap.so.db.request.beans.RequestProcessingData;
45 import org.springframework.beans.factory.annotation.Autowired;
46 import org.springframework.boot.test.context.SpringBootTest;
47 import org.springframework.boot.web.server.LocalServerPort;
48 import org.springframework.test.context.ActiveProfiles;
49 import org.springframework.test.context.junit4.SpringRunner;
50
51 public class RequestsDbClientTest extends RequestsAdapterBase {
52
53     @Autowired
54     private RequestDbClientPortChanger requestsDbClient;
55
56     private InfraActiveRequests infraActiveRequests;
57
58     @LocalServerPort
59     private int port;
60
61     @Before
62     public void setup() {
63         requestsDbClient.setPort(port);
64
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.setAicCloudRegion("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.setAction("create");
88         infraActiveRequests.setRequestAction("someaction");
89         infraActiveRequests
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);
100     }
101
102     private void verifyOperationStatus(OperationStatus request, OperationStatus response) {
103         assertThat(request, sameBeanAs(response).ignoring("operateAt").ignoring("finishedAt"));
104     }
105
106
107     private void verifyInfraActiveRequests(InfraActiveRequests infraActiveRequestsResponse) {
108         assertThat(infraActiveRequestsResponse, sameBeanAs(infraActiveRequests).ignoring("modifyTime").ignoring("log")
109                 .ignoring("cloudApiRequests.created").ignoring("cloudApiRequests.id"));
110     }
111
112     @Test
113     public void getCloudOrchestrationFiltersFromInfraActiveTest() {
114         Map<String, String> requestMap = new HashMap<>();
115         requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
116         requestMap.put("operationalEnvironmentName", infraActiveRequests.getOperationalEnvName());
117         requestMap.put("resourceType", "operationalEnvironment");
118
119         List<InfraActiveRequests> iarr = requestsDbClient.getCloudOrchestrationFiltersFromInfraActive(requestMap);
120
121         assertEquals(1, iarr.size());
122         InfraActiveRequests infraActiveRequestsResponse = iarr.get(0);
123         verifyInfraActiveRequests(infraActiveRequestsResponse);
124     }
125
126     @Test
127     public void checkVnfIdStatusTest() {
128         InfraActiveRequests infraActiveRequestsResponse =
129                 requestsDbClient.checkVnfIdStatus(infraActiveRequests.getOperationalEnvId());
130         verifyInfraActiveRequests(infraActiveRequestsResponse);
131         assertNull(requestsDbClient.checkVnfIdStatus(UUID.randomUUID().toString()));
132     }
133
134     @Test
135     public void checkInstanceNameDuplicateTest() {
136         InfraActiveRequests infraActiveRequestsResponse = requestsDbClient.checkInstanceNameDuplicate(null,
137                 infraActiveRequests.getOperationalEnvName(), infraActiveRequests.getRequestScope());
138
139         verifyInfraActiveRequests(infraActiveRequestsResponse);
140     }
141
142     @Test
143     public void checkInstanceNameDuplicateViaTest() {
144         Map<String, String> requestMap = new HashMap<>();
145         requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
146
147         InfraActiveRequests infraActiveRequestsResponse = requestsDbClient.checkInstanceNameDuplicate(
148                 (HashMap<String, String>) requestMap, null, infraActiveRequests.getRequestScope());
149
150         verifyInfraActiveRequests(infraActiveRequestsResponse);
151     }
152
153     @Test
154     public void getOrchestrationFiltersFromInfraActiveTest() {
155         Map<String, List<String>> requestMap = new HashMap<>();
156         List<String> values = new ArrayList<>();
157         values.add("EQUALS");
158         values.add(infraActiveRequests.getServiceInstanceId());
159         requestMap.put("serviceInstanceId", values);
160
161         values = new ArrayList<>();
162         values.add("EQUALS");
163         values.add(infraActiveRequests.getServiceInstanceName());
164         requestMap.put("serviceInstanceName", values);
165
166         List<InfraActiveRequests> iaar = requestsDbClient.getOrchestrationFiltersFromInfraActive(requestMap);
167
168         assertEquals(1, iaar.size());
169         InfraActiveRequests infraActiveRequestsResponse = iaar.get(0);
170
171         verifyInfraActiveRequests(infraActiveRequestsResponse);
172         values = new ArrayList<>();
173         values.add("EQUALS");
174         values.add(UUID.randomUUID().toString());
175         requestMap.put("serviceInstanceName", values);
176         requestsDbClient.getOrchestrationFiltersFromInfraActive(requestMap);
177     }
178
179     @Test
180     public void getInfraActiveRequestbyRequestIdTest() {
181         InfraActiveRequests infraActiveRequestsResponse =
182                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
183         verifyInfraActiveRequests(infraActiveRequestsResponse);
184         infraActiveRequestsResponse =
185                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
186
187         assertNull(requestsDbClient.getInfraActiveRequestbyRequestId(UUID.randomUUID().toString()));
188     }
189
190     @Test
191     public void getInfraActiveRequestbyRequestIdWhereRequestUrlNullTest() {
192         // requestUrl setup to null and save
193         infraActiveRequests.setRequestUrl(null);
194         requestsDbClient.updateInfraActiveRequests(infraActiveRequests);
195         InfraActiveRequests infraActiveRequestsResponse =
196                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
197         verifyInfraActiveRequests(infraActiveRequestsResponse);
198
199         assertNull(infraActiveRequestsResponse.getRequestUrl());
200     }
201
202     @Test
203     public void getOneByServiceIdAndOperationIdTest() {
204         OperationStatus operationStatus = new OperationStatus();
205         operationStatus.setProgress("IN_PROGRESS");
206         operationStatus.setResult("FAILED");
207         operationStatus.setServiceId(UUID.randomUUID().toString());
208         operationStatus.setOperationContent("operation-content");
209         operationStatus.setOperation("operation");
210         operationStatus.setOperationId(UUID.randomUUID().toString());
211         operationStatus.setReason("reason-test");
212         operationStatus.setUserId(UUID.randomUUID().toString());
213         operationStatus.setServiceName("test-service");
214         requestsDbClient.save(operationStatus);
215
216         OperationStatus operationStatusResponse = requestsDbClient
217                 .getOneByServiceIdAndOperationId(operationStatus.getServiceId(), operationStatus.getOperationId());
218
219         verifyOperationStatus(operationStatus, operationStatusResponse);
220
221         assertNull(requestsDbClient.getOneByServiceIdAndOperationId(UUID.randomUUID().toString(),
222                 operationStatus.getOperationId()));
223     }
224
225
226     @Test
227     public void getRequestProcessingDataBySoRequestIdTest() {
228         List<RequestProcessingData> requestProcessingDataList =
229                 requestsDbClient.getRequestProcessingDataBySoRequestId("00032ab7-na18-42e5-965d-8ea592502018");
230         assertNotNull(requestProcessingDataList);
231         assertFalse(requestProcessingDataList.isEmpty());
232         assertEquals(2, requestProcessingDataList.size());
233     }
234
235
236     @Test
237     public void findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestIdTest() {
238         OperationalEnvServiceModelStatus operationalEnvServiceModelStatus =
239                 requestsDbClient.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId("1234", "TEST1234",
240                         "00032ab7-3fb3-42e5-965d-8ea592502017");
241         assertNotNull(operationalEnvServiceModelStatus);
242         assertEquals("1234", operationalEnvServiceModelStatus.getOperationalEnvId());
243         assertEquals("TEST1234", operationalEnvServiceModelStatus.getServiceModelVersionId());
244
245         OperationalEnvServiceModelStatus operationalEnvServiceModelStatus1 =
246                 requestsDbClient.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId("1234", "TEST1235",
247                         "00032ab7-3fb3-42e5-965d-8ea592502018");
248         assertNotNull(operationalEnvServiceModelStatus1);
249         assertEquals("00032ab7-3fb3-42e5-965d-8ea592502018", operationalEnvServiceModelStatus1.getRequestId());
250         assertEquals("1234", operationalEnvServiceModelStatus1.getOperationalEnvId());
251         assertEquals("TEST1235", operationalEnvServiceModelStatus1.getServiceModelVersionId());
252     }
253
254     @Test
255     public void getAllByOperationalEnvIdAndRequestId() {
256         List<OperationalEnvServiceModelStatus> operationalEnvServiceModelStatuses =
257                 requestsDbClient.getAllByOperationalEnvIdAndRequestId("1234", "00032ab7-3fb3-42e5-965d-8ea592502017");
258         assertNotNull(operationalEnvServiceModelStatuses);
259         assertFalse(operationalEnvServiceModelStatuses.isEmpty());
260         assertEquals(2, operationalEnvServiceModelStatuses.size());
261     }
262
263     @Test
264     public void getDistributionStatusByIdTest() {
265         OperationalEnvDistributionStatus operationalEnvDistributionStatus =
266                 requestsDbClient.getDistributionStatusById("111");
267         assertNotNull(operationalEnvDistributionStatus);
268         assertEquals("111", operationalEnvDistributionStatus.getDistributionId());
269         assertEquals("ERROR", operationalEnvDistributionStatus.getDistributionIdErrorReason());
270         assertEquals("00032ab7-3fb3-42e5-965d-8ea592502017", operationalEnvDistributionStatus.getRequestId());
271     }
272
273     @Test
274     public void getRequestProcessingDataBySoRequestIdAndName() {
275         RequestProcessingData requestProcessingData = requestsDbClient
276                 .getRequestProcessingDataBySoRequestIdAndNameAndGrouping("00032ab7-na18-42e5-965d-8ea592502018",
277                         "requestAction", "7d2e8c07-4d10-456d-bddc-37abf38ca714");
278         assertNotNull(requestProcessingData);
279
280     }
281 }