Replaced all tabs with spaces in java and pom.xml
[so.git] / adapters / mso-openstack-adapters / src / test / java / org / onap / so / adapters / tenant / TenantAdapterRestTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 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.tenant;
22
23 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
24 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
25 import static org.junit.Assert.assertEquals;
26 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackDeleteTenantById_200;
27 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetMetadata_200;
28 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetRoles_200;
29 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetTenantById_200;
30 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetTenantById_404;
31 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetTenantByName_200;
32 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetTenantByName_404;
33 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackGetUser_200;
34 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostMetadata_200;
35 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostTenantWithBodyFile_200;
36 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPostTenant_200;
37 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackPutRolesAdmin_200;
38 import static org.onap.so.bpmn.mock.StubOpenStack.mockOpenStackResponseAccessAdmin;
39 import java.io.File;
40 import java.io.IOException;
41 import java.util.HashMap;
42 import java.util.Map;
43 import javax.ws.rs.core.MediaType;
44 import javax.ws.rs.core.Response;
45 import org.junit.Ignore;
46 import org.junit.Test;
47 import org.onap.so.adapters.tenantrest.CreateTenantRequest;
48 import org.onap.so.adapters.tenantrest.CreateTenantResponse;
49 import org.onap.so.adapters.tenantrest.DeleteTenantRequest;
50 import org.onap.so.adapters.tenantrest.DeleteTenantResponse;
51 import org.onap.so.adapters.vnf.BaseRestTestUtils;
52 import org.onap.so.client.policy.JettisonStyleMapperProvider;
53 import org.onap.so.entity.MsoRequest;
54 import org.springframework.beans.factory.annotation.Autowired;
55 import org.springframework.http.HttpEntity;
56 import org.springframework.http.HttpMethod;
57 import org.springframework.http.ResponseEntity;
58 import com.fasterxml.jackson.core.JsonParseException;
59 import com.fasterxml.jackson.databind.JsonMappingException;
60
61 public class TenantAdapterRestTest extends BaseRestTestUtils {
62
63     @Autowired
64     private JettisonStyleMapperProvider jettisonTypeObjectMapper;
65
66     @Test
67     public void testCreateTenantCreated() throws JsonParseException, JsonMappingException, IOException {
68
69         CreateTenantRequest request = new CreateTenantRequest();
70         String cloudSiteId = "MTN13";
71         String requestId = "62265093-277d-4388-9ba6-449838ade586";
72         String serviceInstanceId = "4147e06f-1b89-49c5-b21f-4faf8dc9805a";
73         String tenantName = "testingTenantName";
74         boolean failIfExists = true;
75         boolean backout = true;
76         Map<String, String> metaData = new HashMap<>();
77         metaData.put("key1", "value2");
78         MsoRequest msoReq = new MsoRequest();
79         msoReq.setRequestId(requestId);
80         msoReq.setServiceInstanceId(serviceInstanceId);
81
82         request.setCloudSiteId(cloudSiteId);
83         request.setMsoRequest(msoReq);
84         request.setTenantName(tenantName);
85         request.setMetadata(metaData);
86         request.setBackout(backout);
87         request.setFailIfExists(failIfExists);
88
89         mockOpenStackResponseAccessAdmin(wireMockServer, wireMockPort);
90
91         mockOpenStackGetTenantByName_404(wireMockServer, tenantName);
92
93         mockOpenStackPostTenantWithBodyFile_200(wireMockServer);
94
95         mockOpenStackGetUser_200(wireMockServer, "m93945");
96
97         mockOpenStackGetRoles_200(wireMockServer, "OS-KSADM");
98
99         mockOpenStackPutRolesAdmin_200(wireMockServer, "OS-KSADM");
100
101         mockOpenStackPostMetadata_200(wireMockServer);
102
103         headers.add("Accept", MediaType.APPLICATION_JSON);
104         HttpEntity<CreateTenantRequest> entity = new HttpEntity<CreateTenantRequest>(request, headers);
105
106         ResponseEntity<CreateTenantResponse> response = restTemplate.exchange(
107                 createURLWithPort("/services/rest/v1/tenants"), HttpMethod.POST, entity, CreateTenantResponse.class);
108
109         CreateTenantResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
110                 new File("src/test/resources/__files/CreateTenantResponse_Created.json"), CreateTenantResponse.class);
111
112         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
113         assertThat(response.getBody(), sameBeanAs(expectedResponse));
114     }
115
116     @Test
117     public void testCreateTenantExists() throws JsonParseException, JsonMappingException, IOException {
118
119         CreateTenantRequest request = new CreateTenantRequest();
120         String cloudSiteId = "MTN13";
121         String requestId = "62265093-277d-4388-9ba6-449838ade586";
122         String serviceInstanceId = "4147e06f-1b89-49c5-b21f-4faf8dc9805a";
123         String tenantName = "testingTenantName";
124         boolean failIfExists = false;
125         boolean backout = true;
126         Map<String, String> metadata = new HashMap<>();
127
128         MsoRequest msoReq = new MsoRequest();
129         msoReq.setRequestId(requestId);
130         msoReq.setServiceInstanceId(serviceInstanceId);
131
132         request.setCloudSiteId(cloudSiteId);
133         request.setMsoRequest(msoReq);
134         request.setTenantName(tenantName);
135         request.setMetadata(metadata);
136         request.setBackout(backout);
137         request.setFailIfExists(failIfExists);
138
139         mockOpenStackResponseAccessAdmin(wireMockServer, wireMockPort);
140
141         mockOpenStackGetTenantByName_200(wireMockServer, tenantName);
142
143         mockOpenStackPostTenant_200(wireMockServer);
144
145         mockOpenStackGetMetadata_200(wireMockServer);
146
147         headers.add("Accept", MediaType.APPLICATION_JSON);
148         HttpEntity<CreateTenantRequest> entity = new HttpEntity<CreateTenantRequest>(request, headers);
149
150         ResponseEntity<CreateTenantResponse> response = restTemplate.exchange(
151                 createURLWithPort("/services/rest/v1/tenants"), HttpMethod.POST, entity, CreateTenantResponse.class);
152
153         CreateTenantResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
154                 new File("src/test/resources/__files/CreateTenantResponse_Exists.json"), CreateTenantResponse.class);
155
156         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
157         assertThat(response.getBody(), sameBeanAs(expectedResponse));
158     }
159
160     @Test
161     public void testDeleteTenant() throws IOException {
162
163         DeleteTenantRequest request = new DeleteTenantRequest();
164         String cloudSiteId = "mtn13";
165         String tenantId = "tenantId";
166         String requestId = "ra1";
167         String serviceInstanceId = "sa1";
168
169         MsoRequest msoReq = new MsoRequest();
170         msoReq.setRequestId(requestId);
171         msoReq.setServiceInstanceId(serviceInstanceId);
172
173         request.setCloudSiteId(cloudSiteId);
174         request.setTenantId(tenantId);
175         request.setMsoRequest(msoReq);
176
177         mockOpenStackResponseAccessAdmin(wireMockServer, wireMockPort);
178
179         mockOpenStackGetTenantById_200(wireMockServer, tenantId);
180
181         mockOpenStackDeleteTenantById_200(wireMockServer, tenantId);
182
183         headers.add("Accept", MediaType.APPLICATION_JSON);
184         HttpEntity<DeleteTenantRequest> entity = new HttpEntity<DeleteTenantRequest>(request, headers);
185
186         ResponseEntity<DeleteTenantResponse> response =
187                 restTemplate.exchange(createURLWithPort("/services/rest/v1/tenants/tenantId"), HttpMethod.DELETE,
188                         entity, DeleteTenantResponse.class);
189
190         DeleteTenantResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
191                 new File("src/test/resources/__files/DeleteTenantResponse_Success.json"), DeleteTenantResponse.class);
192
193         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
194         assertThat(response.getBody(), sameBeanAs(expectedResponse));
195     }
196
197     // @Ignore
198     @Test
199     public void testDeleteTenantFails() throws IOException {
200
201         DeleteTenantRequest request = new DeleteTenantRequest();
202         String cloudSiteId = "mtn13";
203         String tenantId = "tenantId";
204         String requestId = "ra1";
205         String serviceInstanceId = "sa1";
206
207         MsoRequest msoReq = new MsoRequest();
208         msoReq.setRequestId(requestId);
209         msoReq.setServiceInstanceId(serviceInstanceId);
210
211         request.setCloudSiteId(cloudSiteId);
212         request.setTenantId(tenantId);
213         request.setMsoRequest(msoReq);
214
215         mockOpenStackResponseAccessAdmin(wireMockServer, wireMockPort);
216
217         mockOpenStackGetTenantById_404(wireMockServer, tenantId);
218
219         headers.add("Accept", MediaType.APPLICATION_JSON);
220         HttpEntity<DeleteTenantRequest> entity = new HttpEntity<DeleteTenantRequest>(request, headers);
221
222         ResponseEntity<DeleteTenantResponse> response =
223                 restTemplate.exchange(createURLWithPort("/services/rest/v1/tenants/tenantId"), HttpMethod.DELETE,
224                         entity, DeleteTenantResponse.class);
225
226         DeleteTenantResponse expectedResponse = jettisonTypeObjectMapper.getMapper().readValue(
227                 new File("src/test/resources/__files/DeleteTenantResponse_Failed.json"), DeleteTenantResponse.class);
228
229         assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
230         assertThat(response.getBody(), sameBeanAs(expectedResponse));
231     }
232
233     @Ignore
234     @Test
235     public void testQuaryTenant() {
236
237
238
239     }
240 }