re base code
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / utils / rest / UserRestUtils.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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.openecomp.sdc.ci.tests.utils.rest;
22
23 import com.google.gson.Gson;
24 import org.apache.commons.lang.StringUtils;
25 import org.openecomp.sdc.be.model.User;
26 import org.openecomp.sdc.ci.tests.api.Urls;
27 import org.openecomp.sdc.ci.tests.config.Config;
28 import org.openecomp.sdc.ci.tests.datatypes.http.HttpHeaderEnum;
29 import org.openecomp.sdc.ci.tests.datatypes.http.HttpRequest;
30 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
31 import org.openecomp.sdc.ci.tests.run.StartTest;
32 import org.openecomp.sdc.ci.tests.utils.Utils;
33 import org.slf4j.Logger;
34 import org.slf4j.LoggerFactory;
35
36 import java.io.IOException;
37 import java.util.HashMap;
38 import java.util.Map;
39
40 public class UserRestUtils extends BaseRestUtils {
41
42         static Gson gson = new Gson();
43
44         static Logger logger = LoggerFactory.getLogger(UserRestUtils.class.getName());
45         static String contentTypeHeaderData = "application/json";
46         static String acceptHeaderDate = "application/json";
47
48         public UserRestUtils() {
49                 super();
50
51                 StartTest.enableLogger();
52         }
53
54         public static RestResponse createUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
55
56                 Config config = Utils.getConfig();
57
58                 Map<String, String> headersMap = new HashMap<String, String>();
59                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
60                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
61                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
62
63                 String userBodyJson = gson.toJson(sdncUserDetails);
64                 HttpRequest http = new HttpRequest();
65                 String url = String.format(Urls.CREATE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
66
67                 logger.debug("Send POST request to create user: {}", url);
68                 logger.debug("User body: {}", userBodyJson);
69                 logger.debug("User headers: {}", headersMap);
70                 RestResponse sendCreateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
71
72                 return sendCreateUserRequest;
73
74         }
75
76         public static RestResponse deactivateUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
77                 return deleteUser(sdncUserDetails, sdncModifierDetails, true);
78         }
79
80         public static RestResponse deActivateUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
81                 return deleteUser(sdncUserDetails, sdncModifierDetails, false);
82         }
83
84         public static RestResponse deleteUser(User sdncUserDetails, User sdncModifierDetails, boolean isForceDelete)
85                         throws IOException {
86
87                 Config config = Utils.getConfig();
88
89                 Map<String, String> headersMap = new HashMap<String, String>();
90                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
91                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
92                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
93                 if (isForceDelete) {
94                         headersMap.put(User.FORCE_DELETE_HEADER_FLAG, User.FORCE_DELETE_HEADER_FLAG);
95                 }
96
97                 HttpRequest http = new HttpRequest();
98                 String url = String.format(Urls.DELETE_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
99                                 sdncUserDetails.getUserId());
100                 RestResponse sendDeleteUserRequest = http.httpSendDelete(url, headersMap);
101                 return sendDeleteUserRequest;
102
103         }
104
105         public static RestResponse updateUser(User sdncUserDetails, User sdncModifierDetails)
106                         throws IOException, CloneNotSupportedException {
107
108                 Config config = Utils.getConfig();
109                 User user = new User(sdncModifierDetails);
110
111                 Map<String, String> headersMap = new HashMap<String, String>();
112                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
113                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
114                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
115
116                 user.setUserId(StringUtils.EMPTY);
117                 user.setRole(StringUtils.EMPTY);
118
119                 Gson gson = new Gson();
120                 String userBodyJson = gson.toJson(user);
121                 logger.debug("userBodyJson: {}", userBodyJson);
122                 HttpRequest http = new HttpRequest();
123                 String url = String.format(Urls.UPDATE_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
124                                 sdncModifierDetails.getUserId());
125                 RestResponse sendUpdateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
126
127                 return sendUpdateUserRequest;
128         }
129
130         /// Benny
131         public static RestResponse updateUserRole(User sdncUserDetails, User sdncModifierDetails, String userIdToUpdate)
132                         throws IOException {
133
134                 Config config = Utils.getConfig();
135
136                 Map<String, String> headersMap = new HashMap<String, String>();
137                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
138                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
139                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
140
141                 Gson gson = new Gson();
142                 String userBodyJson = gson.toJson(sdncUserDetails);
143                 logger.debug("userBodyJson: {}", userBodyJson);
144                 HttpRequest http = new HttpRequest();
145                 String url = String.format(Urls.UPDATE_USER_ROLE, config.getCatalogBeHost(), config.getCatalogBePort(),
146                                 userIdToUpdate);
147                 RestResponse sendUpdateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
148
149                 return sendUpdateUserRequest;
150
151         }
152
153         public static RestResponse getUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
154
155                 Config config = Utils.getConfig();
156
157                 Map<String, String> headersMap = new HashMap<String, String>();
158                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
159                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
160                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
161                 HttpRequest http = new HttpRequest();
162                 String url = String.format(Urls.GET_USER, config.getCatalogBeHost(), config.getCatalogBePort(),
163                                 sdncUserDetails.getUserId());
164                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
165                 return sendGetUserRequest;
166
167         }
168         
169         public static RestResponse getUserRole(User sdncUserDetails, User sdncModifierDetails) throws IOException {
170
171                 Config config = Utils.getConfig();
172
173                 Map<String, String> headersMap = new HashMap<>();
174                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
175                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
176                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
177                 HttpRequest http = new HttpRequest();
178                 String url = String.format(Urls.GET_USER_ROLE, config.getCatalogBeHost(), config.getCatalogBePort(),
179                                 sdncUserDetails.getUserId());
180                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
181                 return sendGetUserRequest;
182
183         }
184         
185         
186
187         public static RestResponse getAllAdminUsers(User sdncModifierDetails) throws IOException {
188
189                 Config config = Utils.getConfig();
190
191                 Map<String, String> headersMap = new HashMap<>();
192                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
193                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
194                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
195
196                 // Gson gson = new Gson();
197                 // String userBodyJson = gson.toJson(sdncModifierDetails);
198                 // System.out.println(userBodyJson);
199                 HttpRequest http = new HttpRequest();
200                 String url = String.format(Urls.GET_ALL_ADMIN_USERS, config.getCatalogBeHost(), config.getCatalogBePort());
201                 logger.debug("Send following url: {} and headers: {}",url, headersMap.toString());
202                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
203
204                 return sendGetUserRequest;
205
206         }
207
208         // US571255
209         public static RestResponse getUsersByRoles(User sdncModifierDetails, String roles) throws IOException {
210
211                 Config config = Utils.getConfig();
212                 Map<String, String> headersMap = new HashMap<String, String>();
213                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
214                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
215                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
216                 HttpRequest http = new HttpRequest();
217                 String url;
218                 if (roles == "/") {
219                         url = String.format(Urls.GET_ALL_USERS, config.getCatalogBeHost(), config.getCatalogBePort());
220                 } else {
221                         url = String.format(Urls.GET_USERS_BY_ROLES, config.getCatalogBeHost(), config.getCatalogBePort(), roles);
222
223                 }
224                 logger.debug("Send following url: {} and headers: {}",url, headersMap.toString());
225                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
226                 return sendGetUserRequest;
227         }
228
229         public static RestResponse getUsersByRolesHttpCspAtuUidIsMissing(User sdncModifierDetails, String roles)
230                         throws Exception {
231
232                 Config config = Utils.getConfig();
233                 Map<String, String> headersMap = new HashMap<String, String>();
234                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), contentTypeHeaderData);
235                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), acceptHeaderDate);
236                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncModifierDetails.getUserId());
237                 headersMap.remove("USER_ID");
238                 HttpRequest http = new HttpRequest();
239                 String url = String.format(Urls.GET_USERS_BY_ROLES, config.getCatalogBeHost(), config.getCatalogBePort(),
240                                 roles);
241                 logger.debug(
242                                 "Send following url without USER_ID header : " + url + "  headers: " + headersMap.toString());
243
244                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
245                 return sendGetUserRequest;
246         }
247
248         public static RestResponse authorizedUserTowardsCatalogBe(User sdncUserDetails) throws IOException {
249
250                 Map<String, String> headersMap = new HashMap<String, String>();
251                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), "application/json");
252                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), "application/json");
253                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
254                 if (sdncUserDetails.getFirstName() != null) {
255                         headersMap.put(HttpHeaderEnum.HTTP_CSP_FIRSTNAME.getValue(), sdncUserDetails.getFirstName());
256                 }
257                 if (sdncUserDetails.getLastName() != null) {
258                         headersMap.put(HttpHeaderEnum.HTTP_CSP_LASTNAME.getValue(), sdncUserDetails.getLastName());
259                 }
260                 if (sdncUserDetails.getEmail() != null) {
261                         headersMap.put(HttpHeaderEnum.HTTP_CSP_EMAIL.getValue(), sdncUserDetails.getEmail());
262                 }
263
264                 logger.debug("headersMap: {}", headersMap.toString());
265
266                 Config config = Utils.getConfig();
267                 HttpRequest http = new HttpRequest();
268                 String url = String.format(Urls.AUTHORIZE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
269                 logger.debug("Send GET request to login as seal user : {}", url);
270                 return http.httpSendGet(url, headersMap);
271         }
272
273         public static RestResponse authorizedUserTowardsCatalogBeQA(User sdncUserDetails) throws IOException {
274
275                 Map<String, String> headersMap = new HashMap<String, String>();
276                 headersMap.put(HttpHeaderEnum.CONTENT_TYPE.getValue(), "application/json");
277                 headersMap.put(HttpHeaderEnum.ACCEPT.getValue(), "application/json");
278                 headersMap.put(HttpHeaderEnum.USER_ID.getValue(), sdncUserDetails.getUserId());
279                 if (sdncUserDetails.getFirstName() != null) {
280                         headersMap.put(HttpHeaderEnum.HTTP_CSP_FIRSTNAME.getValue(), sdncUserDetails.getFirstName());
281                 }
282                 if (sdncUserDetails.getLastName() != null) {
283                         headersMap.put(HttpHeaderEnum.HTTP_CSP_LASTNAME.getValue(), sdncUserDetails.getLastName());
284                 }
285                 if (sdncUserDetails.getEmail() != null) {
286                         headersMap.put(HttpHeaderEnum.HTTP_CSP_EMAIL.getValue(), sdncUserDetails.getEmail());
287                 }
288
289                 logger.debug("headersMap: {}", headersMap.toString());
290
291                 Config config = Utils.getConfig();
292                 HttpRequest http = new HttpRequest();
293                 String url = String.format(Urls.AUTHORIZE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
294                 logger.debug("Send GET request to login as seal user : {}", url);
295                 return http.httpSendGet(url, headersMap);
296         }
297
298 }