8fda355abb561912ba8072c376b63121740e466e
[so.git] / adapters / mso-requests-db-adapter / src / test / java / org / onap / so / adapters / requestsdb / InfraActiveRequestsRepositoryCustomControllerTest.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;
22
23
24 import org.junit.Before;
25 import org.junit.After;
26 import org.junit.Test;
27 import org.junit.runner.RunWith;
28 import org.onap.so.adapters.requestsdb.application.MSORequestDBApplication;
29 import org.onap.so.db.request.beans.InfraActiveRequests;
30 import org.onap.so.db.request.data.controller.InstanceNameDuplicateCheckRequest;
31 import org.springframework.beans.factory.annotation.Value;
32 import org.springframework.boot.web.server.LocalServerPort;
33 import org.springframework.boot.test.context.SpringBootTest;
34 import org.springframework.boot.test.web.client.TestRestTemplate;
35 import org.springframework.core.ParameterizedTypeReference;
36 import org.springframework.http.HttpEntity;
37 import org.springframework.http.HttpHeaders;
38 import org.springframework.http.HttpMethod;
39 import org.springframework.http.ResponseEntity;
40 import org.springframework.test.context.ActiveProfiles;
41 import org.springframework.test.context.junit4.SpringRunner;
42 import org.springframework.transaction.annotation.Transactional;
43 import org.springframework.web.util.UriComponentsBuilder;
44
45 import javax.ws.rs.core.MediaType;
46 import java.util.List;
47 import java.util.Map;
48 import java.util.HashMap;
49 import java.util.UUID;
50 import java.util.ArrayList;
51
52 import static org.junit.Assert.assertEquals;
53 import static org.junit.Assert.assertTrue;
54
55 @RunWith(SpringRunner.class)
56 @SpringBootTest(classes = MSORequestDBApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
57 @ActiveProfiles("test")
58 @Transactional
59 public class InfraActiveRequestsRepositoryCustomControllerTest {
60
61     @LocalServerPort
62     private int port;
63     
64     @Value("${mso.adapters.requestDb.auth}")
65     private String msoAdaptersAuth;
66
67     private String createURLWithPort(String uri) {
68         return "http://localhost:" + port + uri;
69     }
70
71     private InfraActiveRequests infraActiveRequests;
72     private InfraActiveRequests infraActiveRequestsResponse;
73     private HttpHeaders headers;
74     private TestRestTemplate restTemplate;
75
76     private void verifyInfraActiveRequests() {
77         assertEquals(infraActiveRequests.getRequestId(), infraActiveRequestsResponse.getRequestId());
78         assertEquals(infraActiveRequests.getServiceInstanceId(), infraActiveRequestsResponse.getServiceInstanceId());
79         assertEquals(infraActiveRequests.getServiceInstanceName(), infraActiveRequestsResponse.getServiceInstanceName());
80         assertEquals(infraActiveRequests.getVnfId(), infraActiveRequestsResponse.getVnfId());
81         assertEquals(infraActiveRequests.getVnfName(), infraActiveRequestsResponse.getVnfName());
82         assertEquals(infraActiveRequests.getVfModuleId(), infraActiveRequestsResponse.getVfModuleId());
83         assertEquals(infraActiveRequests.getVfModuleName(), infraActiveRequestsResponse.getVfModuleName());
84         assertEquals(infraActiveRequests.getVolumeGroupId(), infraActiveRequestsResponse.getVolumeGroupId());
85         assertEquals(infraActiveRequests.getVolumeGroupName(), infraActiveRequestsResponse.getVolumeGroupName());
86         assertEquals(infraActiveRequests.getNetworkId(), infraActiveRequestsResponse.getNetworkId());
87         assertEquals(infraActiveRequests.getNetworkName(), infraActiveRequestsResponse.getNetworkName());
88         assertEquals(infraActiveRequests.getConfigurationId(), infraActiveRequestsResponse.getConfigurationId());
89         assertEquals(infraActiveRequests.getConfigurationName(), infraActiveRequestsResponse.getConfigurationName());
90         assertEquals(infraActiveRequests.getAaiServiceId(), infraActiveRequestsResponse.getAaiServiceId());
91         assertEquals(infraActiveRequests.getTenantId(), infraActiveRequestsResponse.getTenantId());
92         assertEquals(infraActiveRequests.getRequestScope(), infraActiveRequestsResponse.getRequestScope());
93         assertEquals(infraActiveRequests.getRequestorId(), infraActiveRequestsResponse.getRequestorId());
94         assertEquals(infraActiveRequests.getSource(), infraActiveRequestsResponse.getSource());
95         assertEquals(infraActiveRequests.getOperationalEnvId(), infraActiveRequestsResponse.getOperationalEnvId());
96         assertEquals(infraActiveRequests.getOperationalEnvName(), infraActiveRequestsResponse.getOperationalEnvName());
97         assertEquals(infraActiveRequests.getRequestStatus(), infraActiveRequestsResponse.getRequestStatus());
98         assertEquals(infraActiveRequests.getAction(), infraActiveRequestsResponse.getAction());
99         assertEquals(infraActiveRequests.getRequestUrl(), infraActiveRequestsResponse.getRequestUrl());        
100     }
101
102     @Before
103     public void setup() {
104
105         headers = new HttpHeaders();
106         restTemplate = new TestRestTemplate("test", "test");
107
108         headers.set("Accept", MediaType.APPLICATION_JSON);
109         headers.set("Content-Type", MediaType.APPLICATION_JSON);
110         headers.set("Authorization", msoAdaptersAuth);
111
112         infraActiveRequests = new InfraActiveRequests();
113
114         infraActiveRequests.setRequestId(UUID.randomUUID().toString());
115         infraActiveRequests.setOperationalEnvId(UUID.randomUUID().toString());
116         infraActiveRequests.setServiceInstanceId(UUID.randomUUID().toString());
117         infraActiveRequests.setServiceInstanceName("serviceInstanceNameTest");
118         infraActiveRequests.setVnfId(UUID.randomUUID().toString());
119         infraActiveRequests.setVnfName("vnfInstanceNameTest");
120         infraActiveRequests.setVfModuleId(UUID.randomUUID().toString());
121         infraActiveRequests.setVfModuleName("vfModuleInstanceNameTest");
122         infraActiveRequests.setVolumeGroupId(UUID.randomUUID().toString());
123         infraActiveRequests.setVolumeGroupName("volumeGroupInstanceNameTest");
124         infraActiveRequests.setNetworkId(UUID.randomUUID().toString());
125         infraActiveRequests.setNetworkName("networkInstanceNameTest");
126         infraActiveRequests.setConfigurationId(UUID.randomUUID().toString());
127         infraActiveRequests.setConfigurationName("configurationInstanceNameTest");
128         infraActiveRequests.setAicCloudRegion("1");
129         infraActiveRequests.setTenantId(UUID.randomUUID().toString());
130         infraActiveRequests.setRequestScope("operationalEnvironment");
131         infraActiveRequests.setRequestorId(UUID.randomUUID().toString());
132         infraActiveRequests.setSource("sourceTest");
133         infraActiveRequests.setOperationalEnvName(UUID.randomUUID().toString());
134         infraActiveRequests.setRequestStatus("IN_PROGRESS");
135         infraActiveRequests.setAction("create");
136         infraActiveRequests.setRequestUrl("http://localhost:8080/onap/so/infra/serviceInstantiation/v7/serviceInstances");        
137
138         HttpEntity<String> entity = new HttpEntity(infraActiveRequests, headers);
139
140         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort("/infraActiveRequests"));
141         ResponseEntity<String> response = restTemplate.exchange(
142                 builder.toUriString(),
143                 HttpMethod.POST, entity, String.class);
144
145         assertEquals(201, response.getStatusCodeValue());
146     }
147
148
149     @Test
150     public void getCloudOrchestrationFiltersFromInfraActiveTest() {
151
152         Map<String, String> requestMap = new HashMap<>();
153         requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
154         requestMap.put("operationalEnvironmentName", infraActiveRequests.getOperationalEnvName());
155         requestMap.put("resourceType", "operationalEnvironment");
156
157         HttpEntity<Map<String, String>> entity = new HttpEntity<>(requestMap, headers);
158
159         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort("/infraActiveRequests") + "/getCloudOrchestrationFiltersFromInfraActive");
160
161         ResponseEntity<List<InfraActiveRequests>> response = restTemplate.exchange(
162                 builder.toUriString(),
163                 HttpMethod.POST, entity, new ParameterizedTypeReference<List<InfraActiveRequests>>() {
164                 });
165
166         List<InfraActiveRequests> iarr = response.getBody();
167         assertEquals(200, response.getStatusCodeValue());
168
169         assertTrue(iarr.size() == 1);
170         infraActiveRequestsResponse = iarr.get(0);
171
172         verifyInfraActiveRequests();
173
174     }
175
176     @Test
177     public void getOrchestrationFiltersFromInfraActiveTest() {
178
179         Map<String, List<String>> requestMap = new HashMap<>();
180         List<String> values = new ArrayList<>();
181         values.add("EQUALS");
182         values.add(infraActiveRequests.getServiceInstanceId());
183         requestMap.put("serviceInstanceId", values);
184
185         values = new ArrayList<>();
186         values.add("EQUALS");
187         values.add(infraActiveRequests.getServiceInstanceName());
188         requestMap.put("serviceInstanceName", values);
189
190         HttpEntity<Map<String, List<String>>> entityList = new HttpEntity(requestMap, headers);
191         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort("/infraActiveRequests") + "/getOrchestrationFiltersFromInfraActive");
192
193         ResponseEntity<List<InfraActiveRequests>> response = restTemplate.exchange(
194                 builder.toUriString(),
195                 HttpMethod.POST, entityList, new ParameterizedTypeReference<List<InfraActiveRequests>>() {
196                 });
197
198         List<InfraActiveRequests> iarr = response.getBody();
199
200         assertEquals(200, response.getStatusCodeValue());
201
202         assertTrue(iarr.size() == 1);
203         infraActiveRequestsResponse = iarr.get(0);
204
205         verifyInfraActiveRequests();
206     }
207
208     @Test
209     public void checkVnfIdStatusTest() {
210
211         
212         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort("/infraActiveRequests" + "/checkVnfIdStatus/" + infraActiveRequests.getOperationalEnvId()));
213         HttpEntity<String> entity = new HttpEntity(HttpEntity.EMPTY, headers);
214
215         ResponseEntity<InfraActiveRequests> response = restTemplate.exchange(
216                 builder.toUriString(),
217                 HttpMethod.GET,entity , InfraActiveRequests.class);
218
219         infraActiveRequestsResponse = response.getBody();
220
221         assertEquals(200, response.getStatusCodeValue());
222
223         verifyInfraActiveRequests();
224     }
225
226     @Test
227     public void checkInstanceNameDuplicateTest() {
228
229         InstanceNameDuplicateCheckRequest instanceNameDuplicateCheckRequest = new InstanceNameDuplicateCheckRequest((HashMap<String, String>) null,
230                 infraActiveRequests.getOperationalEnvName(),
231                 infraActiveRequests.getRequestScope());
232
233         HttpEntity<InstanceNameDuplicateCheckRequest> entityList = new HttpEntity(instanceNameDuplicateCheckRequest, headers);
234         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort("/infraActiveRequests") + "/checkInstanceNameDuplicate");
235
236         ResponseEntity<InfraActiveRequests> response = restTemplate.exchange(
237                 builder.toUriString(),
238                 HttpMethod.POST, entityList, new ParameterizedTypeReference<InfraActiveRequests>() {
239                 });
240
241         infraActiveRequestsResponse = response.getBody();
242
243         assertEquals(200, response.getStatusCodeValue());
244
245         verifyInfraActiveRequests();
246     }
247
248     @Test
249     public void checkInstanceNameDuplicateViaTest() {
250
251         Map<String, String> requestMap = new HashMap<>();
252         requestMap.put("operationalEnvironmentId", infraActiveRequests.getOperationalEnvId());
253
254         InstanceNameDuplicateCheckRequest instanceNameDuplicateCheckRequest = new InstanceNameDuplicateCheckRequest((HashMap<String, String>) requestMap,
255                 null,
256                 infraActiveRequests.getRequestScope());
257
258         HttpEntity<InstanceNameDuplicateCheckRequest> entityList = new HttpEntity(instanceNameDuplicateCheckRequest, headers);
259         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort("/infraActiveRequests") + "/checkInstanceNameDuplicate");
260
261         ResponseEntity<InfraActiveRequests> response = restTemplate.exchange(
262                 builder.toUriString(),
263                 HttpMethod.POST, entityList, new ParameterizedTypeReference<InfraActiveRequests>() {
264                 });
265
266         infraActiveRequestsResponse = response.getBody();
267
268         assertEquals(200, response.getStatusCodeValue());
269
270         verifyInfraActiveRequests();
271     }
272
273     @Test
274     public void checkInstanceNameDuplicateTestNotFound() {
275
276         String instanceNameDuplicateCheckRequest = "{\r\n\t \"instanceName\":\"TestNotFoundInstanceName\",\r\n\t \"requestScope\":\"testasdfasdfasdf\"\r\n}";
277
278         HttpEntity<InstanceNameDuplicateCheckRequest> entityList = new HttpEntity(instanceNameDuplicateCheckRequest, headers);
279         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort("/infraActiveRequests") + "/checkInstanceNameDuplicate");
280
281         ResponseEntity<InfraActiveRequests> response = restTemplate.exchange(
282                 builder.toUriString(),
283                 HttpMethod.POST, entityList, new ParameterizedTypeReference<InfraActiveRequests>() {
284                 });
285
286         assertEquals(200, response.getStatusCodeValue());
287         assertEquals(null, response.getBody());
288     }
289
290     @Test
291     public void checkInstanceNameDuplicateViaTestNotFound() {
292
293         Map<String, String> requestMap = new HashMap<>();
294         requestMap.put("operationalEnvironmentId", "NotFoundOperationalEnvId");
295
296         InstanceNameDuplicateCheckRequest instanceNameDuplicateCheckRequest = new InstanceNameDuplicateCheckRequest((HashMap<String, String>) requestMap,
297                 null,
298                 infraActiveRequests.getRequestScope());
299
300         HttpEntity<InstanceNameDuplicateCheckRequest> entityList = new HttpEntity(instanceNameDuplicateCheckRequest, headers);
301         UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(createURLWithPort("/infraActiveRequests") + "/checkInstanceNameDuplicate");
302
303         ResponseEntity<InfraActiveRequests> response = restTemplate.exchange(
304                 builder.toUriString(),
305                 HttpMethod.POST, entityList, new ParameterizedTypeReference<InfraActiveRequests>() {
306                 });
307
308         infraActiveRequestsResponse = response.getBody();
309
310         assertEquals(200, response.getStatusCodeValue());
311         assertEquals(null, response.getBody());
312     }
313 }