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