Fix for radio buttons
[sdc.git] / asdc-tests / 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 java.io.IOException;
24 import java.util.HashMap;
25 import java.util.Map;
26
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;
38
39 import com.google.gson.Gson;
40
41 public class UserRestUtils extends BaseRestUtils {
42
43         static Gson gson = new Gson();
44
45         static Logger logger = LoggerFactory.getLogger(UserRestUtils.class.getName());
46         static String contentTypeHeaderData = "application/json";
47         static String acceptHeaderDate = "application/json";
48
49         public UserRestUtils() {
50                 super();
51
52                 StartTest.enableLogger();
53         }
54
55         public static RestResponse createUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
56
57                 Config config = Utils.getConfig();
58
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());
63
64                 String userBodyJson = gson.toJson(sdncUserDetails);
65                 HttpRequest http = new HttpRequest();
66                 String url = String.format(Urls.CREATE_USER, config.getCatalogBeHost(), config.getCatalogBePort());
67
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);
72
73                 return sendCreateUserRequest;
74
75         }
76
77         public static RestResponse deactivateUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
78                 return deleteUser(sdncUserDetails, sdncModifierDetails, true);
79         }
80
81         public static RestResponse deActivateUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
82                 return deleteUser(sdncUserDetails, sdncModifierDetails, false);
83         }
84
85         public static RestResponse deleteUser(User sdncUserDetails, User sdncModifierDetails, boolean isForceDelete)
86                         throws IOException {
87
88                 Config config = Utils.getConfig();
89
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());
94                 if (isForceDelete) {
95                         headersMap.put(User.FORCE_DELETE_HEADER_FLAG, User.FORCE_DELETE_HEADER_FLAG);
96                 }
97
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;
103
104         }
105
106         public static RestResponse updateUser(User sdncUserDetails, User sdncModifierDetails)
107                         throws IOException, CloneNotSupportedException {
108
109                 Config config = Utils.getConfig();
110                 User user = new User(sdncModifierDetails);
111
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());
116
117                 user.setUserId(StringUtils.EMPTY);
118                 user.setRole(StringUtils.EMPTY);
119
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);
127
128                 return sendUpdateUserRequest;
129         }
130
131         /// Benny
132         public static RestResponse updateUserRole(User sdncUserDetails, User sdncModifierDetails, String userIdToUpdate)
133                         throws IOException {
134
135                 Config config = Utils.getConfig();
136
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());
141
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(),
147                                 userIdToUpdate);
148                 RestResponse sendUpdateUserRequest = http.httpSendPost(url, userBodyJson, headersMap);
149
150                 return sendUpdateUserRequest;
151
152         }
153
154         public static RestResponse getUser(User sdncUserDetails, User sdncModifierDetails) throws IOException {
155
156                 Config config = Utils.getConfig();
157
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;
167
168         }
169
170         public static RestResponse getAllAdminUsers(User sdncModifierDetails) throws IOException {
171
172                 Config config = Utils.getConfig();
173
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());
178
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);
186
187                 return sendGetUserRequest;
188
189         }
190
191         // US571255
192         public static RestResponse getUsersByRoles(User sdncModifierDetails, String roles) throws IOException {
193
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();
200                 String url;
201                 if (roles == "/") {
202                         url = String.format(Urls.GET_ALL_USERS, config.getCatalogBeHost(), config.getCatalogBePort());
203                 } else {
204                         url = String.format(Urls.GET_USERS_BY_ROLES, config.getCatalogBeHost(), config.getCatalogBePort(), roles);
205
206                 }
207                 logger.debug("Send following url: {} and headers: {}",url,headersMap.toString());
208                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
209                 return sendGetUserRequest;
210         }
211
212         public static RestResponse getUsersByRolesHttpCspAtuUidIsMissing(User sdncModifierDetails, String roles)
213                         throws Exception {
214
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(),
223                                 roles);
224                 logger.debug(
225                                 "Send following url without USER_ID header : " + url + "  headers: " + headersMap.toString());
226
227                 RestResponse sendGetUserRequest = http.httpSendGet(url, headersMap);
228                 return sendGetUserRequest;
229         }
230
231         public static RestResponse authorizedUserTowardsCatalogBe(User sdncUserDetails) throws IOException {
232
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());
239                 }
240                 if (sdncUserDetails.getLastName() != null) {
241                         headersMap.put(HttpHeaderEnum.HTTP_CSP_LASTNAME.getValue(), sdncUserDetails.getLastName());
242                 }
243                 if (sdncUserDetails.getEmail() != null) {
244                         headersMap.put(HttpHeaderEnum.HTTP_CSP_EMAIL.getValue(), sdncUserDetails.getEmail());
245                 }
246
247                 logger.debug("headersMap: {}",headersMap.toString());
248
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);
254         }
255
256         public static RestResponse authorizedUserTowardsCatalogBeQA(User sdncUserDetails) throws IOException {
257
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());
264                 }
265                 if (sdncUserDetails.getLastName() != null) {
266                         headersMap.put(HttpHeaderEnum.HTTP_CSP_LASTNAME.getValue(), sdncUserDetails.getLastName());
267                 }
268                 if (sdncUserDetails.getEmail() != null) {
269                         headersMap.put(HttpHeaderEnum.HTTP_CSP_EMAIL.getValue(), sdncUserDetails.getEmail());
270                 }
271
272                 logger.debug("headersMap: {}",headersMap.toString());
273
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);
279         }
280
281 }