Replaced all tabs with spaces in java and pom.xml
[so.git] / adapters / mso-openstack-adapters / src / test / java / org / onap / so / adapters / vnf / VolumeAdapterRestTest.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.vnf;
22
23 import org.junit.Test;
24 import org.onap.so.adapters.vnfrest.CreateVolumeGroupRequest;
25 import org.onap.so.adapters.vnfrest.CreateVolumeGroupResponse;
26 import org.onap.so.adapters.vnfrest.DeleteVolumeGroupRequest;
27 import org.onap.so.adapters.vnfrest.DeleteVolumeGroupResponse;
28 import org.onap.so.adapters.vnfrest.QueryVolumeGroupResponse;
29 import org.onap.so.adapters.vnfrest.RollbackVolumeGroupRequest;
30 import org.onap.so.adapters.vnfrest.RollbackVolumeGroupResponse;
31 import org.onap.so.adapters.vnfrest.UpdateVolumeGroupRequest;
32 import org.onap.so.adapters.vnfrest.UpdateVolumeGroupResponse;
33 import org.onap.so.adapters.vnfrest.VolumeGroupExceptionResponse;
34 import org.springframework.http.HttpEntity;
35 import org.springframework.http.HttpMethod;
36 import org.springframework.http.ResponseEntity;
37 import javax.ws.rs.core.Response;
38 import javax.ws.rs.core.UriBuilder;
39 import java.io.IOException;
40 import static org.junit.Assert.assertEquals;
41 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackVfModule_200;
42 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStackWithBody_200;
43 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetStacksWithBody_200;
44 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostStacks_200;
45 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutStack;
46 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackResponseAccess;
47
48 public class VolumeAdapterRestTest extends VolumeGroupAdapterCommon {
49
50     @Test
51     public void testCreateVNFVolumes() throws IOException {
52
53         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
54         mockOpenStackPostStacks_200(wireMockServer);
55         mockOpenStackGetStackVfModule_200(wireMockServer);
56         CreateVolumeGroupRequest request = buildCreateVfModuleRequest();
57
58         HttpEntity<CreateVolumeGroupRequest> entity = new HttpEntity<>(request, headers);
59         ResponseEntity<CreateVolumeGroupResponse> response =
60                 restTemplate.exchange(createURLWithPort("/services/rest/v1/volume-groups"), HttpMethod.POST, entity,
61                         CreateVolumeGroupResponse.class);
62         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
63     }
64
65     @Test
66     public void testCreateVNFVolumesAsync() throws IOException {
67
68         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
69         mockOpenStackPostStacks_200(wireMockServer);
70         mockOpenStackGetStackVfModule_200(wireMockServer);
71         CreateVolumeGroupRequest request = buildCreateVfModuleRequest();
72         request.setNotificationUrl("http://localhost:8080");
73
74         HttpEntity<CreateVolumeGroupRequest> entity = new HttpEntity<>(request, headers);
75         ResponseEntity<CreateVolumeGroupResponse> response =
76                 restTemplate.exchange(createURLWithPort("/services/rest/v1/volume-groups"), HttpMethod.POST, entity,
77                         CreateVolumeGroupResponse.class);
78         assertEquals(Response.Status.ACCEPTED.getStatusCode(), response.getStatusCode().value());
79     }
80
81     @Test
82     public void testDeleteVNFVolumes() throws IOException {
83         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
84         DeleteVolumeGroupRequest request = buildDeleteVolumeGroupRequest();
85         HttpEntity<DeleteVolumeGroupRequest> entity = new HttpEntity<>(request, headers);
86         ResponseEntity<DeleteVolumeGroupResponse> response =
87                 restTemplate.exchange(createURLWithPort("/services/rest/v1/volume-groups/" + VOLUME_GROUP_ID),
88                         HttpMethod.DELETE, entity, DeleteVolumeGroupResponse.class);
89         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
90     }
91
92     @Test
93     public void testDeleteVNFVolumesAsync() throws IOException {
94         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
95         DeleteVolumeGroupRequest request = buildDeleteVolumeGroupRequest();
96         request.setNotificationUrl("http://localhost:8080");
97         HttpEntity<DeleteVolumeGroupRequest> entity = new HttpEntity<>(request, headers);
98         ResponseEntity<DeleteVolumeGroupResponse> response =
99                 restTemplate.exchange(createURLWithPort("/services/rest/v1/volume-groups/" + VOLUME_GROUP_ID),
100                         HttpMethod.DELETE, entity, DeleteVolumeGroupResponse.class);
101         assertEquals(Response.Status.ACCEPTED.getStatusCode(), response.getStatusCode().value());
102     }
103
104     @Test
105     public void testRollbackVNFVolumes() throws IOException {
106         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
107         RollbackVolumeGroupRequest request = buildRollbackVolumeGroupRequest();
108         HttpEntity<RollbackVolumeGroupRequest> entity = new HttpEntity<>(request, headers);
109         ResponseEntity<RollbackVolumeGroupResponse> response = restTemplate.exchange(
110                 createURLWithPort("/services/rest/v1/volume-groups/" + VOLUME_GROUP_ID + "/rollback"),
111                 HttpMethod.DELETE, entity, RollbackVolumeGroupResponse.class);
112         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
113     }
114
115     @Test
116     public void testRollbackVNFVolumesAsync() throws IOException {
117         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
118         RollbackVolumeGroupRequest request = buildRollbackVolumeGroupRequest();
119         request.setNotificationUrl("http://localhost:8080");
120         HttpEntity<RollbackVolumeGroupRequest> entity = new HttpEntity<>(request, headers);
121         ResponseEntity<RollbackVolumeGroupResponse> response = restTemplate.exchange(
122                 createURLWithPort("/services/rest/v1/volume-groups/" + VOLUME_GROUP_ID + "/rollback"),
123                 HttpMethod.DELETE, entity, RollbackVolumeGroupResponse.class);
124         assertEquals(Response.Status.ACCEPTED.getStatusCode(), response.getStatusCode().value());
125     }
126
127     @Test
128     public void testQueryVNFVolumes() throws IOException {
129         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
130         mockOpenStackGetStacksWithBody_200(wireMockServer, "UPDATE_COMPLETE");
131         javax.ws.rs.core.UriBuilder builder = UriBuilder.fromPath("/services/rest/v1/volume-groups/" + VOLUME_GROUP_ID);
132         builder.queryParam("cloudSiteId", CLOUDSITE_ID).queryParam("tenantId", TENANT_ID)
133                 .queryParam("volumeGroupStackId", VOUME_GROUP_NAME).queryParam("skipAAI", true)
134                 .queryParam("msoRequest.requestId", MSO_REQUEST_ID)
135                 .queryParam("msoRequest.serviceInstanceId", MSO_SERVICE_INSTANCE_ID);
136
137         ResponseEntity<QueryVolumeGroupResponse> response = restTemplate.exchange(
138                 createURLWithPort(builder.build().toString()), HttpMethod.GET, null, QueryVolumeGroupResponse.class);
139         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
140     }
141
142     @Test
143     public void testQueryVNFVolumesError() throws IOException {
144         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
145         mockOpenStackGetStacksWithBody_200(wireMockServer, "UPDATE_COMPLETE");
146         javax.ws.rs.core.UriBuilder builder = UriBuilder.fromPath("/services/rest/v1/volume-groups/" + VOLUME_GROUP_ID);
147         builder.queryParam("tenantId", TENANT_ID).queryParam("volumeGroupStackId", VOUME_GROUP_NAME)
148                 .queryParam("skipAAI", true).queryParam("msoRequest.requestId", MSO_REQUEST_ID)
149                 .queryParam("msoRequest.serviceInstanceId", MSO_SERVICE_INSTANCE_ID);
150
151         ResponseEntity<VolumeGroupExceptionResponse> response =
152                 restTemplate.exchange(createURLWithPort(builder.build().toString()), HttpMethod.GET, null,
153                         VolumeGroupExceptionResponse.class);
154         assertEquals(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), response.getStatusCode().value());
155     }
156
157     @Test
158     public void testUpdateVNFVolumes() throws IOException {
159         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
160         mockOpenStackGetStacksWithBody_200(wireMockServer, "CREATE_COMPLETE");
161         mockOpenStackPutStack(wireMockServer, VOUME_GROUP_NAME + "/stackId", 200);
162         mockOpenStackGetStackWithBody_200(wireMockServer, "UPDATE_COMPLETE");
163         UpdateVolumeGroupRequest request = buildUpdateVolumeGroupRequest();
164         HttpEntity<UpdateVolumeGroupRequest> entity = new HttpEntity<>(request, headers);
165         ResponseEntity<UpdateVolumeGroupResponse> response =
166                 restTemplate.exchange(createURLWithPort("/services/rest/v1/volume-groups/" + VOLUME_GROUP_ID),
167                         HttpMethod.PUT, entity, UpdateVolumeGroupResponse.class);
168         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
169     }
170
171     @Test
172     public void testUpdateVNFVolumesAsync() throws IOException {
173         mockOpenStackResponseAccess(wireMockServer, wireMockPort);
174         mockOpenStackGetStacksWithBody_200(wireMockServer, "CREATE_COMPLETE");
175         mockOpenStackPutStack(wireMockServer, VOUME_GROUP_NAME + "/stackId", 200);
176         mockOpenStackGetStackWithBody_200(wireMockServer, "UPDATE_COMPLETE");
177         UpdateVolumeGroupRequest request = buildUpdateVolumeGroupRequest();
178         request.setNotificationUrl("http://localhost:8080");
179         HttpEntity<UpdateVolumeGroupRequest> entity = new HttpEntity<>(request, headers);
180         ResponseEntity<UpdateVolumeGroupResponse> response =
181                 restTemplate.exchange(createURLWithPort("/services/rest/v1/volume-groups/" + VOLUME_GROUP_ID),
182                         HttpMethod.PUT, entity, UpdateVolumeGroupResponse.class);
183         assertEquals(Response.Status.ACCEPTED.getStatusCode(), response.getStatusCode().value());
184     }
185
186
187 }