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 com.datastax.driver.core.ColumnDefinitions;
24 import com.datastax.driver.core.Row;
25 import org.apache.log4j.Logger;
26 import org.codehaus.jettison.json.JSONArray;
27 import org.codehaus.jettison.json.JSONException;
28 import org.codehaus.jettison.json.JSONObject;
29 import org.javatuples.Pair;
30 import org.openecomp.sdc.be.dao.api.ActionStatus;
31 import org.openecomp.sdc.be.datatypes.elements.ConsumerDataDefinition;
32 import org.openecomp.sdc.be.model.ArtifactDefinition;
33 import org.openecomp.sdc.be.model.LifecycleStateEnum;
34 import org.openecomp.sdc.be.model.User;
35 import org.openecomp.sdc.be.model.category.CategoryDefinition;
36 import org.openecomp.sdc.be.model.category.GroupingDefinition;
37 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
38 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
39 import org.openecomp.sdc.ci.tests.api.Urls;
40 import org.openecomp.sdc.ci.tests.config.Config;
41 import org.openecomp.sdc.ci.tests.datatypes.ServiceReqDetails;
42 import org.openecomp.sdc.ci.tests.datatypes.enums.AuditEnum;
43 import org.openecomp.sdc.ci.tests.datatypes.enums.AuditJsonKeysEnum;
44 import org.openecomp.sdc.ci.tests.datatypes.enums.ComponentType;
45 import org.openecomp.sdc.ci.tests.datatypes.enums.ErrorInfo;
46 import org.openecomp.sdc.ci.tests.datatypes.expected.*;
47 import org.openecomp.sdc.ci.tests.datatypes.http.HttpRequest;
48 import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
49 import org.openecomp.sdc.ci.tests.run.StartTest;
50 import org.openecomp.sdc.ci.tests.utils.Utils;
51 import org.openecomp.sdc.ci.tests.utils.cassandra.CassandraUtils;
52 import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
53 import org.openecomp.sdc.ci.tests.utils.rest.CategoryRestUtils.CategoryAuditJsonKeysEnum;
54 import org.openecomp.sdc.ci.tests.utils.rest.ConsumerRestUtils.EcompConsumerAuditJsonKeysEnum;
55 import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
56 import org.openecomp.sdc.common.api.Constants;
57 import org.openecomp.sdc.common.datastructure.AuditingFieldsKey;
59 import java.io.FileNotFoundException;
60 import java.io.IOException;
63 import static org.testng.AssertJUnit.assertEquals;
64 import static org.testng.AssertJUnit.assertTrue;
66 public class AuditValidationUtils {
67 protected static Logger logger = Logger.getLogger(AuditValidationUtils.class.getName());
68 private static final String auditKeySpaceName = "sdcaudit";
70 public AuditValidationUtils() {
73 StartTest.enableLogger();
74 logger = Logger.getLogger(AuditValidationUtils.class.getName());
78 public static String buildAuditDescription(ErrorInfo errorInfo, List<String> errorVariablesList) {
80 if(errorInfo.getMessageId() != null){
81 auditDesc = errorInfo.getMessageId() + ": " + errorInfo.getMessage();
83 auditDesc = errorInfo.getMessage();
86 // if(! variables.isEmpty() && variables.get(0) != null && ! variables.get(0).isEmpty()){
87 // for (int i = 0; i < variables.size(); i++) {
88 // if (auditDesc.contains("%" + (i + 1))) {
89 // auditDesc = auditDesc.replace("%" + (i + 1), variables.get(i));
93 if(errorVariablesList != null && ! errorVariablesList.isEmpty() && errorVariablesList.get(0) != null){
94 for (int i = 0; i < errorVariablesList.size(); i++) {
95 if (auditDesc.contains("%" + (i + 1))) {
96 auditDesc = auditDesc.replace("%" + (i + 1), errorVariablesList.get(i));
103 public static String getModifierString(String userName, String uid) {
105 if (userName.isEmpty() && uid.isEmpty())
108 StringBuilder sb = new StringBuilder();
109 sb.append(userName).append("(").append(uid).append(")");
110 return sb.toString();
114 public static void validateAuditDownloadExternalAPI(ExpectedResourceAuditJavaObject resourceAuditJavaObject,
115 String action, String body, boolean checkAllFields) throws Exception {
116 Map<String, Object> actualAuditRecords = parseAuditResourceByAction(action, null);
118 validateField(actualAuditRecords, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
119 validateField(actualAuditRecords, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
120 validateField(actualAuditRecords, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
121 validateField(actualAuditRecords, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
122 validateField(actualAuditRecords, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
126 public static void validateAudit(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action, String body, boolean checkAllFields) throws Exception {
127 Map<String, Object> actualAuditRecords = parseAuditResourceByAction(action, null);
129 if ((resourceAuditJavaObject.getModifierName() != null) && (resourceAuditJavaObject.getModifierUid() != null)) {
130 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(),
131 resourceAuditJavaObject.getModifierUid()));
134 validateField(actualAuditRecords, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
135 validateField(actualAuditRecords, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
136 validateField(actualAuditRecords, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
137 validateField(actualAuditRecords, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevVersion());
138 validateField(actualAuditRecords, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
140 validateField(actualAuditRecords, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getModifierUid());
141 validateField(actualAuditRecords, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevState());
142 validateField(actualAuditRecords, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
143 validateField(actualAuditRecords, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
144 validateField(actualAuditRecords, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
145 validateField(actualAuditRecords, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), resourceAuditJavaObject.getComment());
146 validateField(actualAuditRecords, AuditJsonKeysEnum.TOSCA_NODE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getToscaNodeType());
147 validateField(actualAuditRecords, AuditJsonKeysEnum.CURR_ARTIFACT_UUID.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrArtifactUuid());
148 validateField(actualAuditRecords, AuditJsonKeysEnum.PREV_ARTIFACT_UUID.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevArtifactUuid());
150 validateAtifactDataField(actualAuditRecords, AuditJsonKeysEnum.ARTIFACT_DATA.getAuditJsonKeyName(), resourceAuditJavaObject.getArtifactData(), checkAllFields);
153 public static void validateExternalAudit(ExpectedExternalAudit externalAuditObject, String action, Map<AuditingFieldsKey, String> body) throws Exception {
155 Map<String, Object> actualAuditRecord = parseAuditResourceByAction(action, body);
157 validateField(actualAuditRecord, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
158 validateField(actualAuditRecord, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), externalAuditObject.getCONSUMER_ID());
160 validateField(actualAuditRecord, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), externalAuditObject.getRESOURCE_URL());
162 validateField(actualAuditRecord, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), externalAuditObject.getRESOURCE_NAME());
163 validateField(actualAuditRecord, AuditJsonKeysEnum.SERVICE_INSTANCE_ID.getAuditJsonKeyName(), externalAuditObject.getSERVICE_INSTANCE_ID());
165 validateField(actualAuditRecord, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), externalAuditObject.getRESOURCE_TYPE());
166 validateField(actualAuditRecord, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), externalAuditObject.getSTATUS());
167 validateField(actualAuditRecord, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), externalAuditObject.getDESC());
169 // validateField(actualAuditRecord, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), externalAuditObject.getMODIFIER());
170 validateField(actualAuditRecord, AuditJsonKeysEnum.PREV_ARTIFACT_UUID.getAuditJsonKeyName(), externalAuditObject.getPREV_ARTIFACT_UUID());
171 validateField(actualAuditRecord, AuditJsonKeysEnum.CURR_ARTIFACT_UUID.getAuditJsonKeyName(), externalAuditObject.getCURR_ARTIFACT_UUID());
173 validateField(actualAuditRecord, AuditJsonKeysEnum.ARTIFACT_DATA.getAuditJsonKeyName(), externalAuditObject.getARTIFACT_DATA());
177 public enum ArtifactDataFieldEnum {
178 attGroup, artLable, artType, artName, artTimeout, artPayloadUUID, artVersion, artUUID
181 private static void validateAtifactDataField(Map<String, Object> map, String auditJsonKeyName,
182 String expectedArtifactData, boolean checkAllFields) {
183 Map<ArtifactDataFieldEnum, String> expectedArtifactDataFileds = new HashMap<ArtifactDataFieldEnum, String>();
184 Map<ArtifactDataFieldEnum, String> actualAtifactDataFileds = new HashMap<ArtifactDataFieldEnum, String>();
185 if (expectedArtifactData != null) {
186 String[] expected = expectedArtifactData.split(",");
188 assertTrue("Audit field " + auditJsonKeyName + " not found", map.containsKey(auditJsonKeyName));
189 String actualValue = (String) map.get(auditJsonKeyName);
190 String[] actual = actualValue.split(",");
192 if (expected.length == 1 && actual.length == 1) {
193 assertEquals(expectedArtifactData, actualValue);
197 assertEquals(ArtifactDataFieldEnum.values().length, expected.length);
198 assertEquals(ArtifactDataFieldEnum.values().length, actual.length);
200 for (ArtifactDataFieldEnum field : ArtifactDataFieldEnum.values()) {
202 expectedArtifactDataFileds.put(field, expected[field.ordinal()]);
203 actualAtifactDataFileds.put(field, actual[field.ordinal()]);
205 for (Map.Entry<ArtifactDataFieldEnum, String> entry : expectedArtifactDataFileds.entrySet()) {
206 ArtifactDataFieldEnum field = entry.getKey();
207 if (checkAllFields || (!field.equals(ArtifactDataFieldEnum.artVersion)
208 && !field.equals(ArtifactDataFieldEnum.artUUID))) {
209 assertTrue("Audit field ArtifactData dosn't containt " + field,
210 actualAtifactDataFileds.containsKey(field));
211 assertEquals("Audit field ArtifactData dosn't equal " + field,
212 expectedArtifactDataFileds.get(field), actualAtifactDataFileds.get(field));
220 public static void validateEcompConsumerAudit(ExpectedEcomConsumerAudit ecompConsumerAuditJavaObject, String action) throws Exception {
222 String fixedAction = BaseRestUtils.encodeUrlForDownload(action);
223 Map<String, Object> map2 = parseAuditResourceByAction(fixedAction, null);
225 validateField(map2, EcompConsumerAuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), ecompConsumerAuditJavaObject.getModifier());
226 validateField(map2, EcompConsumerAuditJsonKeysEnum.ECOMP_USER.getAuditJsonKeyName(), ecompConsumerAuditJavaObject.getEcomUser());
227 validateField(map2, EcompConsumerAuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), ecompConsumerAuditJavaObject.getStatus());
228 validateField(map2, EcompConsumerAuditJsonKeysEnum.DESC.getAuditJsonKeyName(), ecompConsumerAuditJavaObject.getDesc());
229 validateField(map2, EcompConsumerAuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
232 public static void ecompConsumerAuditSuccess(String action, ConsumerDataDefinition consumerDataDefinition, User user, int status) throws Exception {
233 ExpectedEcomConsumerAudit expectedEcomConsumerAuditJavaObject = new ExpectedEcomConsumerAudit();
234 expectedEcomConsumerAuditJavaObject.setAction(action);
235 expectedEcomConsumerAuditJavaObject.setEcomUser(
236 consumerDataDefinition.getConsumerName() + "," + consumerDataDefinition.getConsumerSalt().toLowerCase()
237 + "," + consumerDataDefinition.getConsumerPassword().toLowerCase());
238 expectedEcomConsumerAuditJavaObject.setStatus(String.valueOf(status));
239 expectedEcomConsumerAuditJavaObject.setDesc("OK");
240 expectedEcomConsumerAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
241 AuditValidationUtils.validateEcompConsumerAudit(expectedEcomConsumerAuditJavaObject, action);
244 public static void createEcompConsumerAuditFailure(String action, ConsumerDataDefinition consumerDataDefinition,
245 User user, ActionStatus errorMessage, Object... variables) throws Exception {
247 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
248 ExpectedEcomConsumerAudit expectedEcomConsumerAuditJavaObject = new ExpectedEcomConsumerAudit();
249 expectedEcomConsumerAuditJavaObject.setAction(action);
250 expectedEcomConsumerAuditJavaObject.setEcomUser(
251 consumerDataDefinition.getConsumerName() + "," + consumerDataDefinition.getConsumerSalt().toLowerCase()
252 + "," + consumerDataDefinition.getConsumerPassword().toLowerCase());
253 expectedEcomConsumerAuditJavaObject.setStatus(errorInfo.getCode().toString());
254 expectedEcomConsumerAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
255 expectedEcomConsumerAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
256 AuditValidationUtils.validateEcompConsumerAudit(expectedEcomConsumerAuditJavaObject, action);
259 public static void deleteEcompConsumerAuditFailure(String action, ConsumerDataDefinition consumerDataDefinition,
260 User user, ActionStatus errorMessage, Object... variables) throws Exception {
262 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
263 ExpectedEcomConsumerAudit expectedEcomConsumerAuditJavaObject = new ExpectedEcomConsumerAudit();
264 // String auditAction = ADD_ECOMP_USER_CREDENTIALS_AUDIT_ACTION;
265 expectedEcomConsumerAuditJavaObject.setAction(action);
266 expectedEcomConsumerAuditJavaObject.setEcomUser(consumerDataDefinition.getConsumerName());
267 expectedEcomConsumerAuditJavaObject.setStatus(errorInfo.getCode().toString());
268 expectedEcomConsumerAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
269 expectedEcomConsumerAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
270 AuditValidationUtils.validateEcompConsumerAudit(expectedEcomConsumerAuditJavaObject, action);
273 ////////////////////// US571255
274 public static void GetListOfUsersByRolesAuditFailure(String action, String roles, int status, User userModifier,
275 ActionStatus errorMessage, Object... variables) throws Exception {
276 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
277 ExpectedGetUserListAudit expectedGetListOfUsersAuditJavaObject = new ExpectedGetUserListAudit(); // String
280 // ADD_ECOMP_USER_CREDENTIALS_AUDIT_ACTION;
281 expectedGetListOfUsersAuditJavaObject.setAction(action);
282 expectedGetListOfUsersAuditJavaObject.setStatus(String.valueOf(status));
283 expectedGetListOfUsersAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
285 expectedGetListOfUsersAuditJavaObject.setDetails(roles);
286 if (errorMessage == ActionStatus.USER_INACTIVE || errorMessage == ActionStatus.MISSING_INFORMATION) {
287 expectedGetListOfUsersAuditJavaObject.setModifier("(UNKNOWN)");
289 expectedGetListOfUsersAuditJavaObject
290 .setModifier(userModifier.getFullName() + "(" + userModifier.getUserId() + ")");
292 AuditValidationUtils.validateAuditGetListOfUsersByRoles(expectedGetListOfUsersAuditJavaObject, action);
295 public static void GetListOfUsersByRolesAuditSuccess(String action, String roles, User user, int status)
297 ExpectedGetUserListAudit expectedGetListOfUsersAuditJavaObject = new ExpectedGetUserListAudit();
298 expectedGetListOfUsersAuditJavaObject.setAction(action);
299 expectedGetListOfUsersAuditJavaObject.setStatus(String.valueOf(status));
300 expectedGetListOfUsersAuditJavaObject.setDesc("OK");
301 expectedGetListOfUsersAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
302 expectedGetListOfUsersAuditJavaObject.setDetails(roles);
303 validateAuditGetListOfUsersByRoles(expectedGetListOfUsersAuditJavaObject, action);
306 public static void validateAuditGetListOfUsersByRoles(ExpectedGetUserListAudit GetListOfUsersAuditJavaObject,
307 String action) throws Exception {
309 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
310 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
311 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), GetListOfUsersAuditJavaObject.getStatus());
312 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), GetListOfUsersAuditJavaObject.getModifier());
313 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), GetListOfUsersAuditJavaObject.getDesc());
314 validateField(map2, AuditJsonKeysEnum.DETAILS.getAuditJsonKeyName(), GetListOfUsersAuditJavaObject.getDetails());
317 public static void validateAuditImport(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
319 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
321 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(), resourceAuditJavaObject.getModifierUid()));
323 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
324 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
325 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevVersion());
326 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
327 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getModifierUid());
328 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevState());
329 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
330 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
331 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
335 public static void validateAuditDistribution(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
337 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
339 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(), resourceAuditJavaObject.getModifierUid()));
341 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
342 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
343 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
344 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
345 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getModifierUid());
346 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
347 validateField(map2, AuditJsonKeysEnum.DPREV_STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getDprevStatus());
348 validateField(map2, AuditJsonKeysEnum.DCURR_STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getDcurrStatus());
349 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
350 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
351 validateField(map2, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), resourceAuditJavaObject.getComment());
352 validateField(map2, AuditJsonKeysEnum.DID.getAuditJsonKeyName(), resourceAuditJavaObject.getDistributionId());
357 public static void validateAudit_Distribution(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
359 List<Map<String, Object>> actionToList = getAuditListByAction(resourceAuditJavaObject.getAction(), 1);
360 Map<String, Object> map2 = actionToList.get(0);
361 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
362 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
363 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
364 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
365 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getMODIFIER());
366 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
367 validateField(map2, AuditJsonKeysEnum.DPREV_STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getDprevStatus());
368 validateField(map2, AuditJsonKeysEnum.DCURR_STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getDcurrStatus());
369 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
370 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
371 validateField(map2, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), resourceAuditJavaObject.getComment());
375 public void validateAuditNotification(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
377 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
379 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(), resourceAuditJavaObject.getModifierUid()));
381 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
382 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
383 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
384 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
385 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
386 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
387 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
388 validateField(map2, AuditJsonKeysEnum.DID.getAuditJsonKeyName(), resourceAuditJavaObject.getDistributionId());
389 validateField(map2, AuditJsonKeysEnum.TOPIC_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getTopicName());
393 public static void validateAudit(ExpectedDistDownloadAudit expectedDistDownloadAudit, String action) throws Exception {
395 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
397 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
398 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedDistDownloadAudit.getStatus());
399 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedDistDownloadAudit.getDesc());
400 validateField(map2, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), expectedDistDownloadAudit.getConsumerId());
401 validateField(map2, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), expectedDistDownloadAudit.getResourceUrl());
404 public static void validateAuditExternalSearchAPI(ExpectedExternalAudit expectedDistDownloadAudit, String action, Map<AuditingFieldsKey, String> body)
407 Map<String, Object> map2 = parseAuditResourceByAction(action, body);
409 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
410 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedDistDownloadAudit.getSTATUS());
411 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedDistDownloadAudit.getDESC());
412 validateField(map2, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), expectedDistDownloadAudit.getCONSUMER_ID());
413 validateField(map2, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), expectedDistDownloadAudit.getRESOURCE_URL());
416 public static void validateAuditExternalCreateResource(ExpectedResourceAuditJavaObject expectedExternalAudit, String action, Map<AuditingFieldsKey, String> body) throws Exception {
417 Map<String, Object> map2 = parseAuditResourceByAction(action, body);
419 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
420 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), expectedExternalAudit.getResourceName());
421 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), expectedExternalAudit.getResourceType());
422 validateField(map2, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), expectedExternalAudit.getCONSUMER_ID());
423 validateField(map2, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), expectedExternalAudit.getRESOURCE_URL());
424 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedExternalAudit.getMODIFIER());
426 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), expectedExternalAudit.getPrevVersion());
427 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), expectedExternalAudit.getCurrVersion());
428 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), expectedExternalAudit.getPrevState());
429 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), expectedExternalAudit.getCurrState());
431 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedExternalAudit.getStatus());
432 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedExternalAudit.getDesc());
435 public static void validateAuditExternalChangeAssetLifeCycle(ExpectedResourceAuditJavaObject expectedExternalAudit, String action, Map<AuditingFieldsKey, String> body) throws Exception {
436 Map<String, Object> map2 = parseAuditResourceByAction(action, body);
438 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
439 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedExternalAudit.getDesc());
440 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedExternalAudit.getStatus());
442 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), expectedExternalAudit.getResourceType());
443 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), expectedExternalAudit.getResourceName());
444 validateField(map2, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), expectedExternalAudit.getCONSUMER_ID());
445 validateField(map2, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), expectedExternalAudit.getRESOURCE_URL());
446 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedExternalAudit.getMODIFIER());
448 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), expectedExternalAudit.getPrevVersion());
449 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), expectedExternalAudit.getCurrVersion());
450 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), expectedExternalAudit.getPrevState());
451 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), expectedExternalAudit.getCurrState());
455 public void validateAuditDeploy(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action)
458 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
460 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(), resourceAuditJavaObject.getModifierUid()));
462 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
463 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
464 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
465 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
466 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getModifierUid());
467 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
468 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
469 validateField(map2, AuditJsonKeysEnum.DID.getAuditJsonKeyName(), resourceAuditJavaObject.getDistributionId());
473 public static void validateAuditProduct(ExpectedProductAudit productExpectedAudit, String action,
474 AuditJsonKeysEnum... additionalFields) throws Exception {
476 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
478 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
479 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), productExpectedAudit.getRESOURCE_NAME());
480 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), productExpectedAudit.getRESOURCE_TYPE());
481 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), productExpectedAudit.getPREV_VERSION());
482 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), productExpectedAudit.getCURR_VERSION());
483 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), productExpectedAudit.getPREV_STATE());
484 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), productExpectedAudit.getCURR_STATE());
485 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), productExpectedAudit.getMODIFIER());
486 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), productExpectedAudit.getSTATUS());
487 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), productExpectedAudit.getDESC());
488 validateField(map2, AuditJsonKeysEnum.SERVICE_INSTANCE_ID.getAuditJsonKeyName(), productExpectedAudit.getSERVICE_INSTANCE_ID());
489 if (additionalFields != null) {
490 List<AuditJsonKeysEnum> fieldsList = Arrays.asList(additionalFields);
491 if (fieldsList.contains(AuditJsonKeysEnum.COMMENT)) {
492 validateField(map2, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), productExpectedAudit.getCOMMENT());
497 private static List<Map<String, Object>> getAuditListByAction(String action, int expectedNumOfAudit)
499 List<Map<String, Object>> actionToList = parseAuditResourceByActionToList(action, null);
500 assertEquals("recieved different audits number than expected", expectedNumOfAudit, actionToList.size());
504 public static void validateAuthenticationAudit(ExpectedAuthenticationAudit expectedAudit) throws Exception {
505 List<Map<String, Object>> actionToList = getAuditListByAction(expectedAudit.getAction(), 1);
506 assertEquals("expected number of ES action is 1", 1, actionToList.size());
508 Map<String, Object> map = actionToList.get(0);
509 validateField(map, AuditEnum.ACTION.getValue(), expectedAudit.getAction());
510 validateField(map, AuditEnum.URL.getValue(), expectedAudit.getUrl());
511 validateField(map, AuditEnum.USER.getValue(), expectedAudit.getUser());
512 validateField(map, AuditEnum.AUTH_STATUS.getValue(), expectedAudit.getAuthStatus());
513 validateField(map, AuditEnum.REALM.getValue(), expectedAudit.getRealm());
517 private static void validateField(Map<String, Object> actualAuditRecord, String jsonField, Object expectedValue) {
518 if (expectedValue == null) {
520 if (actualAuditRecord.containsKey(jsonField)) {
521 assertTrue("Audit field " + jsonField + ": expected null, actual " + actualAuditRecord.get(jsonField),
522 actualAuditRecord.get(jsonField).toString().equals("null")
523 || actualAuditRecord.get(jsonField).toString().equals(Constants.EMPTY_STRING));
527 assertTrue("Audit field " + jsonField + " not found in actual", actualAuditRecord.containsKey(jsonField));
528 Object foundValue = actualAuditRecord.get(jsonField);
529 compareElements(expectedValue, foundValue);
533 public static void compareElements(Object expectedValue, Object foundValue) {
534 if (expectedValue instanceof String) {
535 assertTrue("Actual value " + foundValue + " is not string", foundValue instanceof String);
536 assertTrue("Expected " + "[" + expectedValue +"]" + " not equal to actual [" + foundValue + "]", foundValue.equals(expectedValue));
539 * else if( expectedValue instanceof Number){ assertTrue(foundValue
540 * instanceof Number); assertTrue(foundValue == expectedValue); }
542 else if (expectedValue instanceof Boolean) {
543 assertTrue(foundValue instanceof Boolean);
544 assertTrue(foundValue == expectedValue);
545 } else if (expectedValue instanceof Map) {
546 assertTrue(foundValue instanceof Map);
547 Map<String, Object> foundMap = (Map<String, Object>) foundValue;
548 Map<String, Object> excpectedMap = (Map<String, Object>) expectedValue;
549 assertTrue("size of maps is not equel", foundMap.size() == excpectedMap.size());
550 Iterator<String> foundkeyItr = foundMap.keySet().iterator();
551 while (foundkeyItr.hasNext()) {
552 String foundKey = foundkeyItr.next();
553 assertTrue(excpectedMap.containsKey(foundKey));
554 compareElements(excpectedMap.get(foundKey), foundMap.get(foundKey));
557 } else if (expectedValue instanceof List) {
558 assertTrue(foundValue instanceof List);
559 List<Object> foundList = (List<Object>) foundValue;
560 List<Object> excpectedList = (List<Object>) expectedValue;
561 assertTrue("size of maps is not equel", foundList.size() == excpectedList.size());
562 if( foundList.size() > 0 ){
563 final Object elementInList = foundList.get(0);
564 if( !(elementInList instanceof List || elementInList instanceof Map) ){
565 List<Object> tempList = new ArrayList<>();
566 tempList.addAll(foundList);
567 for(Object expectedObj : excpectedList){
568 if( tempList.contains(expectedObj)){
569 tempList.remove(expectedObj);
575 assertTrue("Lists are not equel", tempList.isEmpty());
580 assertTrue(foundValue.equals(expectedValue));
584 // public static Map<String, Object> parseAuditResourceByAction(String
585 // action, String body) throws Exception {
587 // Map auditingMessage = null;
588 // auditingMessage = retrieveAuditMessagesByPattern(action, null);
590 // return auditingMessage;
594 public static Map<String, Object> parseAuditResourceByAction(String action, Map<AuditingFieldsKey, String> body) throws Exception {
596 Map auditingMessage = null;
597 auditingMessage = retrieveAuditMessagesByPattern(action, body, false);
598 return auditingMessage;
602 public static List<Map<String, Object>> parseAuditResourceByActionToList(String action,
603 Map<AuditingFieldsKey, String> body) throws Exception {
605 Map auditingMessage = null;
607 if (body == null || body.isEmpty()) {
608 auditingMessage = retrieveAuditMessagesByPattern(action, null, false);
610 auditingMessage = retrieveAuditMessagesByPattern(action, body, false);
613 return ResponseParser.getAuditFromMessage(auditingMessage);
616 public JSONObject buildElasticQueryStringObject(String defaultField, String queryValue) throws JSONException {
618 JSONObject query_string = new JSONObject();
619 JSONObject jSONObject = new JSONObject();
620 jSONObject.put("default_field", defaultField);
621 jSONObject.put("query", queryValue);
623 query_string.put("query_string", jSONObject);
628 public static JSONObject buildElasticQueryBody(List<JSONObject> listObjects) throws JSONException {
630 JSONObject query = new JSONObject();
631 JSONObject bool = new JSONObject();
632 JSONObject must = new JSONObject();
633 JSONArray mustA = new JSONArray();
635 for (int i = 0; i < listObjects.size(); i++) {
636 JSONObject match = new JSONObject();
637 match.put("match", listObjects.get(i));
642 must.put("must", mustA);
643 bool.put("bool", must);
644 query.put("query", bool);
649 public static String retrieveAuditMessagesUsingBody(String query_string) throws IOException {
651 Config config = Utils.getConfig();
652 HttpRequest getAuditingMessage = new HttpRequest();
653 Map<String, String> headersMap = new HashMap<String, String>();
654 String body = query_string;
656 String url = String.format(Urls.GET_SEARCH_DATA_FROM_ES, config.getEsHost(), config.getEsPort(), "_search");
657 RestResponse restResponse = getAuditingMessage.httpSendPost(url, body, headersMap);
659 return restResponse.getResponse();
662 public static Map<String, String> retrieveAuditMessagesByPattern(String action, Map<AuditingFieldsKey, String> body, Boolean retryFlag)
665 // get cassandra table name by action
666 String esType = AuditingActionEnum.fromName(action).getAuditingEsType();
667 Map<String, String> resultsMap = new HashMap<String, String>();
669 List<Pair<AuditingFieldsKey, String>> myFields = new ArrayList<Pair<AuditingFieldsKey, String>>();
670 Pair<AuditingFieldsKey, String> myPair = new Pair<AuditingFieldsKey, String>(
671 AuditingFieldsKey.AUDIT_ACTION, action);
672 myFields.add(0, myPair);
673 if (body != null && !body.isEmpty()) {
674 for (Map.Entry<AuditingFieldsKey, String> mapElement : body.entrySet()) {
675 myFields.add(new Pair<AuditingFieldsKey, String>(mapElement.getKey(), mapElement.getValue()));
679 List<Row> fetchFromTable = CassandraUtils.fetchFromTable(auditKeySpaceName, esType, myFields);
681 if(fetchFromTable.size() == 0){
685 // assertTrue("expected on fetching from data base one record only, actual: " + fetchFromTable.size(), fetchFromTable.size() == 1);
692 if (fetchFromTable.size() > 1){
693 List<Row> fetchFromTable2 = fetchFromTable;
694 fetchFromTable2.sort((p1, p2) -> p1.getTimestamp(1).compareTo(p2.getTimestamp(1)));
695 row = fetchFromTable2.get(fetchFromTable2.size() - 1);
697 else {row = fetchFromTable.get(0);}
699 ColumnDefinitions columnDefinitions = row.getColumnDefinitions();
701 for (int i = 0; i < columnDefinitions.size(); i++) {
702 resultsMap.put(columnDefinitions.getName(i), row.getObject(columnDefinitions.getName(i)) == null ? "null"
703 : row.getObject(columnDefinitions.getName(i)).toString());
709 public static void categoryAuditSuccess(String action, CategoryDefinition categoryDefinition, User user, int status,
710 String resourceType) throws Exception {
711 categoryAuditSuccessInternal(action, categoryDefinition, null, null, user, status, resourceType);
714 public static void categoryAuditFailure(String action, CategoryDefinition categoryDataDefinition, User user,
715 ActionStatus errorMessage, int status, String resourceType, Object... variables) throws Exception {
716 categoryAuditFailureInternal(action, categoryDataDefinition, null, null, user, errorMessage, status,
717 resourceType, variables);
720 public static void subCategoryAuditSuccess(String action, CategoryDefinition categoryDefinition,
721 SubCategoryDefinition subCategoryDefinition, User user, int status, String resourceType) throws Exception {
722 categoryAuditSuccessInternal(action, categoryDefinition, subCategoryDefinition, null, user, status,
726 public static void groupingAuditSuccess(String action, CategoryDefinition categoryDefinition,
727 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user, int status,
728 String resourceType) throws Exception {
729 categoryAuditSuccessInternal(action, categoryDefinition, subCategoryDefinition, groupingDefinition, user,
730 status, resourceType);
733 public static void subCategoryAuditFailure(String action, CategoryDefinition categoryDataDefinition,
734 SubCategoryDefinition subCategoryDefinition, User user, ActionStatus errorMessage, int status,
735 String resourceType, Object... variables) throws Exception {
736 categoryAuditFailureInternal(action, categoryDataDefinition, subCategoryDefinition, null, user, errorMessage,
737 status, resourceType, variables);
741 public static void groupingAuditFailure(String action, CategoryDefinition categoryDefinition,
742 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user,
743 ActionStatus errorMessage, int status, String resourceType, Object... variables) throws Exception {
744 groupingAuditFailureInternal(action, categoryDefinition, subCategoryDefinition, groupingDefinition, user,
745 errorMessage, status, resourceType, variables);
748 private static void groupingAuditFailureInternal(String action, CategoryDefinition categoryDataDefinition,
749 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user,
750 ActionStatus errorMessage, int status, String resourceType, Object... variables) throws Exception {
752 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
753 ExpectedCategoryAudit expectedCatrgoryAuditJavaObject = new ExpectedCategoryAudit();
754 expectedCatrgoryAuditJavaObject.setAction(action);
755 expectedCatrgoryAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
756 expectedCatrgoryAuditJavaObject.setCategoryName(categoryDataDefinition.getName());
757 String subCategoryName = (subCategoryDefinition != null ? subCategoryDefinition.getName() : Constants.EMPTY_STRING);
758 expectedCatrgoryAuditJavaObject.setSubCategoryName(subCategoryName);
759 String groupingName = (groupingDefinition != null ? groupingDefinition.getName() : Constants.EMPTY_STRING);
760 expectedCatrgoryAuditJavaObject.setGroupingName(groupingName);
761 expectedCatrgoryAuditJavaObject.setResourceType(resourceType);
762 expectedCatrgoryAuditJavaObject.setStatus(String.valueOf(status));
763 expectedCatrgoryAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
764 AuditValidationUtils.validateCategoryAudit(expectedCatrgoryAuditJavaObject, action);
768 private static void categoryAuditSuccessInternal(String action, CategoryDefinition categoryDefinition,
769 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user, int status,
770 String resourceType) throws Exception {
771 // resourceType = Service/Resource/Product
772 ExpectedCategoryAudit expectedCatrgoryAuditJavaObject = new ExpectedCategoryAudit();
773 expectedCatrgoryAuditJavaObject.setAction(action);
774 expectedCatrgoryAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
775 expectedCatrgoryAuditJavaObject.setCategoryName(categoryDefinition.getName());
776 String subCategoryName = (subCategoryDefinition != null ? subCategoryDefinition.getName()
777 : Constants.EMPTY_STRING);
778 expectedCatrgoryAuditJavaObject.setSubCategoryName(subCategoryName);
779 String groupingName = (groupingDefinition != null ? groupingDefinition.getName() : Constants.EMPTY_STRING);
780 expectedCatrgoryAuditJavaObject.setGroupingName(groupingName);
781 expectedCatrgoryAuditJavaObject.setResourceType(resourceType);
782 expectedCatrgoryAuditJavaObject.setStatus(String.valueOf(status));
783 expectedCatrgoryAuditJavaObject.setDesc("OK");
784 AuditValidationUtils.validateCategoryAudit(expectedCatrgoryAuditJavaObject, action);
787 ///////////////////////////
789 public enum UserAuditJsonKeysEnum {
790 ACTION("ACTION"), MODIFIER("MODIFIER"), STATUS("STATUS"), DESC("DESCRIPTION"), USER_AFTER("USER_AFTER"), USER_BEFORE("USER_BEFORE");
791 private String auditJsonKeyName;
793 private UserAuditJsonKeysEnum(String auditJsonKeyName) {
794 this.auditJsonKeyName = auditJsonKeyName;
797 public String getAuditJsonKeyName() {
798 return auditJsonKeyName.toLowerCase();
802 public static void validateAddUserAudit(ExpectedUserCRUDAudit expectedAddUserAuditJavaObject, String action) throws Exception {
804 List<Map<String, Object>> actionToList = getAuditListByAction(expectedAddUserAuditJavaObject.getAction(), 1);
805 Map<String, Object> map = actionToList.get(0);
806 validateField(map, UserAuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
807 validateField(map, UserAuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getModifier());
808 validateField(map, UserAuditJsonKeysEnum.USER_AFTER.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getUserAfter());
809 validateField(map, UserAuditJsonKeysEnum.USER_BEFORE.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getUserBefore());
810 validateField(map, UserAuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getStatus());
811 validateField(map, UserAuditJsonKeysEnum.DESC.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getDesc());
815 private static void categoryAuditFailureInternal(String action, CategoryDefinition categoryDataDefinition,
816 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user,
817 ActionStatus errorMessage, int status, String resourceType, Object... variables) throws Exception {
819 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
820 ExpectedCategoryAudit expectedCatrgoryAuditJavaObject = new ExpectedCategoryAudit();
821 expectedCatrgoryAuditJavaObject.setAction(action);
822 expectedCatrgoryAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
823 expectedCatrgoryAuditJavaObject.setCategoryName(categoryDataDefinition.getName());
824 String subCategoryName = (subCategoryDefinition != null ? subCategoryDefinition.getName() : Constants.EMPTY_STRING);
825 expectedCatrgoryAuditJavaObject.setSubCategoryName(subCategoryName);
826 String groupingName = (groupingDefinition != null ? groupingDefinition.getName() : Constants.EMPTY_STRING);
827 expectedCatrgoryAuditJavaObject.setGroupingName(groupingName);
828 expectedCatrgoryAuditJavaObject.setResourceType(resourceType);
829 expectedCatrgoryAuditJavaObject.setStatus(String.valueOf(status));
830 expectedCatrgoryAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
831 AuditValidationUtils.validateCategoryAudit(expectedCatrgoryAuditJavaObject, action);
834 public static void validateGetCategoryHirarchy(ExpectedCategoryAudit expectedCatrgoryAuditJavaObject, String action)
837 List<Map<String, Object>> actionToList = getAuditListByAction(expectedCatrgoryAuditJavaObject.getAction(), 1);
838 Map<String, Object> map = actionToList.get(0);
840 expectedCatrgoryAuditJavaObject.setModifier(getModifierString(expectedCatrgoryAuditJavaObject.getModifierName(),
841 expectedCatrgoryAuditJavaObject.getModifierUid()));
842 validateField(map, CategoryAuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
843 validateField(map, CategoryAuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getModifier());
844 validateField(map, CategoryAuditJsonKeysEnum.DETAILS.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getDetails());
845 validateField(map, CategoryAuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getStatus());
846 validateField(map, CategoryAuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getDesc());
850 public static void validateCategoryAudit(ExpectedCategoryAudit expectedCatrgoryAuditJavaObject, String action)
853 List<Map<String, Object>> actionToList = getAuditListByAction(expectedCatrgoryAuditJavaObject.getAction(), 1);
854 Map<String, Object> map = actionToList.get(0);
855 validateField(map, CategoryAuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
856 validateField(map, CategoryAuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getModifier());
857 validateField(map, CategoryAuditJsonKeysEnum.CATEGORY_NAME.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getCategoryName());
858 validateField(map, CategoryAuditJsonKeysEnum.SUB_CATEGORY_NAME.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getSubCategoryName());
859 validateField(map, CategoryAuditJsonKeysEnum.GROUPING_NAME.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getGroupingName());
860 validateField(map, CategoryAuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getResourceType());
861 validateField(map, CategoryAuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getStatus());
862 validateField(map, CategoryAuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getDesc());
865 public static void GetCategoryHierarchyAuditSuccess(String action, String componentType, User user, int status)
867 ExpectedGetUserListAudit expectedGetListOfUsersAuditJavaObject = new ExpectedGetUserListAudit();
868 expectedGetListOfUsersAuditJavaObject.setAction(action);
869 expectedGetListOfUsersAuditJavaObject.setStatus(String.valueOf(status));
870 expectedGetListOfUsersAuditJavaObject.setDesc("OK");
871 expectedGetListOfUsersAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
872 expectedGetListOfUsersAuditJavaObject.setDetails(componentType.toLowerCase());
873 validateAuditGetListOfUsersByRoles(expectedGetListOfUsersAuditJavaObject, action);
876 public static String buildArtifactDataAudit(ArtifactDefinition artifactDefinition) {
877 StringBuilder sb = new StringBuilder();
878 if (artifactDefinition.getTimeout() == null) {
879 artifactDefinition.setTimeout(0);
881 if (artifactDefinition != null) {
882 sb.append(artifactDefinition.getArtifactGroupType() == null ? null
883 : artifactDefinition.getArtifactGroupType().getType()).append(",").append("'")
884 .append(artifactDefinition.getArtifactLabel()).append("'").append(",")
885 .append(artifactDefinition.getArtifactType()).append(",")
886 .append(artifactDefinition.getArtifactName()).append(",").append(artifactDefinition.getTimeout())
887 .append(",").append(artifactDefinition.getEsId());
889 if (artifactDefinition.getArtifactVersion() != null) {
890 sb.append(artifactDefinition.getArtifactVersion());
895 if (artifactDefinition.getArtifactUUID() != null) {
896 sb.append(artifactDefinition.getArtifactUUID());
902 return sb.toString();
906 public static ExpectedResourceAuditJavaObject expectedArtifactNotFoundAuditObject(String Action, String resourceUid,
907 ComponentType resourceType, String artifactUid, User user, String currState, String currVersion)
908 throws FileNotFoundException {
911 ExpectedResourceAuditJavaObject expectedAudit = new ExpectedResourceAuditJavaObject();
912 expectedAudit.setAction(Action);
913 expectedAudit.setResourceName(resourceUid);
914 expectedAudit.setResourceType(resourceType.getValue());
915 expectedAudit.setPrevVersion("");
916 expectedAudit.setCurrVersion(currVersion);
917 expectedAudit.setModifierName(user.getFirstName() + " " + user.getLastName());
918 expectedAudit.setModifierUid(user.getUserId());
919 expectedAudit.setPrevState("");
920 expectedAudit.setCurrState(currState);
921 expectedAudit.setPrevArtifactUuid("");
922 expectedAudit.setCurrArtifactUuid(artifactUid);
923 expectedAudit.setArtifactData("");
924 expectedAudit.setStatus("404");
926 desc = buildAuditDescription(
927 new ErrorValidationUtils().parseErrorConfigYaml(ActionStatus.ARTIFACT_NOT_FOUND.name()),
930 expectedAudit.setDesc(desc);
931 return expectedAudit;
934 public static JSONObject filterAuditByUuid(String action, String uuid) throws Exception {
935 Map<String, String> actionMap = new HashMap<>();
936 actionMap.put("ACTION", action);
937 JSONObject actionJsonObject = new JSONObject(actionMap);
938 Map<String, String> uuidMap = new HashMap<>();
939 uuidMap.put("SERVICE_INSTANCE_ID", uuid);
940 JSONObject uuidJsonObject = new JSONObject(uuidMap);
942 List<JSONObject> filters = new ArrayList<>(Arrays.asList(actionJsonObject, uuidJsonObject));
943 JSONObject body = buildElasticQueryBody(filters);
947 public static void validateAudit(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
948 List<Map<String, Object>> actionToList = getAuditListByAction(resourceAuditJavaObject.getAction(), 1);
949 Map<String, Object> map2 = actionToList.get(0);
950 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
951 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
952 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
953 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevVersion());
954 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
955 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getMODIFIER());
956 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevState());
957 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
958 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
959 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
960 validateField(map2, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), resourceAuditJavaObject.getComment());
963 ////// service audit validation/////////////////////
965 public static ExpectedResourceAuditJavaObject constructFieldsForAuditValidation(ServiceReqDetails serviceReqDetails,
966 String serviceVersion, User sdncUserDetails) {
968 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
970 expectedResourceAuditJavaObject.setAction("Create");
971 expectedResourceAuditJavaObject.setModifierUid(sdncUserDetails.getUserId());
972 String userFirstLastName = sdncUserDetails.getFirstName() + " " + sdncUserDetails.getLastName();
973 expectedResourceAuditJavaObject.setModifierName(userFirstLastName);
974 expectedResourceAuditJavaObject.setStatus("200");
975 expectedResourceAuditJavaObject.setDesc("OK");
976 expectedResourceAuditJavaObject.setResourceName(serviceReqDetails.getName());
977 expectedResourceAuditJavaObject.setResourceType("Service");
978 expectedResourceAuditJavaObject.setPrevVersion(String.valueOf(Float.parseFloat(serviceVersion) - 0.1f));
979 expectedResourceAuditJavaObject.setCurrVersion(serviceVersion);
980 expectedResourceAuditJavaObject.setPrevState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
981 expectedResourceAuditJavaObject.setCurrState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
982 expectedResourceAuditJavaObject.setComment(null);
984 return expectedResourceAuditJavaObject;
988 public static ExpectedResourceAuditJavaObject constructFieldsForAuditValidation(ServiceReqDetails serviceReqDetails,
989 String serviceVersion, User sdncUserDetails, ActionStatus errorStatus, List<String> variables)
990 throws FileNotFoundException {
992 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = constructFieldsForAuditValidation(
993 serviceReqDetails, serviceVersion, sdncUserDetails);
994 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorStatus.name());
996 expectedResourceAuditJavaObject.setStatus(errorInfo.getCode().toString());
997 String auditDesc = AuditValidationUtils.buildAuditDescription(errorInfo, variables);
998 expectedResourceAuditJavaObject.setDesc(auditDesc);
1000 return expectedResourceAuditJavaObject;