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