[SDC-29] rebase continue work to align source
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / utils / validation / UserValidationUtils.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.validation;
22
23 import static org.testng.AssertJUnit.assertTrue;
24 import static org.testng.AssertJUnit.assertEquals;
25
26 import java.util.List;
27
28 import org.apache.commons.lang.StringUtils;
29 import org.openecomp.sdc.be.dao.utils.UserStatusEnum;
30 import org.openecomp.sdc.be.model.User;
31 import org.openecomp.sdc.ci.tests.datatypes.enums.ErrorInfo;
32 import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
33 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
34 import org.openecomp.sdc.ci.tests.users.AddUserAuditMessageInfo;
35 import org.openecomp.sdc.ci.tests.users.UserAuditJavaObject;
36 import org.openecomp.sdc.ci.tests.utils.DbUtils;
37 import org.openecomp.sdc.ci.tests.utils.Utils;
38
39 import com.google.gson.Gson;
40 import com.google.gson.JsonArray;
41 import com.google.gson.JsonElement;
42 import com.google.gson.JsonObject;
43 import com.google.gson.JsonParser;
44
45 public class UserValidationUtils {
46         public static void compareExpectedAndActualUsers(User expected, User actual) {
47
48                 String actualFirstName = actual.getFirstName();
49                 String expectedFirstName = expected.getFirstName();
50                 assertEquals("check user first name - ", expectedFirstName, actualFirstName);
51
52                 String actualLastName = actual.getLastName();
53                 String expectedLastName = expected.getLastName();
54                 assertEquals("check user last name - ", expectedLastName, actualLastName);
55
56                 String actualUserId = actual.getUserId();
57                 String expectedUserId = expected.getUserId();
58                 assertEquals("check user userId - ", expectedUserId, actualUserId);
59
60                 String actualEmail = actual.getEmail();
61                 String expectedEmail = expected.getEmail();
62                 assertEquals("check user email - ", expectedEmail, actualEmail);
63
64                 Long actualLastLoginTime = actual.getLastLoginTime();
65                 Long expectedLastLoginTime = expected.getLastLoginTime();
66                 assertEquals("check user last login time - ", expectedLastLoginTime, actualLastLoginTime);
67
68                 String actualRole = actual.getRole();
69                 if (expected.getRole() == null) {
70                         String expectedRole = UserRoleEnum.DESIGNER.name();
71                         assertEquals("check user role - ", expectedRole, actualRole);
72                 } else {
73                         String expectedRole = expected.getRole();
74                         assertEquals("check user role - ", expectedRole, actualRole);
75                 }
76
77                 UserStatusEnum actualStatus = expected.getStatus();
78                 UserStatusEnum expectedStatus = expected.getStatus();
79                 assertEquals("check user status - ", expectedStatus, actualStatus);
80         }
81
82         public static void validateDeleteUserAuditMessage(User sdncUserDetails, User sdncModifierDetails,
83                         String responseCode, String responseMessage, AddUserAuditMessageInfo addUserAuditMessageInfo) {
84                 String action = "DeleteUser";
85                 validateUserAuditMessage(sdncUserDetails, sdncModifierDetails, responseCode, responseMessage,
86                                 addUserAuditMessageInfo, action);
87
88         }
89
90         private static void validateUserAuditMessage(User sdncUserDetails, User sdncModifierDetails, String responseCode,
91                         String responseMessage, AddUserAuditMessageInfo addUserAuditMessageInfo, String expectedAction) {
92
93                 assertEquals("check audit action - ", expectedAction, addUserAuditMessageInfo.getACTION());
94
95                 // String expectedModifierFirstLastName =
96                 // sdncModifierDetails.getFirstName() + " " +
97                 // sdncModifierDetails.getLastName();
98                 // assertEquals("check audit modifier name - ",
99                 // expectedModifierFirstLastName,
100                 // addUserAuditMessageInfo.getMODIFIER_NAME());
101                 String fullName = sdncModifierDetails.getFullName();
102                 if (sdncModifierDetails.getFullName().equals(" ")) {
103                         fullName = "";
104                 }
105                 String expectedModifierId = fullName + "(" + sdncModifierDetails.getUserId() + ")";
106                 assertEquals("check audit modifier uid - ", expectedModifierId, addUserAuditMessageInfo.getMODIFIER());
107
108                 String expectedUserFirstLastName = sdncUserDetails.getFirstName() + " " + sdncUserDetails.getLastName();
109                 if (expectedUserFirstLastName.equals("null null")) {
110                         expectedUserFirstLastName = "";
111                 }
112
113                 String email = (sdncUserDetails.getEmail() == null) ? "" : sdncUserDetails.getEmail();
114                 String role = (sdncUserDetails.getRole() == null) ? "DESIGNER" : sdncUserDetails.getRole();
115
116                 String formatedUser = String.format("%s,%s,%s,%s", sdncUserDetails.getUserId(), expectedUserFirstLastName,
117                                 email, role);
118
119                 //
120                 // String expectedUserFirstLastName = sdncUserDetails.getFirstName() + "
121                 // " + sdncUserDetails.getLastName();
122                 // if (expectedUserFirstLastName.equals("null null")) {
123                 // expectedUserFirstLastName = "";
124                 // }
125                 //
126                 // String expectedUserFirstLastName = "";
127                 // expectedUserFirstLastName += sdncUserDetails.getFirstName() == null ?
128                 // "" : sdncUserDetails.getFirstName();
129                 // String lastName = sdncUserDetails.getLastName() == null ? "" :
130                 // sdncUserDetails.getLastName();
131                 // if (expectedUserFirstLastName.isEmpty()) {
132                 // expectedUserFirstLastName = lastName;
133                 // } else {
134                 // expectedUserFirstLastName += " " + lastName;
135                 // }
136
137                 assertEquals("check audit user name - ", formatedUser, addUserAuditMessageInfo.getUSER());
138
139                 // String expectedUserUid = sdncUserDetails.getUserId();
140                 // assertEquals("check audit user uid - ", expectedUserUid,
141                 // addUserAuditMessageInfo.getUSER_UID());
142                 //
143                 // String expectedUserEmail = sdncUserDetails.getEmail() == null ? "" :
144                 // sdncUserDetails.getEmail();
145                 // //TODO: esofer check with Andrey. Audit return "" but in user we have
146                 // null
147                 // assertEquals("check audit user email - ", expectedUserEmail,
148                 // addUserAuditMessageInfo.getUSER_EMAIL());
149                 //
150                 // String expectedUserRole = sdncUserDetails.getRole();
151                 // if (expectedUserRole ==null){
152                 // expectedUserRole = "DESIGNER";
153                 // assertEquals("check audit user role - ", expectedUserRole,
154                 // addUserAuditMessageInfo.getUSER_ROLE());
155                 // }else{
156                 // assertEquals("check audit user role - ", expectedUserRole,
157                 // addUserAuditMessageInfo.getUSER_ROLE());
158                 // }
159
160                 String expectedUserResponseCode = responseCode;
161                 assertEquals("check audit user response code - ", expectedUserResponseCode,
162                                 addUserAuditMessageInfo.getSTATUS());
163
164                 String expectedUserResponseMessage = responseMessage;
165                 assertEquals("check audit user response message - ", expectedUserResponseMessage,
166                                 addUserAuditMessageInfo.getDESC());
167
168         }
169
170         public static void validateDataAgainstAuditDB_access(User sdncUserDetails, UserAuditJavaObject auditJavaObject,
171                         RestResponse restResponse, ErrorInfo errorInfo, List<String> variables) {
172
173                 validateAuditDataAgainstAuditDbInAccess(sdncUserDetails, auditJavaObject, restResponse, errorInfo, variables);
174
175         }
176
177         public static void validateAuditDataAgainstAuditDbInAccess(User sdncUserDetails,
178                         UserAuditJavaObject auditJavaObject, RestResponse restResponse, ErrorInfo errorInfo,
179                         List<String> variables) {
180
181                 String expected;
182
183                 expected = "Access";
184                 assertEquals("ACTION- ", expected, auditJavaObject.getACTION());
185
186                 if (sdncUserDetails.getFirstName() != StringUtils.EMPTY && sdncUserDetails.getLastName() != StringUtils.EMPTY) {
187                         expected = sdncUserDetails.getFirstName() + " " + sdncUserDetails.getLastName();
188                 } else {
189                         expected = StringUtils.EMPTY;
190                 }
191                 String formatedUser = String.format("%s(%s)", expected, sdncUserDetails.getUserId());
192                 assertTrue(
193                                 "check audit user: expected start with - " + formatedUser + " ,actual - " + auditJavaObject.getUSER(),
194                                 auditJavaObject.getUSER().startsWith(formatedUser));
195
196                 expected = restResponse.getErrorCode().toString();
197                 assertEquals("check audit user status code - ", expected, auditJavaObject.getSTATUS());
198
199                 if (restResponse.getErrorCode() == 200 || restResponse.getErrorCode() == 201) {
200                         expected = errorInfo.getMessage();
201                 } else {
202                         expected = AuditValidationUtils.buildAuditDescription(errorInfo, variables);
203                 }
204
205                 assertEquals("check audit user desc - ", expected, auditJavaObject.getDESC());
206
207                 // expected = sdncUserDetails.getUserId();
208                 // assertEquals(expected, auditJavaObject.getUSER());
209
210         }
211
212         public static void validateUserDetailsOnResponse(User sdncUserDetails, String userDetailsOnResponse) {
213
214                 String actualFirstName = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "firstName");
215                 String expectedFirstName = sdncUserDetails.getFirstName();
216                 assertEquals("check user first name - ", expectedFirstName, actualFirstName);
217
218                 String actualLastName = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "lastName");
219                 String expectedLastName = sdncUserDetails.getLastName();
220                 assertEquals("check user last name - ", expectedLastName, actualLastName);
221
222                 String actualUserId = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "userId");
223                 String expectedUserId = sdncUserDetails.getUserId();
224                 assertEquals("check user userId - ", expectedUserId, actualUserId);
225
226                 String actualEmail = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "email");
227                 String expectedEmail = sdncUserDetails.getEmail();
228                 assertEquals("check user email - ", expectedEmail, actualEmail);
229
230                 String actualRole = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "role");
231                 if (sdncUserDetails.getRole() == null) {
232                         String expectedRole = UserRoleEnum.DESIGNER.name();
233                         assertEquals("check user role - ", expectedRole, actualRole);
234                 } else {
235                         String expectedRole = sdncUserDetails.getRole();
236                         assertEquals("check user role - ", expectedRole, actualRole);
237                 }
238
239                 String actualStatus = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "status");
240                 String expectedStatus = sdncUserDetails.getStatus().name();
241                 assertEquals("check user status - ", expectedStatus, actualStatus);
242
243         }
244
245         public static AddUserAuditMessageInfo getAddUserAuditMessage(String action) throws Exception {
246
247                 Gson gson = new Gson();
248                 String index = "auditingevents*";
249                 String type = "useradminevent";
250                 String pattern = "/_search?q=ACTION:\"" + action + "\"";
251                 String auditingMessage = DbUtils.retrieveAuditMessagesByPattern(pattern);
252                 // String auditingMessage = retrieveAuditMessageByIndexType(index, type,
253                 // pattern);
254                 JsonElement jElement = new JsonParser().parse(auditingMessage);
255                 JsonObject jObject = jElement.getAsJsonObject();
256                 JsonObject hitsObject = (JsonObject) jObject.get("hits");
257                 JsonArray hitsArray = (JsonArray) hitsObject.get("hits");
258                 // for (int i = 0; i < hitsArray.size();){
259                 if (hitsArray != null) {
260                         JsonObject jHitObject = (JsonObject) hitsArray.get(0);
261                         JsonObject jSourceObject = (JsonObject) jHitObject.get("_source");
262                         AddUserAuditMessageInfo addUserAuditMessageInfo = new AddUserAuditMessageInfo();
263                         addUserAuditMessageInfo = gson.fromJson(jSourceObject, AddUserAuditMessageInfo.class);
264                         return addUserAuditMessageInfo;
265                 }
266                 return null;
267
268         }
269
270         public static void validateAddUserAuditMessage(User sdncUserDetails, User sdncModifierDetails, String responseCode,
271                         String responseMessage, AddUserAuditMessageInfo addUserAuditMessageInfo) {
272
273                 String action = "AddUser";
274                 validateUserAuditMessage(sdncUserDetails, sdncModifierDetails, responseCode, responseMessage,
275                                 addUserAuditMessageInfo, action);
276
277         }
278
279 }