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