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.sdc.ci.tests.utils.rest;
23 import java.io.IOException;
24 import java.util.HashMap;
27 import org.apache.commons.lang.StringUtils;
28 import org.openecomp.sdc.be.model.User;
29 import org.openecomp.sdc.ci.tests.api.Urls;
30 import org.openecomp.sdc.ci.tests.config.Config;
31 import org.openecomp.sdc.ci.tests.datatypes.http.HttpHeaderEnum;
32 import org.openecomp.sdc.ci.tests.datatypes.http.HttpRequest;
33 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
34 import org.openecomp.sdc.ci.tests.run.StartTest;
35 import org.openecomp.sdc.ci.tests.utils.Utils;
36 import org.slf4j.Logger;
37 import org.slf4j.LoggerFactory;
39 import com.google.gson.Gson;
41 public class UserRestUtils extends BaseRestUtils {
43 static Gson gson = new Gson();
45 static Logger logger = LoggerFactory.getLogger(UserRestUtils.class.getName());
46 static String contentTypeHeaderData = "application/json";
47 static String acceptHeaderDate = "application/json";
49 public UserRestUtils() {
52 StartTest.enableLogger();
55 public static RestResponse createUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
57 Config config = Utils.getConfig();
59 Map<String, String> headersMap = new HashMap<String, String>();
60 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
61 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
62 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
64 String userBodyJson = gson.toJson(sdncUserDetails);
65 HttpRequest http = new HttpRequest();
66 String url = String.format(Urls.CREATE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
68 logger.debug("Send POST request to create user: {}",url);
69 logger.debug("User body: {}",userBodyJson);
70 logger.debug("User headers: {}",headersMap);
71 RestResponse sendCreateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
73 return sendCreateUserRequest;
77 public static RestResponse deactivateUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
78 return deleteUser(sdncUserDetails, sdncModifierDetails, true);
81 public static RestResponse deActivateUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
82 return deleteUser(sdncUserDetails, sdncModifierDetails, false);
85 public static RestResponse deleteUser(User sdncUserDetails, User sdncModifierDetails, boolean isForceDelete)
88 Config config = Utils.getConfig();
90 Map<String, String> headersMap = new HashMap<String, String>();
91 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
92 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
93 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
95 headersMap.put(User.FORCE_DELETE_HEADER_FLAG, User.FORCE_DELETE_HEADER_FLAG);
98 HttpRequest http = new HttpRequest();
99 String url = String.format(Urls.DELETE_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
100 sdncUserDetails.getUserId());
101 RestResponse sendDeleteUserRequest = http.httpSendDelete(url, headersMap);
102 return sendDeleteUserRequest;
106 public static RestResponse updateUser(User sdncUserDetails, User sdncModifierDetails)
107 throws IOException, CloneNotSupportedException {
109 Config config = Utils.getConfig();
110 User user = new User(sdncModifierDetails);
112 Map<String, String> headersMap = new HashMap<String, String>();
113 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
114 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
115 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
117 user.setUserId(StringUtils.EMPTY);
118 user.setRole(StringUtils.EMPTY);
120 Gson gson = new Gson();
121 String userBodyJson = gson.toJson(user);
122 logger.debug("userBodyJson: {}",userBodyJson);
123 HttpRequest http = new HttpRequest();
124 String url = String.format(Urls.UPDATE_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
125 sdncModifierDetails.getUserId());
126 RestResponse sendUpdateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
128 return sendUpdateUserRequest;
132 public static RestResponse updateUserRole(User sdncUserDetails, User sdncModifierDetails, String userIdToUpdate)
135 Config config = Utils.getConfig();
137 Map<String, String> headersMap = new HashMap<String, String>();
138 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
139 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
140 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
142 Gson gson = new Gson();
143 String userBodyJson = gson.toJson(sdncUserDetails);
144 logger.debug("userBodyJson: {}",userBodyJson);
145 HttpRequest http = new HttpRequest();
146 String url = String.format(Urls.UPDATE_USER_ROLE, config.getCatalogBeHost(), config.getCatalogBePort(),
148 RestResponse sendUpdateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
150 return sendUpdateUserRequest;
154 public static RestResponse getUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
156 Config config = Utils.getConfig();
158 Map<String, String> headersMap = new HashMap<String, String>();
159 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
160 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
161 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
162 HttpRequest http = new HttpRequest();
163 String url = String.format(Urls.GET_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
164 sdncUserDetails.getUserId());
165 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
166 return sendGetUserRequest;
170 public static RestResponse getAllAdminUsers(User sdncModifierDetails) throws IOException {
172 Config config = Utils.getConfig();
174 Map<String, String> headersMap = new HashMap<String, String>();
175 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
176 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
177 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
179 // Gson gson = new Gson();
180 // String userBodyJson = gson.toJson(sdncModifierDetails);
181 // System.out.println(userBodyJson);
182 HttpRequest http = new HttpRequest();
183 String url = String.format(Urls.GET_ALL_ADMIN_USERS, config.getCatalogBeHost(), config.getCatalogBePort());
184 logger.debug("Send following url: {} and headers: {}",url,headersMap.toString());
185 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
187 return sendGetUserRequest;
192 public static RestResponse getUsersByRoles(User sdncModifierDetails, String roles) throws IOException {
194 Config config = Utils.getConfig();
195 Map<String, String> headersMap = new HashMap<String, String>();
196 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
197 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
198 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
199 HttpRequest http = new HttpRequest();
202 url = String.format(Urls.GET_ALL_USERS, config.getCatalogBeHost(), config.getCatalogBePort());
204 url = String.format(Urls.GET_USERS_BY_ROLES, config.getCatalogBeHost(), config.getCatalogBePort(), roles);
207 logger.debug("Send following url: {} and headers: {}",url,headersMap.toString());
208 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
209 return sendGetUserRequest;
212 public static RestResponse getUsersByRolesHttpCspAtuUidIsMissing(User sdncModifierDetails, String roles)
215 Config config = Utils.getConfig();
216 Map<String, String> headersMap = new HashMap<String, String>();
217 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
218 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
219 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
220 headersMap.remove("USER_ID");
221 HttpRequest http = new HttpRequest();
222 String url = String.format(Urls.GET_USERS_BY_ROLES, config.getCatalogBeHost(), config.getCatalogBePort(),
225 "Send following url without USER_ID header : " + url + " headers: " + headersMap.toString());
227 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
228 return sendGetUserRequest;
231 public static RestResponse authorizedUserTowardsCatalogBe(User sdncUserDetails) throws IOException {
233 Map<String, String> headersMap = new HashMap<String, String>();
234 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), "application/json");
235 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), "application/json");
236 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
237 if (sdncUserDetails.getFirstName() != null) {
238 headersMap.put(HttpHeaderEnum.HTTP_CSP_FIRSTNAME.getValue(), sdncUserDetails.getFirstName());
240 if (sdncUserDetails.getLastName() != null) {
241 headersMap.put(HttpHeaderEnum.HTTP_CSP_LASTNAME.getValue(), sdncUserDetails.getLastName());
243 if (sdncUserDetails.getEmail() != null) {
244 headersMap.put(HttpHeaderEnum.HTTP_CSP_EMAIL.getValue(), sdncUserDetails.getEmail());
247 logger.debug("headersMap: {}",headersMap.toString());
249 Config config = Utils.getConfig();
250 HttpRequest http = new HttpRequest();
251 String url = String.format(Urls.AUTHORIZE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
252 logger.debug("Send GET request to login as seal user : {}",url);
253 return http.httpSendGet(url, headersMap);
256 public static RestResponse authorizedUserTowardsCatalogBeQA(User sdncUserDetails) throws IOException {
258 Map<String, String> headersMap = new HashMap<String, String>();
259 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), "application/json");
260 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), "application/json");
261 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
262 if (sdncUserDetails.getFirstName() != null) {
263 headersMap.put(HttpHeaderEnum.HTTP_CSP_FIRSTNAME.getValue(), sdncUserDetails.getFirstName());
265 if (sdncUserDetails.getLastName() != null) {
266 headersMap.put(HttpHeaderEnum.HTTP_CSP_LASTNAME.getValue(), sdncUserDetails.getLastName());
268 if (sdncUserDetails.getEmail() != null) {
269 headersMap.put(HttpHeaderEnum.HTTP_CSP_EMAIL.getValue(), sdncUserDetails.getEmail());
272 logger.debug("headersMap: {}",headersMap.toString());
274 Config config = Utils.getConfig();
275 HttpRequest http = new HttpRequest();
276 String url = String.format(Urls.AUTHORIZE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
277 logger.debug("Send GET request to login as seal user : {}",url);
278 return http.httpSendGet(url, headersMap);