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.validation;
23 import static org.testng.AssertJUnit.assertEquals;
24 import static org.testng.AssertJUnit.assertTrue;
26 import java.util.List;
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;
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;
45 public class UserValidationUtils {
46 public static void compareExpectedAndActualUsers(User expected, User actual) {
48 String actualFirstName = actual.getFirstName();
49 String expectedFirstName = expected.getFirstName();
50 assertEquals("check user first name - ", expectedFirstName, actualFirstName);
52 String actualLastName = actual.getLastName();
53 String expectedLastName = expected.getLastName();
54 assertEquals("check user last name - ", expectedLastName, actualLastName);
56 String actualUserId = actual.getUserId();
57 String expectedUserId = expected.getUserId();
58 assertEquals("check user userId - ", expectedUserId, actualUserId);
60 String actualEmail = actual.getEmail();
61 String expectedEmail = expected.getEmail();
62 assertEquals("check user email - ", expectedEmail, actualEmail);
64 Long actualLastLoginTime = actual.getLastLoginTime();
65 Long expectedLastLoginTime = expected.getLastLoginTime();
66 assertEquals("check user last login time - ", expectedLastLoginTime, actualLastLoginTime);
68 String actualRole = actual.getRole();
69 if (expected.getRole() == null) {
70 String expectedRole = UserRoleEnum.DESIGNER.name();
71 assertEquals("check user role - ", expectedRole, actualRole);
73 String expectedRole = expected.getRole();
74 assertEquals("check user role - ", expectedRole, actualRole);
77 UserStatusEnum actualStatus = expected.getStatus();
78 UserStatusEnum expectedStatus = expected.getStatus();
79 assertEquals("check user status - ", expectedStatus, actualStatus);
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);
90 private static void validateUserAuditMessage(User sdncUserDetails, User sdncModifierDetails, String responseCode,
91 String responseMessage, AddUserAuditMessageInfo addUserAuditMessageInfo, String expectedAction) {
93 assertEquals("check audit action - ", expectedAction, addUserAuditMessageInfo.getACTION());
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(" ")) {
105 String expectedModifierId = fullName + "(" + sdncModifierDetails.getUserId() + ")";
106 assertEquals("check audit modifier uid - ", expectedModifierId, addUserAuditMessageInfo.getMODIFIER());
108 String expectedUserFirstLastName = sdncUserDetails.getFirstName() + " " + sdncUserDetails.getLastName();
109 if (expectedUserFirstLastName.equals("null null")) {
110 expectedUserFirstLastName = "";
113 String email = (sdncUserDetails.getEmail() == null) ? "" : sdncUserDetails.getEmail();
114 String role = (sdncUserDetails.getRole() == null) ? "DESIGNER" : sdncUserDetails.getRole();
116 String formatedUser = String.format("%s,%s,%s,%s", sdncUserDetails.getUserId(), expectedUserFirstLastName,
120 // String expectedUserFirstLastName = sdncUserDetails.getFirstName() + "
121 // " + sdncUserDetails.getLastName();
122 // if (expectedUserFirstLastName.equals("null null")) {
123 // expectedUserFirstLastName = "";
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;
134 // expectedUserFirstLastName += " " + lastName;
137 assertEquals("check audit user name - ", formatedUser, addUserAuditMessageInfo.getUSER());
139 // String expectedUserUid = sdncUserDetails.getUserId();
140 // assertEquals("check audit user uid - ", expectedUserUid,
141 // addUserAuditMessageInfo.getUSER_UID());
143 // String expectedUserEmail = sdncUserDetails.getEmail() == null ? "" :
144 // sdncUserDetails.getEmail();
145 // //TODO: esofer check with Andrey. Audit return "" but in user we have
147 // assertEquals("check audit user email - ", expectedUserEmail,
148 // addUserAuditMessageInfo.getUSER_EMAIL());
150 // String expectedUserRole = sdncUserDetails.getRole();
151 // if (expectedUserRole ==null){
152 // expectedUserRole = "DESIGNER";
153 // assertEquals("check audit user role - ", expectedUserRole,
154 // addUserAuditMessageInfo.getUSER_ROLE());
156 // assertEquals("check audit user role - ", expectedUserRole,
157 // addUserAuditMessageInfo.getUSER_ROLE());
160 String expectedUserResponseCode = responseCode;
161 assertEquals("check audit user response code - ", expectedUserResponseCode,
162 addUserAuditMessageInfo.getSTATUS());
164 String expectedUserResponseMessage = responseMessage;
165 assertEquals("check audit user response message - ", expectedUserResponseMessage,
166 addUserAuditMessageInfo.getDESC());
170 public static void validateDataAgainstAuditDB_access(User sdncUserDetails, UserAuditJavaObject auditJavaObject,
171 RestResponse restResponse, ErrorInfo errorInfo, List<String> variables) {
173 validateAuditDataAgainstAuditDbInAccess(sdncUserDetails, auditJavaObject, restResponse, errorInfo, variables);
177 public static void validateAuditDataAgainstAuditDbInAccess(User sdncUserDetails,
178 UserAuditJavaObject auditJavaObject, RestResponse restResponse, ErrorInfo errorInfo,
179 List<String> variables) {
184 assertEquals("ACTION- ", expected, auditJavaObject.getACTION());
186 if (sdncUserDetails.getFirstName() != StringUtils.EMPTY && sdncUserDetails.getLastName() != StringUtils.EMPTY) {
187 expected = sdncUserDetails.getFirstName() + " " + sdncUserDetails.getLastName();
189 expected = StringUtils.EMPTY;
191 String formatedUser = String.format("%s(%s)", expected, sdncUserDetails.getUserId());
193 "check audit user: expected start with - " + formatedUser + " ,actual - " + auditJavaObject.getUSER(),
194 auditJavaObject.getUSER().startsWith(formatedUser));
196 expected = restResponse.getErrorCode().toString();
197 assertEquals("check audit user status code - ", expected, auditJavaObject.getSTATUS());
199 if (restResponse.getErrorCode() == 200 || restResponse.getErrorCode() == 201) {
200 expected = errorInfo.getMessage();
202 expected = AuditValidationUtils.buildAuditDescription(errorInfo, variables);
205 assertEquals("check audit user desc - ", expected, auditJavaObject.getDESC());
207 // expected = sdncUserDetails.getUserId();
208 // assertEquals(expected, auditJavaObject.getUSER());
212 public static void validateUserDetailsOnResponse(User sdncUserDetails, String userDetailsOnResponse) {
214 String actualFirstName = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "firstName");
215 String expectedFirstName = sdncUserDetails.getFirstName();
216 assertEquals("check user first name - ", expectedFirstName, actualFirstName);
218 String actualLastName = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "lastName");
219 String expectedLastName = sdncUserDetails.getLastName();
220 assertEquals("check user last name - ", expectedLastName, actualLastName);
222 String actualUserId = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "userId");
223 String expectedUserId = sdncUserDetails.getUserId();
224 assertEquals("check user userId - ", expectedUserId, actualUserId);
226 String actualEmail = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "email");
227 String expectedEmail = sdncUserDetails.getEmail();
228 assertEquals("check user email - ", expectedEmail, actualEmail);
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);
235 String expectedRole = sdncUserDetails.getRole();
236 assertEquals("check user role - ", expectedRole, actualRole);
239 String actualStatus = Utils.getJsonObjectValueByKey(userDetailsOnResponse, "status");
240 String expectedStatus = sdncUserDetails.getStatus().name();
241 assertEquals("check user status - ", expectedStatus, actualStatus);
245 public static AddUserAuditMessageInfo getAddUserAuditMessage(String action) throws Exception {
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,
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;
270 public static void validateAddUserAuditMessage(User sdncUserDetails, User sdncModifierDetails, String responseCode,
271 String responseMessage, AddUserAuditMessageInfo addUserAuditMessageInfo) {
273 String action = "AddUser";
274 validateUserAuditMessage(sdncUserDetails, sdncModifierDetails, responseCode, responseMessage,
275 addUserAuditMessageInfo, action);