Merge "Add subscription for notifications"
[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 org.junit.Before;
24 import org.junit.Test;
25 import org.junit.runner.RunWith;
26 import org.onap.so.adapters.requestsdb.RequestsAdapterBase;
27 import org.onap.so.adapters.requestsdb.application.MSORequestDBApplication;
28 import org.onap.so.db.request.beans.InfraActiveRequests;
29 import org.onap.so.db.request.beans.OperationStatus;
30 import org.onap.so.db.request.beans.OperationalEnvDistributionStatus;
31 import org.onap.so.db.request.beans.OperationalEnvServiceModelStatus;
32 import org.onap.so.db.request.beans.RequestProcessingData;
33 import org.springframework.beans.factory.annotation.Autowired;
34 import org.springframework.boot.web.server.LocalServerPort;
35 import org.springframework.boot.test.context.SpringBootTest;
36 import org.springframework.test.context.ActiveProfiles;
37 import org.springframework.test.context.junit4.SpringRunner;
38 import java.util.List;
39 import java.util.UUID;
40 import java.util.Map;
41 import java.util.HashMap;
42 import java.util.ArrayList;
43 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
44 import static org.junit.Assert.assertEquals;
45 import static org.junit.Assert.assertNull;
46 import static org.junit.Assert.assertThat;
47 import static org.junit.Assert.assertNotNull;
48 import static org.junit.Assert.assertFalse;
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.setAction("create");
87         infraActiveRequests.setRequestAction("someaction");
88         infraActiveRequests
89                 .setRequestUrl("http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances");
90         requestsDbClient.save(infraActiveRequests);
91     }
92
93     private void verifyOperationStatus(OperationStatus request, OperationStatus response) {
94         assertThat(request, sameBeanAs(response).ignoring("operateAt").ignoring("finishedAt"));
95     }
96
97
98     private void verifyInfraActiveRequests(InfraActiveRequests infraActiveRequestsResponse) {
99         assertThat(infraActiveRequestsResponse, sameBeanAs(infraActiveRequests).ignoring("modifyTime").ignoring("log"));
100     }
101
102     @Test
103     public void getCloudOrchestrationFiltersFromInfraActiveTest() {
104         Map<String, String> requestMap = new HashMap<>();
105         requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
106         requestMap.put("operationalEnvironmentName", infraActiveRequests.getOperationalEnvName());
107         requestMap.put("resourceType", "operationalEnvironment");
108
109         List<InfraActiveRequests> iarr = requestsDbClient.getCloudOrchestrationFiltersFromInfraActive(requestMap);
110
111         assertEquals(1, iarr.size());
112         InfraActiveRequests infraActiveRequestsResponse = iarr.get(0);
113         verifyInfraActiveRequests(infraActiveRequestsResponse);
114     }
115
116
117     @Test
118     public void checkVnfIdStatusTest() {
119         InfraActiveRequests infraActiveRequestsResponse =
120                 requestsDbClient.checkVnfIdStatus(infraActiveRequests.getOperationalEnvId());
121         verifyInfraActiveRequests(infraActiveRequestsResponse);
122         assertNull(requestsDbClient.checkVnfIdStatus(UUID.randomUUID().toString()));
123     }
124
125     @Test
126     public void checkInstanceNameDuplicateTest() {
127         InfraActiveRequests infraActiveRequestsResponse = requestsDbClient.checkInstanceNameDuplicate(null,
128                 infraActiveRequests.getOperationalEnvName(), infraActiveRequests.getRequestScope());
129
130         verifyInfraActiveRequests(infraActiveRequestsResponse);
131     }
132
133     @Test
134     public void checkInstanceNameDuplicateViaTest() {
135         Map<String, String> requestMap = new HashMap<>();
136         requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
137
138         InfraActiveRequests infraActiveRequestsResponse = requestsDbClient.checkInstanceNameDuplicate(
139                 (HashMap<String, String>) requestMap, null, infraActiveRequests.getRequestScope());
140
141         verifyInfraActiveRequests(infraActiveRequestsResponse);
142     }
143
144     @Test
145     public void getOrchestrationFiltersFromInfraActiveTest() {
146         Map<String, List<String>> requestMap = new HashMap<>();
147         List<String> values = new ArrayList<>();
148         values.add("EQUALS");
149         values.add(infraActiveRequests.getServiceInstanceId());
150         requestMap.put("serviceInstanceId", values);
151
152         values = new ArrayList<>();
153         values.add("EQUALS");
154         values.add(infraActiveRequests.getServiceInstanceName());
155         requestMap.put("serviceInstanceName", values);
156
157         List<InfraActiveRequests> iaar = requestsDbClient.getOrchestrationFiltersFromInfraActive(requestMap);
158
159         assertEquals(1, iaar.size());
160         InfraActiveRequests infraActiveRequestsResponse = iaar.get(0);
161
162         verifyInfraActiveRequests(infraActiveRequestsResponse);
163         values = new ArrayList<>();
164         values.add("EQUALS");
165         values.add(UUID.randomUUID().toString());
166         requestMap.put("serviceInstanceName", values);
167         requestsDbClient.getOrchestrationFiltersFromInfraActive(requestMap);
168     }
169
170     @Test
171     public void getInfraActiveRequestbyRequestIdTest() {
172         InfraActiveRequests infraActiveRequestsResponse =
173                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
174         verifyInfraActiveRequests(infraActiveRequestsResponse);
175         infraActiveRequestsResponse =
176                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
177
178         assertNull(requestsDbClient.getInfraActiveRequestbyRequestId(UUID.randomUUID().toString()));
179     }
180
181     @Test
182     public void getInfraActiveRequestbyRequestIdWhereRequestUrlNullTest() {
183         // requestUrl setup to null and save
184         infraActiveRequests.setRequestUrl(null);
185         requestsDbClient.save(infraActiveRequests);
186         InfraActiveRequests infraActiveRequestsResponse =
187                 requestsDbClient.getInfraActiveRequestbyRequestId(infraActiveRequests.getRequestId());
188         verifyInfraActiveRequests(infraActiveRequestsResponse);
189
190         assertNull(infraActiveRequestsResponse.getRequestUrl());
191     }
192
193     @Test
194     public void getOneByServiceIdAndOperationIdTest() {
195         OperationStatus operationStatus = new OperationStatus();
196         operationStatus.setProgress("IN_PROGRESS");
197         operationStatus.setResult("FAILED");
198         operationStatus.setServiceId(UUID.randomUUID().toString());
199         operationStatus.setOperationContent("operation-content");
200         operationStatus.setOperation("operation");
201         operationStatus.setOperationId(UUID.randomUUID().toString());
202         operationStatus.setReason("reason-test");
203         operationStatus.setUserId(UUID.randomUUID().toString());
204         operationStatus.setServiceName("test-service");
205         requestsDbClient.save(operationStatus);
206
207         OperationStatus operationStatusResponse = requestsDbClient
208                 .getOneByServiceIdAndOperationId(operationStatus.getServiceId(), operationStatus.getOperationId());
209
210         verifyOperationStatus(operationStatus, operationStatusResponse);
211
212         assertNull(requestsDbClient.getOneByServiceIdAndOperationId(UUID.randomUUID().toString(),
213                 operationStatus.getOperationId()));
214     }
215
216
217     @Test
218     public void getRequestProcessingDataBySoRequestIdTest() {
219         List<RequestProcessingData> requestProcessingDataList =
220                 requestsDbClient.getRequestProcessingDataBySoRequestId("00032ab7-na18-42e5-965d-8ea592502018");
221         assertNotNull(requestProcessingDataList);
222         assertFalse(requestProcessingDataList.isEmpty());
223         assertEquals(2, requestProcessingDataList.size());
224     }
225
226     @Test
227     public void findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestIdTest() {
228         OperationalEnvServiceModelStatus operationalEnvServiceModelStatus =
229                 requestsDbClient.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId("1234", "TEST1234",
230                         "00032ab7-3fb3-42e5-965d-8ea592502017");
231         assertNotNull(operationalEnvServiceModelStatus);
232         assertEquals("1234", operationalEnvServiceModelStatus.getOperationalEnvId());
233         assertEquals("TEST1234", operationalEnvServiceModelStatus.getServiceModelVersionId());
234
235         OperationalEnvServiceModelStatus operationalEnvServiceModelStatus1 =
236                 requestsDbClient.findOneByOperationalEnvIdAndServiceModelVersionIdAndRequestId("1234", "TEST1235",
237                         "00032ab7-3fb3-42e5-965d-8ea592502018");
238         assertNotNull(operationalEnvServiceModelStatus1);
239         assertEquals("00032ab7-3fb3-42e5-965d-8ea592502018", operationalEnvServiceModelStatus1.getRequestId());
240         assertEquals("1234", operationalEnvServiceModelStatus1.getOperationalEnvId());
241         assertEquals("TEST1235", operationalEnvServiceModelStatus1.getServiceModelVersionId());
242     }
243
244     @Test
245     public void getAllByOperationalEnvIdAndRequestId() {
246         List<OperationalEnvServiceModelStatus> operationalEnvServiceModelStatuses =
247                 requestsDbClient.getAllByOperationalEnvIdAndRequestId("1234", "00032ab7-3fb3-42e5-965d-8ea592502017");
248         assertNotNull(operationalEnvServiceModelStatuses);
249         assertFalse(operationalEnvServiceModelStatuses.isEmpty());
250         assertEquals(2, operationalEnvServiceModelStatuses.size());
251     }
252
253     @Test
254     public void getDistributionStatusByIdTest() {
255         OperationalEnvDistributionStatus operationalEnvDistributionStatus =
256                 requestsDbClient.getDistributionStatusById("111");
257         assertNotNull(operationalEnvDistributionStatus);
258         assertEquals("111", operationalEnvDistributionStatus.getDistributionId());
259         assertEquals("ERROR", operationalEnvDistributionStatus.getDistributionIdErrorReason());
260         assertEquals("00032ab7-3fb3-42e5-965d-8ea592502017", operationalEnvDistributionStatus.getRequestId());
261     }
262 }