2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.mso.apihandlerinfra.tenantisolation;
\r
23 import static org.junit.Assert.assertEquals;
\r
24 import static org.junit.Assert.assertTrue;
\r
25 import static org.mockito.Mockito.mock;
\r
26 import static org.mockito.Mockito.when;
\r
28 import java.sql.Timestamp;
\r
29 import java.text.DateFormat;
\r
30 import java.text.ParseException;
\r
31 import java.text.SimpleDateFormat;
\r
32 import java.util.ArrayList;
\r
33 import java.util.Date;
\r
34 import java.util.HashMap;
\r
35 import java.util.List;
\r
36 import java.util.Map;
\r
38 import javax.ws.rs.core.Response;
\r
40 import org.jboss.resteasy.spi.ResteasyUriInfo;
\r
41 import org.junit.Ignore;
42 import org.junit.Test;
\r
43 import org.openecomp.mso.requestsdb.InfraActiveRequests;
\r
44 import org.openecomp.mso.requestsdb.RequestsDatabase;
\r
46 public class CloudResourcesOrchestrationTest {
\r
48 private String requestJSON = "{\"requestDetails\":{\"requestInfo\":{\"source\":\"VID\",\"requestorId\":\"zz9999\" } } }";
\r
51 public void testUnlockFailObjectMapping() {
\r
52 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
53 Response response = cor.unlockOrchestrationRequest(null, null, null);
\r
54 String body = response.getEntity().toString();
\r
55 assertTrue(body.contains("Mapping of request to JSON object failed."));
\r
56 assertEquals(400, response.getStatus());
\r
60 public void testUnlockFailObjectMapping2() {
\r
61 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
62 Response response = cor.unlockOrchestrationRequest(null, "requestId", null);
\r
63 String body = response.getEntity().toString();
\r
64 assertTrue(body.contains("Mapping of request to JSON object failed."));
\r
65 assertEquals(400, response.getStatus());
\r
69 public void testParseOrchestrationError1() {
\r
70 String requestJSON = "{\"requestDetails\": null }";
\r
71 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
72 Response response = cor.unlockOrchestrationRequest(requestJSON, "requestId", null);
\r
73 String body = response.getEntity().toString();
\r
74 assertTrue(body.contains("Error parsing request."));
\r
75 assertEquals(400, response.getStatus());
\r
79 public void testParseOrchestrationError2() {
\r
80 String requestJSON = "{\"requestDetails\":{\"requestInfo\":{\"source\":\"\",\"requestorId\":\"zz9999\" } } }";
\r
81 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
82 Response response = cor.unlockOrchestrationRequest(requestJSON, "requestId", null);
\r
83 String body = response.getEntity().toString();
\r
84 assertTrue(body.contains("Error parsing request."));
\r
85 assertEquals(400, response.getStatus());
\r
89 public void testParseOrchestrationError3() {
\r
90 String requestJSON = "{\"requestDetails\":{\"requestInfo\":{\"source\":\"VID\",\"requestorId\":\"\" } } }";
\r
91 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
92 Response response = cor.unlockOrchestrationRequest(requestJSON, "requestId", null);
\r
93 String body = response.getEntity().toString();
\r
94 assertTrue(body.contains("Error parsing request."));
\r
95 assertEquals(400, response.getStatus());
\r
99 public void testGetInfraActiveRequestNull() {
\r
100 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
101 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
102 cor.setRequestsDB(reqDB);
\r
103 when(reqDB.getRequestFromInfraActive("requestId")).thenReturn(null);
\r
105 Response response = cor.unlockOrchestrationRequest(requestJSON, "requestId", null);
\r
106 String body = response.getEntity().toString();
\r
107 assertTrue(body.contains("Orchestration RequestId requestId is not found in DB"));
\r
108 assertEquals(404, response.getStatus());
\r
112 public void testUnlockError() {
\r
113 InfraActiveRequests iar = new InfraActiveRequests();
\r
114 iar.setRequestId("requestId");
\r
115 iar.setRequestScope("requestScope");
\r
116 iar.setRequestType("requestType");
\r
117 iar.setOperationalEnvId("operationalEnvironmentId");
\r
118 iar.setOperationalEnvName("operationalEnvName");
\r
119 iar.setRequestorId("ma920e");
\r
120 iar.setRequestBody("");
\r
121 iar.setRequestStatus("IN_PROGRESS");
\r
123 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
124 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
125 cor.setRequestsDB(reqDB);
\r
126 when(reqDB.getRequestFromInfraActive("requestId")).thenReturn(iar);
\r
127 when(reqDB.updateInfraStatus("requestId", "UNLOCKED", "APIH")).thenReturn(1);
\r
129 Response response = cor.unlockOrchestrationRequest(requestJSON, "requestId", null);
\r
130 assertEquals(404, response.getStatus());
\r
134 public void testUnlock() throws ParseException {
\r
135 InfraActiveRequests iar = new InfraActiveRequests();
\r
136 iar.setRequestId("requestId");
\r
137 iar.setRequestScope("requestScope");
\r
138 iar.setRequestType("requestType");
\r
139 iar.setOperationalEnvId("operationalEnvironmentId");
\r
140 iar.setOperationalEnvName("operationalEnvName");
\r
141 iar.setRequestorId("ma920e");
\r
142 iar.setRequestBody("");
\r
143 iar.setRequestStatus("IN_PROGRESS");
\r
145 DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
\r
146 Date date = dateFormat.parse("23/09/2007");
\r
147 long time = date.getTime();
\r
148 iar.setStartTime(new Timestamp(time));
\r
150 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
151 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
152 cor.setRequestsDB(reqDB);
\r
153 when(reqDB.getRequestFromInfraActive("requestId")).thenReturn(iar);
\r
154 when(reqDB.updateInfraStatus("requestId", "UNLOCKED", "APIH")).thenReturn(1);
\r
156 Response response = cor.unlockOrchestrationRequest(requestJSON, "requestId", null);
\r
157 assertEquals(204, response.getStatus());
\r
161 public void testUnlockComplete() throws ParseException {
\r
162 InfraActiveRequests iar = new InfraActiveRequests();
\r
163 iar.setRequestId("requestId");
\r
164 iar.setRequestScope("requestScope");
\r
165 iar.setRequestType("requestType");
\r
166 iar.setOperationalEnvId("operationalEnvironmentId");
\r
167 iar.setOperationalEnvName("operationalEnvName");
\r
168 iar.setRequestorId("ma920e");
\r
169 iar.setRequestBody("");
\r
170 iar.setRequestStatus("COMPLETE");
\r
172 DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
\r
173 Date date = dateFormat.parse("23/09/2007");
\r
174 long time = date.getTime();
\r
175 iar.setStartTime(new Timestamp(time));
\r
177 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
178 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
179 cor.setRequestsDB(reqDB);
\r
180 when(reqDB.getRequestFromInfraActive("requestId")).thenReturn(iar);
\r
181 when(reqDB.updateInfraStatus("requestId", "UNLOCKED", "APIH")).thenReturn(1);
\r
183 Response response = cor.unlockOrchestrationRequest(requestJSON, "requestId", null);
\r
184 String body = response.getEntity().toString();
\r
185 assertTrue(body.contains("Orchestration RequestId requestId has a status of COMPLETE and can not be unlocked"));
\r
186 assertEquals(400, response.getStatus());
\r
190 public void testGetOperationalEnvFilter() {
\r
191 ResteasyUriInfo uriInfo = new ResteasyUriInfo("", "requestId=89c56827-1c78-4827-bc4d-6afcdb37a51f", "");
\r
192 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
193 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
194 cor.setRequestsDB(reqDB);
\r
195 when(reqDB.getRequestFromInfraActive("89c56827-1c78-4827-bc4d-6afcdb37a51f")).thenReturn(null);
\r
197 Response response = cor.getOperationEnvironmentStatusFilter(uriInfo, null);
\r
198 String body = response.getEntity().toString();
\r
200 assertTrue(body.contains("Orchestration RequestId 89c56827-1c78-4827-bc4d-6afcdb37a51f is not found in DB"));
\r
201 assertEquals(204, response.getStatus());
\r
205 public void testGetOperationalEnvFilterException() {
\r
206 ResteasyUriInfo uriInfo = new ResteasyUriInfo("", "requestId=89c56827-1c78-4827-bc4d-6afcdb37a51f", "");
\r
207 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
209 Response response = cor.getOperationEnvironmentStatusFilter(uriInfo, null);
\r
210 assertEquals(404, response.getStatus());
\r
214 public void testGetOperationalEnvSuccess() throws ParseException {
\r
215 InfraActiveRequests iar = new InfraActiveRequests();
\r
216 iar.setRequestId("requestId");
\r
217 iar.setRequestScope("requestScope");
\r
218 iar.setRequestType("requestType");
\r
219 iar.setOperationalEnvId("operationalEnvironmentId");
\r
220 iar.setOperationalEnvName("operationalEnvName");
\r
221 iar.setRequestorId("ma920e");
\r
222 iar.setRequestBody("");
\r
223 iar.setRequestStatus("COMPLETE");
\r
225 DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
\r
226 Date date = dateFormat.parse("23/09/2007");
\r
227 long time = date.getTime();
\r
228 iar.setStartTime(new Timestamp(time));
\r
230 ResteasyUriInfo uriInfo = new ResteasyUriInfo("", "requestId=89c56827-1c78-4827-bc4d-6afcdb37a51f", "");
\r
231 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
232 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
233 cor.setRequestsDB(reqDB);
\r
234 when(reqDB.getRequestFromInfraActive("89c56827-1c78-4827-bc4d-6afcdb37a51f")).thenReturn(iar);
\r
236 Response response = cor.getOperationEnvironmentStatusFilter(uriInfo, null);
\r
237 assertEquals(200, response.getStatus());
\r
241 public void testGetOperationalEnvFilterSuccess() throws ParseException {
\r
242 InfraActiveRequests iar = new InfraActiveRequests();
\r
243 iar.setRequestId("requestId");
\r
244 iar.setRequestScope("requestScope");
\r
245 iar.setRequestType("requestType");
\r
246 iar.setOperationalEnvId("operationalEnvironmentId");
\r
247 iar.setOperationalEnvName("operationalEnvName");
\r
248 iar.setRequestorId("ma920e");
\r
249 iar.setRequestBody("");
\r
250 iar.setRequestStatus("COMPLETE");
\r
251 iar.setStatusMessage("status Message");
\r
252 iar.setProgress(20L);
\r
254 DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
\r
255 Date date = dateFormat.parse("23/09/2007");
\r
256 long time = date.getTime();
\r
257 iar.setStartTime(new Timestamp(time));
\r
258 iar.setEndTime(new Timestamp(time));
\r
260 List<InfraActiveRequests> requests = new ArrayList<>();
\r
263 Map<String, String> map = new HashMap<>();
\r
264 map.put("operationalEnvironmentName", "myVnfOpEnv");
\r
266 ResteasyUriInfo uriInfo = new ResteasyUriInfo("", "operationalEnvironmentName=myVnfOpEnv&requestorId=test", "");
\r
267 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
268 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
269 cor.setRequestsDB(reqDB);
\r
270 when(reqDB.getCloudOrchestrationFiltersFromInfraActive(map)).thenReturn(requests);
\r
272 Response response = cor.getOperationEnvironmentStatusFilter(uriInfo, null);
\r
273 assertEquals(200, response.getStatus());
\r
276 @Ignore // 1802 merge
278 public void testGetOperationalEnvFilterException1() throws ParseException {
\r
279 InfraActiveRequests iar = new InfraActiveRequests();
\r
280 iar.setRequestId("requestId");
\r
281 iar.setRequestScope("requestScope");
\r
282 iar.setRequestType("requestType");
\r
283 iar.setOperationalEnvId("operationalEnvironmentId");
\r
284 iar.setOperationalEnvName("operationalEnvName");
\r
285 iar.setRequestorId("ma920e");
\r
286 iar.setRequestBody("");
\r
287 iar.setRequestStatus("COMPLETE");
\r
289 List<InfraActiveRequests> requests = new ArrayList<>();
\r
292 Map<String, String> map = new HashMap<>();
\r
293 map.put("operationalEnvironmentName", "myVnfOpEnv");
\r
295 ResteasyUriInfo uriInfo = new ResteasyUriInfo("", "filter=operationalEnvironmentName:EQUALS:myVnfOpEnv", "");
\r
296 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
297 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
298 cor.setRequestsDB(reqDB);
\r
299 when(reqDB.getCloudOrchestrationFiltersFromInfraActive(map)).thenReturn(requests);
\r
301 Response response = cor.getOperationEnvironmentStatusFilter(uriInfo, null);
\r
302 assertEquals(500, response.getStatus());
\r
306 public void testGetOperationalEnvFilterException2() throws ParseException {
\r
307 InfraActiveRequests iar = new InfraActiveRequests();
\r
308 iar.setRequestId("requestId");
\r
309 iar.setRequestScope("requestScope");
\r
310 iar.setRequestType("requestType");
\r
311 iar.setOperationalEnvId("operationalEnvId");
\r
312 iar.setOperationalEnvName("operationalEnvName");
\r
313 iar.setRequestorId("ma920e");
\r
314 iar.setRequestBody("");
\r
315 iar.setRequestStatus("COMPLETE");
\r
317 List<InfraActiveRequests> requests = new ArrayList<>();
\r
320 Map<String, String> map = new HashMap<>();
\r
321 map.put("operationalEnvironmentName", "myVnfOpEnv");
\r
323 ResteasyUriInfo uriInfo = new ResteasyUriInfo("", "operationalEnvironmentName=", "");
\r
324 CloudResourcesOrchestration cor = new CloudResourcesOrchestration();
\r
325 RequestsDatabase reqDB = mock(RequestsDatabase.class);
\r
326 cor.setRequestsDB(reqDB);
\r
327 when(reqDB.getCloudOrchestrationFiltersFromInfraActive(map)).thenReturn(requests);
\r
329 Response response = cor.getOperationEnvironmentStatusFilter(uriInfo, null);
\r
330 assertEquals(500, response.getStatus());
\r
331 assertTrue(response.getEntity().toString().contains("No valid operationalEnvironmentName value is specified"));
\r