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.onap.sdc.backend.ci.tests.utils.validation;
23 import com.datastax.driver.core.ColumnDefinitions;
24 import com.datastax.driver.core.Row;
25 import java.io.FileNotFoundException;
26 import java.io.IOException;
28 import org.openecomp.sdc.logging.api.Logger;
29 import org.openecomp.sdc.logging.api.LoggerFactory;
30 import org.codehaus.jettison.json.JSONArray;
31 import org.codehaus.jettison.json.JSONException;
32 import org.codehaus.jettison.json.JSONObject;
33 import org.javatuples.Pair;
34 import org.onap.sdc.backend.ci.tests.datatypes.enums.AuditEnum;
35 import org.onap.sdc.backend.ci.tests.datatypes.enums.AuditJsonKeysEnum;
36 import org.onap.sdc.backend.ci.tests.datatypes.enums.ComponentType;
37 import org.onap.sdc.backend.ci.tests.datatypes.enums.ErrorInfo;
38 import org.onap.sdc.backend.ci.tests.datatypes.expected.*;
39 import org.onap.sdc.backend.ci.tests.datatypes.http.HttpRequest;
40 import org.onap.sdc.backend.ci.tests.datatypes.http.RestResponse;
41 import org.onap.sdc.backend.ci.tests.utils.cassandra.CassandraUtils;
42 import org.openecomp.sdc.be.dao.api.ActionStatus;
43 import org.openecomp.sdc.be.datatypes.elements.ConsumerDataDefinition;
44 import org.openecomp.sdc.be.model.ArtifactDefinition;
45 import org.openecomp.sdc.be.model.LifecycleStateEnum;
46 import org.openecomp.sdc.be.model.User;
47 import org.openecomp.sdc.be.model.category.CategoryDefinition;
48 import org.openecomp.sdc.be.model.category.GroupingDefinition;
49 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
50 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
51 import org.onap.sdc.backend.ci.tests.api.Urls;
52 import org.onap.sdc.backend.ci.tests.config.Config;
53 import org.onap.sdc.backend.ci.tests.datatypes.ServiceReqDetails;
54 import org.onap.sdc.backend.ci.tests.utils.Utils;
55 import org.onap.sdc.backend.ci.tests.utils.rest.BaseRestUtils;
56 import org.onap.sdc.backend.ci.tests.utils.rest.CategoryRestUtils.CategoryAuditJsonKeysEnum;
57 import org.onap.sdc.backend.ci.tests.utils.rest.ConsumerRestUtils.EcompConsumerAuditJsonKeysEnum;
58 import org.onap.sdc.backend.ci.tests.utils.rest.ResponseParser;
59 import org.openecomp.sdc.common.api.Constants;
60 import org.openecomp.sdc.common.datastructure.AuditingFieldsKey;
62 import static org.testng.AssertJUnit.assertEquals;
63 import static org.testng.AssertJUnit.assertTrue;
65 public class AuditValidationUtils {
66 protected static Logger logger = LoggerFactory.getLogger(AuditValidationUtils.class);
67 private static final String auditKeySpaceName = "sdcaudit";
69 public AuditValidationUtils() {
71 logger = LoggerFactory.getLogger(AuditValidationUtils.class);
74 public static String buildAuditDescription(ErrorInfo errorInfo, List<String> errorVariablesList) {
76 if(errorInfo.getMessageId() != null){
77 auditDesc = errorInfo.getMessageId() + ": " + errorInfo.getMessage();
79 auditDesc = errorInfo.getMessage();
82 // if(! variables.isEmpty() && variables.get(0) != null && ! variables.get(0).isEmpty()){
83 // for (int i = 0; i < variables.size(); i++) {
84 // if (auditDesc.contains("%" + (i + 1))) {
85 // auditDesc = auditDesc.replace("%" + (i + 1), variables.get(i));
89 if(errorVariablesList != null && ! errorVariablesList.isEmpty() && errorVariablesList.get(0) != null){
90 for (int i = 0; i < errorVariablesList.size(); i++) {
91 if (auditDesc.contains("%" + (i + 1))) {
92 auditDesc = auditDesc.replace("%" + (i + 1), errorVariablesList.get(i));
99 public static String getModifierString(String userName, String uid) {
101 if (userName.isEmpty() && uid.isEmpty())
104 StringBuilder sb = new StringBuilder();
105 sb.append(userName).append("(").append(uid).append(")");
106 return sb.toString();
110 public static void validateAuditDownloadExternalAPI(ExpectedResourceAuditJavaObject resourceAuditJavaObject,
111 String action, String body, boolean checkAllFields) throws Exception {
112 Map<String, Object> actualAuditRecords = parseAuditResourceByAction(action, null);
114 validateField(actualAuditRecords, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
115 validateField(actualAuditRecords, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
116 validateField(actualAuditRecords, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
117 validateField(actualAuditRecords, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
118 validateField(actualAuditRecords, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
122 public static void validateAudit(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action, String body, boolean checkAllFields) throws Exception {
123 Map<String, Object> actualAuditRecords = parseAuditResourceByAction(action, null);
125 if ((resourceAuditJavaObject.getModifierName() != null) && (resourceAuditJavaObject.getModifierUid() != null)) {
126 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(),
127 resourceAuditJavaObject.getModifierUid()));
130 validateField(actualAuditRecords, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
131 validateField(actualAuditRecords, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
132 validateField(actualAuditRecords, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
133 validateField(actualAuditRecords, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevVersion());
134 validateField(actualAuditRecords, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
136 validateField(actualAuditRecords, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getModifierUid());
137 validateField(actualAuditRecords, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevState());
138 validateField(actualAuditRecords, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
139 validateField(actualAuditRecords, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
140 validateField(actualAuditRecords, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
141 validateField(actualAuditRecords, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), resourceAuditJavaObject.getComment());
142 validateField(actualAuditRecords, AuditJsonKeysEnum.TOSCA_NODE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getToscaNodeType());
143 validateField(actualAuditRecords, AuditJsonKeysEnum.CURR_ARTIFACT_UUID.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrArtifactUuid());
144 validateField(actualAuditRecords, AuditJsonKeysEnum.PREV_ARTIFACT_UUID.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevArtifactUuid());
146 validateAtifactDataField(actualAuditRecords, AuditJsonKeysEnum.ARTIFACT_DATA.getAuditJsonKeyName(), resourceAuditJavaObject.getArtifactData(), checkAllFields);
149 public static void validateExternalAudit(ExpectedExternalAudit externalAuditObject, String action, Map<AuditingFieldsKey, String> body) throws Exception {
151 Map<String, Object> actualAuditRecord = parseAuditResourceByAction(action, body);
153 validateField(actualAuditRecord, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
154 validateField(actualAuditRecord, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), externalAuditObject.getCONSUMER_ID());
156 validateField(actualAuditRecord, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), externalAuditObject.getRESOURCE_URL());
158 validateField(actualAuditRecord, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), externalAuditObject.getRESOURCE_NAME());
159 validateField(actualAuditRecord, AuditJsonKeysEnum.SERVICE_INSTANCE_ID.getAuditJsonKeyName(), externalAuditObject.getSERVICE_INSTANCE_ID());
161 validateField(actualAuditRecord, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), externalAuditObject.getRESOURCE_TYPE());
162 validateField(actualAuditRecord, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), externalAuditObject.getSTATUS());
163 validateField(actualAuditRecord, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), externalAuditObject.getDESC());
165 // validateField(actualAuditRecord, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), externalAuditObject.getMODIFIER());
166 validateField(actualAuditRecord, AuditJsonKeysEnum.PREV_ARTIFACT_UUID.getAuditJsonKeyName(), externalAuditObject.getPREV_ARTIFACT_UUID());
167 validateField(actualAuditRecord, AuditJsonKeysEnum.CURR_ARTIFACT_UUID.getAuditJsonKeyName(), externalAuditObject.getCURR_ARTIFACT_UUID());
169 validateField(actualAuditRecord, AuditJsonKeysEnum.ARTIFACT_DATA.getAuditJsonKeyName(), externalAuditObject.getARTIFACT_DATA());
173 public enum ArtifactDataFieldEnum {
174 attGroup, artLabel, artType, artName, artTimeout, artPayloadUUID, artVersion, artUUID
177 private static void validateAtifactDataField(Map<String, Object> map, String auditJsonKeyName,
178 String expectedArtifactData, boolean checkAllFields) {
179 Map<ArtifactDataFieldEnum, String> expectedArtifactDataFileds = new HashMap<ArtifactDataFieldEnum, String>();
180 Map<ArtifactDataFieldEnum, String> actualAtifactDataFileds = new HashMap<ArtifactDataFieldEnum, String>();
181 if (expectedArtifactData != null) {
182 String[] expected = expectedArtifactData.split(",");
184 assertTrue("Audit field " + auditJsonKeyName + " not found", map.containsKey(auditJsonKeyName));
185 String actualValue = (String) map.get(auditJsonKeyName);
186 String[] actual = actualValue.split(",");
188 if (expected.length == 1 && actual.length == 1) {
189 assertEquals(expectedArtifactData, actualValue);
193 assertEquals(ArtifactDataFieldEnum.values().length, expected.length);
194 assertEquals(ArtifactDataFieldEnum.values().length, actual.length);
196 for (ArtifactDataFieldEnum field : ArtifactDataFieldEnum.values()) {
198 expectedArtifactDataFileds.put(field, expected[field.ordinal()]);
199 actualAtifactDataFileds.put(field, actual[field.ordinal()]);
201 for (Map.Entry<ArtifactDataFieldEnum, String> entry : expectedArtifactDataFileds.entrySet()) {
202 ArtifactDataFieldEnum field = entry.getKey();
203 if (checkAllFields || (!field.equals(ArtifactDataFieldEnum.artVersion)
204 && !field.equals(ArtifactDataFieldEnum.artUUID))) {
205 assertTrue("Audit field ArtifactData dosn't containt " + field,
206 actualAtifactDataFileds.containsKey(field));
207 assertEquals("Audit field ArtifactData dosn't equal " + field,
208 expectedArtifactDataFileds.get(field), actualAtifactDataFileds.get(field));
216 public static void validateEcompConsumerAudit(ExpectedEcomConsumerAudit ecompConsumerAuditJavaObject, String action) throws Exception {
218 String fixedAction = BaseRestUtils.encodeUrlForDownload(action);
219 Map<String, Object> map2 = parseAuditResourceByAction(fixedAction, null);
221 validateField(map2, EcompConsumerAuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), ecompConsumerAuditJavaObject.getModifier());
222 validateField(map2, EcompConsumerAuditJsonKeysEnum.ECOMP_USER.getAuditJsonKeyName(), ecompConsumerAuditJavaObject.getEcomUser());
223 validateField(map2, EcompConsumerAuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), ecompConsumerAuditJavaObject.getStatus());
224 validateField(map2, EcompConsumerAuditJsonKeysEnum.DESC.getAuditJsonKeyName(), ecompConsumerAuditJavaObject.getDesc());
225 validateField(map2, EcompConsumerAuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
228 public static void ecompConsumerAuditSuccess(String action, ConsumerDataDefinition consumerDataDefinition, User user, int status) throws Exception {
229 ExpectedEcomConsumerAudit expectedEcomConsumerAuditJavaObject = new ExpectedEcomConsumerAudit();
230 expectedEcomConsumerAuditJavaObject.setAction(action);
231 expectedEcomConsumerAuditJavaObject.setEcomUser(
232 consumerDataDefinition.getConsumerName() + "," + consumerDataDefinition.getConsumerSalt().toLowerCase()
233 + "," + consumerDataDefinition.getConsumerPassword().toLowerCase());
234 expectedEcomConsumerAuditJavaObject.setStatus(String.valueOf(status));
235 expectedEcomConsumerAuditJavaObject.setDesc("OK");
236 expectedEcomConsumerAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
237 AuditValidationUtils.validateEcompConsumerAudit(expectedEcomConsumerAuditJavaObject, action);
240 public static void createEcompConsumerAuditFailure(String action, ConsumerDataDefinition consumerDataDefinition,
241 User user, ActionStatus errorMessage, Object... variables) throws Exception {
243 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
244 ExpectedEcomConsumerAudit expectedEcomConsumerAuditJavaObject = new ExpectedEcomConsumerAudit();
245 expectedEcomConsumerAuditJavaObject.setAction(action);
246 expectedEcomConsumerAuditJavaObject.setEcomUser(
247 consumerDataDefinition.getConsumerName() + "," + consumerDataDefinition.getConsumerSalt().toLowerCase()
248 + "," + consumerDataDefinition.getConsumerPassword().toLowerCase());
249 expectedEcomConsumerAuditJavaObject.setStatus(errorInfo.getCode().toString());
250 expectedEcomConsumerAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
251 expectedEcomConsumerAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
252 AuditValidationUtils.validateEcompConsumerAudit(expectedEcomConsumerAuditJavaObject, action);
255 public static void deleteEcompConsumerAuditFailure(String action, ConsumerDataDefinition consumerDataDefinition,
256 User user, ActionStatus errorMessage, Object... variables) throws Exception {
258 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
259 ExpectedEcomConsumerAudit expectedEcomConsumerAuditJavaObject = new ExpectedEcomConsumerAudit();
260 // String auditAction = ADD_ECOMP_USER_CREDENTIALS_AUDIT_ACTION;
261 expectedEcomConsumerAuditJavaObject.setAction(action);
262 expectedEcomConsumerAuditJavaObject.setEcomUser(consumerDataDefinition.getConsumerName());
263 expectedEcomConsumerAuditJavaObject.setStatus(errorInfo.getCode().toString());
264 expectedEcomConsumerAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
265 expectedEcomConsumerAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
266 AuditValidationUtils.validateEcompConsumerAudit(expectedEcomConsumerAuditJavaObject, action);
269 ////////////////////// US571255
270 public static void GetListOfUsersByRolesAuditFailure(String action, String roles, int status, User userModifier,
271 ActionStatus errorMessage, Object... variables) throws Exception {
272 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
273 ExpectedGetUserListAudit expectedGetListOfUsersAuditJavaObject = new ExpectedGetUserListAudit(); // String
276 // ADD_ECOMP_USER_CREDENTIALS_AUDIT_ACTION;
277 expectedGetListOfUsersAuditJavaObject.setAction(action);
278 expectedGetListOfUsersAuditJavaObject.setStatus(String.valueOf(status));
279 expectedGetListOfUsersAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
281 expectedGetListOfUsersAuditJavaObject.setDetails(roles);
282 if (errorMessage == ActionStatus.USER_INACTIVE || errorMessage == ActionStatus.MISSING_INFORMATION) {
283 expectedGetListOfUsersAuditJavaObject.setModifier("(UNKNOWN)");
285 expectedGetListOfUsersAuditJavaObject
286 .setModifier(userModifier.getFullName() + "(" + userModifier.getUserId() + ")");
288 AuditValidationUtils.validateAuditGetListOfUsersByRoles(expectedGetListOfUsersAuditJavaObject, action);
291 public static void GetListOfUsersByRolesAuditSuccess(String action, String roles, User user, int status)
293 ExpectedGetUserListAudit expectedGetListOfUsersAuditJavaObject = new ExpectedGetUserListAudit();
294 expectedGetListOfUsersAuditJavaObject.setAction(action);
295 expectedGetListOfUsersAuditJavaObject.setStatus(String.valueOf(status));
296 expectedGetListOfUsersAuditJavaObject.setDesc("OK");
297 expectedGetListOfUsersAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
298 expectedGetListOfUsersAuditJavaObject.setDetails(roles);
299 validateAuditGetListOfUsersByRoles(expectedGetListOfUsersAuditJavaObject, action);
302 public static void validateAuditGetListOfUsersByRoles(ExpectedGetUserListAudit GetListOfUsersAuditJavaObject,
303 String action) throws Exception {
305 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
306 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
307 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), GetListOfUsersAuditJavaObject.getStatus());
308 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), GetListOfUsersAuditJavaObject.getModifier());
309 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), GetListOfUsersAuditJavaObject.getDesc());
310 validateField(map2, AuditJsonKeysEnum.DETAILS.getAuditJsonKeyName(), GetListOfUsersAuditJavaObject.getDetails());
313 public static void validateAuditImport(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
315 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
317 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(), resourceAuditJavaObject.getModifierUid()));
319 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
320 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
321 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevVersion());
322 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
323 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getModifierUid());
324 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevState());
325 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
326 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
327 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
331 public static void validateAuditDistribution(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
333 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
335 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(), resourceAuditJavaObject.getModifierUid()));
337 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
338 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
339 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
340 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
341 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getModifierUid());
342 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
343 validateField(map2, AuditJsonKeysEnum.DPREV_STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getDprevStatus());
344 validateField(map2, AuditJsonKeysEnum.DCURR_STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getDcurrStatus());
345 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
346 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
347 validateField(map2, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), resourceAuditJavaObject.getComment());
348 validateField(map2, AuditJsonKeysEnum.DID.getAuditJsonKeyName(), resourceAuditJavaObject.getDistributionId());
353 public static void validateAudit_Distribution(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
355 List<Map<String, Object>> actionToList = getAuditListByAction(resourceAuditJavaObject.getAction(), 1);
356 Map<String, Object> map2 = actionToList.get(0);
357 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
358 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
359 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
360 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
361 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getMODIFIER());
362 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
363 validateField(map2, AuditJsonKeysEnum.DPREV_STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getDprevStatus());
364 validateField(map2, AuditJsonKeysEnum.DCURR_STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getDcurrStatus());
365 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
366 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
367 validateField(map2, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), resourceAuditJavaObject.getComment());
371 public void validateAuditNotification(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
373 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
375 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(), resourceAuditJavaObject.getModifierUid()));
377 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
378 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
379 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
380 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
381 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
382 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
383 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
384 validateField(map2, AuditJsonKeysEnum.DID.getAuditJsonKeyName(), resourceAuditJavaObject.getDistributionId());
385 validateField(map2, AuditJsonKeysEnum.TOPIC_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getTopicName());
389 public static void validateAudit(ExpectedDistDownloadAudit expectedDistDownloadAudit, String action) throws Exception {
391 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
393 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
394 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedDistDownloadAudit.getStatus());
395 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedDistDownloadAudit.getDesc());
396 validateField(map2, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), expectedDistDownloadAudit.getConsumerId());
397 validateField(map2, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), expectedDistDownloadAudit.getResourceUrl());
400 public static void validateAuditExternalSearchAPI(ExpectedExternalAudit expectedDistDownloadAudit, String action, Map<AuditingFieldsKey, String> body)
403 Map<String, Object> map2 = parseAuditResourceByAction(action, body);
405 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
406 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedDistDownloadAudit.getSTATUS());
407 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedDistDownloadAudit.getDESC());
408 validateField(map2, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), expectedDistDownloadAudit.getCONSUMER_ID());
409 validateField(map2, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), expectedDistDownloadAudit.getRESOURCE_URL());
412 public static void validateAuditExternalCreateResource(ExpectedResourceAuditJavaObject expectedExternalAudit, String action, Map<AuditingFieldsKey, String> body) throws Exception {
413 Map<String, Object> map2 = parseAuditResourceByAction(action, body);
415 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
416 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), expectedExternalAudit.getResourceName());
417 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), expectedExternalAudit.getResourceType());
418 validateField(map2, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), expectedExternalAudit.getCONSUMER_ID());
419 validateField(map2, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), expectedExternalAudit.getRESOURCE_URL());
420 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedExternalAudit.getMODIFIER());
422 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), expectedExternalAudit.getPrevVersion());
423 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), expectedExternalAudit.getCurrVersion());
424 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), expectedExternalAudit.getPrevState());
425 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), expectedExternalAudit.getCurrState());
427 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedExternalAudit.getStatus());
428 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedExternalAudit.getDesc());
431 public static void validateAuditExternalChangeAssetLifeCycle(ExpectedResourceAuditJavaObject expectedExternalAudit, String action, Map<AuditingFieldsKey, String> body) throws Exception {
432 Map<String, Object> map2 = parseAuditResourceByAction(action, body);
434 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
435 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedExternalAudit.getDesc());
436 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedExternalAudit.getStatus());
438 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), expectedExternalAudit.getResourceType());
439 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), expectedExternalAudit.getResourceName());
440 validateField(map2, AuditJsonKeysEnum.CONSUMER_ID.getAuditJsonKeyName(), expectedExternalAudit.getCONSUMER_ID());
441 validateField(map2, AuditJsonKeysEnum.RESOURCE_URL.getAuditJsonKeyName(), expectedExternalAudit.getRESOURCE_URL());
442 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedExternalAudit.getMODIFIER());
444 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), expectedExternalAudit.getPrevVersion());
445 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), expectedExternalAudit.getCurrVersion());
446 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), expectedExternalAudit.getPrevState());
447 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), expectedExternalAudit.getCurrState());
451 public void validateAuditDeploy(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action)
454 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
456 resourceAuditJavaObject.setModifierUid(getModifierString(resourceAuditJavaObject.getModifierName(), resourceAuditJavaObject.getModifierUid()));
458 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
459 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
460 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
461 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
462 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getModifierUid());
463 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
464 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
465 validateField(map2, AuditJsonKeysEnum.DID.getAuditJsonKeyName(), resourceAuditJavaObject.getDistributionId());
469 public static void validateAuditProduct(ExpectedProductAudit productExpectedAudit, String action,
470 AuditJsonKeysEnum... additionalFields) throws Exception {
472 Map<String, Object> map2 = parseAuditResourceByAction(action, null);
474 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
475 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), productExpectedAudit.getRESOURCE_NAME());
476 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), productExpectedAudit.getRESOURCE_TYPE());
477 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), productExpectedAudit.getPREV_VERSION());
478 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), productExpectedAudit.getCURR_VERSION());
479 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), productExpectedAudit.getPREV_STATE());
480 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), productExpectedAudit.getCURR_STATE());
481 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), productExpectedAudit.getMODIFIER());
482 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), productExpectedAudit.getSTATUS());
483 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), productExpectedAudit.getDESC());
484 validateField(map2, AuditJsonKeysEnum.SERVICE_INSTANCE_ID.getAuditJsonKeyName(), productExpectedAudit.getSERVICE_INSTANCE_ID());
485 if (additionalFields != null) {
486 List<AuditJsonKeysEnum> fieldsList = Arrays.asList(additionalFields);
487 if (fieldsList.contains(AuditJsonKeysEnum.COMMENT)) {
488 validateField(map2, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), productExpectedAudit.getCOMMENT());
493 private static List<Map<String, Object>> getAuditListByAction(String action, int expectedNumOfAudit)
495 List<Map<String, Object>> actionToList = parseAuditResourceByActionToList(action, null);
496 assertEquals("recieved different audits number than expected", expectedNumOfAudit, actionToList.size());
500 public static void validateAuthenticationAudit(ExpectedAuthenticationAudit expectedAudit) throws Exception {
501 List<Map<String, Object>> actionToList = getAuditListByAction(expectedAudit.getAction(), 1);
502 assertEquals("expected number of ES action is 1", 1, actionToList.size());
504 Map<String, Object> map = actionToList.get(0);
505 validateField(map, AuditEnum.ACTION.getValue(), expectedAudit.getAction());
506 validateField(map, AuditEnum.URL.getValue(), expectedAudit.getUrl());
507 validateField(map, AuditEnum.USER.getValue(), expectedAudit.getUser());
508 validateField(map, AuditEnum.AUTH_STATUS.getValue(), expectedAudit.getAuthStatus());
509 validateField(map, AuditEnum.REALM.getValue(), expectedAudit.getRealm());
513 private static void validateField(Map<String, Object> actualAuditRecord, String jsonField, Object expectedValue) {
514 if (expectedValue == null) {
516 if (actualAuditRecord.containsKey(jsonField)) {
517 assertTrue("Audit field " + jsonField + ": expected null, actual " + actualAuditRecord.get(jsonField),
518 actualAuditRecord.get(jsonField).toString().equals("null")
519 || actualAuditRecord.get(jsonField).toString().equals(Constants.EMPTY_STRING));
523 assertTrue("Audit field " + jsonField + " not found in actual", actualAuditRecord.containsKey(jsonField));
524 Object foundValue = actualAuditRecord.get(jsonField);
525 compareElements(expectedValue, foundValue);
529 public static void compareElements(Object expectedValue, Object foundValue) {
530 if (expectedValue instanceof String) {
531 assertTrue("Actual value " + foundValue + " is not string", foundValue instanceof String);
532 assertTrue("Expected " + "[" + expectedValue +"]" + " not equal to actual [" + foundValue + "]", foundValue.equals(expectedValue));
535 * else if( expectedValue instanceof Number){ assertTrue(foundValue
536 * instanceof Number); assertTrue(foundValue == expectedValue); }
538 else if (expectedValue instanceof Boolean) {
539 assertTrue(foundValue instanceof Boolean);
540 assertTrue(foundValue == expectedValue);
541 } else if (expectedValue instanceof Map) {
542 assertTrue(foundValue instanceof Map);
543 Map<String, Object> foundMap = (Map<String, Object>) foundValue;
544 Map<String, Object> excpectedMap = (Map<String, Object>) expectedValue;
545 assertTrue("size of maps is not equel", foundMap.size() == excpectedMap.size());
546 Iterator<String> foundkeyItr = foundMap.keySet().iterator();
547 while (foundkeyItr.hasNext()) {
548 String foundKey = foundkeyItr.next();
549 assertTrue(excpectedMap.containsKey(foundKey));
550 compareElements(excpectedMap.get(foundKey), foundMap.get(foundKey));
553 } else if (expectedValue instanceof List) {
554 assertTrue(foundValue instanceof List);
555 List<Object> foundList = (List<Object>) foundValue;
556 List<Object> excpectedList = (List<Object>) expectedValue;
557 assertTrue("size of maps is not equel", foundList.size() == excpectedList.size());
558 if( foundList.size() > 0 ){
559 final Object elementInList = foundList.get(0);
560 if( !(elementInList instanceof List || elementInList instanceof Map) ){
561 List<Object> tempList = new ArrayList<>();
562 tempList.addAll(foundList);
563 for(Object expectedObj : excpectedList){
564 if( tempList.contains(expectedObj)){
565 tempList.remove(expectedObj);
571 assertTrue("Lists are not equel", tempList.isEmpty());
576 assertTrue(foundValue.equals(expectedValue));
580 // public static Map<String, Object> parseAuditResourceByAction(String
581 // action, String body) throws Exception {
583 // Map auditingMessage = null;
584 // auditingMessage = retrieveAuditMessagesByPattern(action, null);
586 // return auditingMessage;
590 public static Map<String, Object> parseAuditResourceByAction(String action, Map<AuditingFieldsKey, String> body) throws Exception {
592 Map auditingMessage = null;
593 auditingMessage = retrieveAuditMessagesByPattern(action, body, false);
594 return auditingMessage;
598 public static List<Map<String, Object>> parseAuditResourceByActionToList(String action,
599 Map<AuditingFieldsKey, String> body) throws Exception {
601 Map auditingMessage = null;
603 if (body == null || body.isEmpty()) {
604 auditingMessage = retrieveAuditMessagesByPattern(action, null, false);
606 auditingMessage = retrieveAuditMessagesByPattern(action, body, false);
609 return ResponseParser.getAuditFromMessage(auditingMessage);
612 public JSONObject buildElasticQueryStringObject(String defaultField, String queryValue) throws JSONException {
614 JSONObject query_string = new JSONObject();
615 JSONObject jSONObject = new JSONObject();
616 jSONObject.put("default_field", defaultField);
617 jSONObject.put("query", queryValue);
619 query_string.put("query_string", jSONObject);
624 public static JSONObject buildElasticQueryBody(List<JSONObject> listObjects) throws JSONException {
626 JSONObject query = new JSONObject();
627 JSONObject bool = new JSONObject();
628 JSONObject must = new JSONObject();
629 JSONArray mustA = new JSONArray();
631 for (int i = 0; i < listObjects.size(); i++) {
632 JSONObject match = new JSONObject();
633 match.put("match", listObjects.get(i));
638 must.put("must", mustA);
639 bool.put("bool", must);
640 query.put("query", bool);
645 public static String retrieveAuditMessagesUsingBody(String query_string) throws IOException {
647 Config config = Utils.getConfig();
648 HttpRequest getAuditingMessage = new HttpRequest();
649 Map<String, String> headersMap = new HashMap<String, String>();
650 String body = query_string;
652 String url = String.format(Urls.GET_SEARCH_DATA_FROM_ES, config.getEsHost(), config.getEsPort(), "_search");
653 RestResponse restResponse = getAuditingMessage.httpSendPost(url, body, headersMap);
655 return restResponse.getResponse();
658 public static Map<String, String> retrieveAuditMessagesByPattern(String action, Map<AuditingFieldsKey, String> body, Boolean retryFlag)
661 // get cassandra table name by action
662 String esType = AuditingActionEnum.fromName(action).getAuditingEsType();
663 Map<String, String> resultsMap = new HashMap<String, String>();
665 List<Pair<AuditingFieldsKey, String>> myFields = new ArrayList<Pair<AuditingFieldsKey, String>>();
666 Pair<AuditingFieldsKey, String> myPair = new Pair<AuditingFieldsKey, String>(
667 AuditingFieldsKey.AUDIT_ACTION, action);
668 myFields.add(0, myPair);
669 if (body != null && !body.isEmpty()) {
670 for (Map.Entry<AuditingFieldsKey, String> mapElement : body.entrySet()) {
671 myFields.add(new Pair<AuditingFieldsKey, String>(mapElement.getKey(), mapElement.getValue()));
675 List<Row> fetchFromTable = CassandraUtils.fetchFromTable(auditKeySpaceName, esType, myFields);
677 if(fetchFromTable.size() == 0){
681 // assertTrue("expected on fetching from data base one record only, actual: " + fetchFromTable.size(), fetchFromTable.size() == 1);
688 if (fetchFromTable.size() > 1){
689 List<Row> fetchFromTable2 = fetchFromTable;
690 fetchFromTable2.sort((p1, p2) -> p1.getTimestamp(1).compareTo(p2.getTimestamp(1)));
691 row = fetchFromTable2.get(fetchFromTable2.size() - 1);
693 else {row = fetchFromTable.get(0);}
695 ColumnDefinitions columnDefinitions = row.getColumnDefinitions();
697 for (int i = 0; i < columnDefinitions.size(); i++) {
698 resultsMap.put(columnDefinitions.getName(i), row.getObject(columnDefinitions.getName(i)) == null ? "null"
699 : row.getObject(columnDefinitions.getName(i)).toString());
705 public static void categoryAuditSuccess(String action, CategoryDefinition categoryDefinition, User user, int status,
706 String resourceType) throws Exception {
707 categoryAuditSuccessInternal(action, categoryDefinition, null, null, user, status, resourceType);
710 public static void categoryAuditFailure(String action, CategoryDefinition categoryDataDefinition, User user,
711 ActionStatus errorMessage, int status, String resourceType, Object... variables) throws Exception {
712 categoryAuditFailureInternal(action, categoryDataDefinition, null, null, user, errorMessage, status,
713 resourceType, variables);
716 public static void subCategoryAuditSuccess(String action, CategoryDefinition categoryDefinition,
717 SubCategoryDefinition subCategoryDefinition, User user, int status, String resourceType) throws Exception {
718 categoryAuditSuccessInternal(action, categoryDefinition, subCategoryDefinition, null, user, status,
722 public static void groupingAuditSuccess(String action, CategoryDefinition categoryDefinition,
723 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user, int status,
724 String resourceType) throws Exception {
725 categoryAuditSuccessInternal(action, categoryDefinition, subCategoryDefinition, groupingDefinition, user,
726 status, resourceType);
729 public static void subCategoryAuditFailure(String action, CategoryDefinition categoryDataDefinition,
730 SubCategoryDefinition subCategoryDefinition, User user, ActionStatus errorMessage, int status,
731 String resourceType, Object... variables) throws Exception {
732 categoryAuditFailureInternal(action, categoryDataDefinition, subCategoryDefinition, null, user, errorMessage,
733 status, resourceType, variables);
737 public static void groupingAuditFailure(String action, CategoryDefinition categoryDefinition,
738 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user,
739 ActionStatus errorMessage, int status, String resourceType, Object... variables) throws Exception {
740 groupingAuditFailureInternal(action, categoryDefinition, subCategoryDefinition, groupingDefinition, user,
741 errorMessage, status, resourceType, variables);
744 private static void groupingAuditFailureInternal(String action, CategoryDefinition categoryDataDefinition,
745 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user,
746 ActionStatus errorMessage, int status, String resourceType, Object... variables) throws Exception {
748 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
749 ExpectedCategoryAudit expectedCatrgoryAuditJavaObject = new ExpectedCategoryAudit();
750 expectedCatrgoryAuditJavaObject.setAction(action);
751 expectedCatrgoryAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
752 expectedCatrgoryAuditJavaObject.setCategoryName(categoryDataDefinition.getName());
753 String subCategoryName = (subCategoryDefinition != null ? subCategoryDefinition.getName() : Constants.EMPTY_STRING);
754 expectedCatrgoryAuditJavaObject.setSubCategoryName(subCategoryName);
755 String groupingName = (groupingDefinition != null ? groupingDefinition.getName() : Constants.EMPTY_STRING);
756 expectedCatrgoryAuditJavaObject.setGroupingName(groupingName);
757 expectedCatrgoryAuditJavaObject.setResourceType(resourceType);
758 expectedCatrgoryAuditJavaObject.setStatus(String.valueOf(status));
759 expectedCatrgoryAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
760 AuditValidationUtils.validateCategoryAudit(expectedCatrgoryAuditJavaObject, action);
764 private static void categoryAuditSuccessInternal(String action, CategoryDefinition categoryDefinition,
765 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user, int status,
766 String resourceType) throws Exception {
767 // resourceType = Service/Resource/Product
768 ExpectedCategoryAudit expectedCatrgoryAuditJavaObject = new ExpectedCategoryAudit();
769 expectedCatrgoryAuditJavaObject.setAction(action);
770 expectedCatrgoryAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
771 expectedCatrgoryAuditJavaObject.setCategoryName(categoryDefinition.getName());
772 String subCategoryName = (subCategoryDefinition != null ? subCategoryDefinition.getName()
773 : Constants.EMPTY_STRING);
774 expectedCatrgoryAuditJavaObject.setSubCategoryName(subCategoryName);
775 String groupingName = (groupingDefinition != null ? groupingDefinition.getName() : Constants.EMPTY_STRING);
776 expectedCatrgoryAuditJavaObject.setGroupingName(groupingName);
777 expectedCatrgoryAuditJavaObject.setResourceType(resourceType);
778 expectedCatrgoryAuditJavaObject.setStatus(String.valueOf(status));
779 expectedCatrgoryAuditJavaObject.setDesc("OK");
780 AuditValidationUtils.validateCategoryAudit(expectedCatrgoryAuditJavaObject, action);
783 ///////////////////////////
785 public enum UserAuditJsonKeysEnum {
786 ACTION("ACTION"), MODIFIER("MODIFIER"), STATUS("STATUS"), DESC("DESCRIPTION"), USER_AFTER("USER_AFTER"), USER_BEFORE("USER_BEFORE");
787 private String auditJsonKeyName;
789 private UserAuditJsonKeysEnum(String auditJsonKeyName) {
790 this.auditJsonKeyName = auditJsonKeyName;
793 public String getAuditJsonKeyName() {
794 return auditJsonKeyName.toLowerCase();
798 public static void validateAddUserAudit(ExpectedUserCRUDAudit expectedAddUserAuditJavaObject, String action) throws Exception {
800 List<Map<String, Object>> actionToList = getAuditListByAction(expectedAddUserAuditJavaObject.getAction(), 1);
801 Map<String, Object> map = actionToList.get(0);
802 validateField(map, UserAuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
803 validateField(map, UserAuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getModifier());
804 validateField(map, UserAuditJsonKeysEnum.USER_AFTER.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getUserAfter());
805 validateField(map, UserAuditJsonKeysEnum.USER_BEFORE.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getUserBefore());
806 validateField(map, UserAuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getStatus());
807 validateField(map, UserAuditJsonKeysEnum.DESC.getAuditJsonKeyName(), expectedAddUserAuditJavaObject.getDesc());
811 private static void categoryAuditFailureInternal(String action, CategoryDefinition categoryDataDefinition,
812 SubCategoryDefinition subCategoryDefinition, GroupingDefinition groupingDefinition, User user,
813 ActionStatus errorMessage, int status, String resourceType, Object... variables) throws Exception {
815 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorMessage.name());
816 ExpectedCategoryAudit expectedCatrgoryAuditJavaObject = new ExpectedCategoryAudit();
817 expectedCatrgoryAuditJavaObject.setAction(action);
818 expectedCatrgoryAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
819 expectedCatrgoryAuditJavaObject.setCategoryName(categoryDataDefinition.getName());
820 String subCategoryName = (subCategoryDefinition != null ? subCategoryDefinition.getName() : Constants.EMPTY_STRING);
821 expectedCatrgoryAuditJavaObject.setSubCategoryName(subCategoryName);
822 String groupingName = (groupingDefinition != null ? groupingDefinition.getName() : Constants.EMPTY_STRING);
823 expectedCatrgoryAuditJavaObject.setGroupingName(groupingName);
824 expectedCatrgoryAuditJavaObject.setResourceType(resourceType);
825 expectedCatrgoryAuditJavaObject.setStatus(String.valueOf(status));
826 expectedCatrgoryAuditJavaObject.setDesc(errorInfo.getAuditDesc(variables));
827 AuditValidationUtils.validateCategoryAudit(expectedCatrgoryAuditJavaObject, action);
830 public static void validateGetCategoryHirarchy(ExpectedCategoryAudit expectedCatrgoryAuditJavaObject, String action)
833 List<Map<String, Object>> actionToList = getAuditListByAction(expectedCatrgoryAuditJavaObject.getAction(), 1);
834 Map<String, Object> map = actionToList.get(0);
836 expectedCatrgoryAuditJavaObject.setModifier(getModifierString(expectedCatrgoryAuditJavaObject.getModifierName(),
837 expectedCatrgoryAuditJavaObject.getModifierUid()));
838 validateField(map, CategoryAuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
839 validateField(map, CategoryAuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getModifier());
840 validateField(map, CategoryAuditJsonKeysEnum.DETAILS.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getDetails());
841 validateField(map, CategoryAuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getStatus());
842 validateField(map, CategoryAuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getDesc());
846 public static void validateCategoryAudit(ExpectedCategoryAudit expectedCatrgoryAuditJavaObject, String action)
849 List<Map<String, Object>> actionToList = getAuditListByAction(expectedCatrgoryAuditJavaObject.getAction(), 1);
850 Map<String, Object> map = actionToList.get(0);
851 validateField(map, CategoryAuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
852 validateField(map, CategoryAuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getModifier());
853 validateField(map, CategoryAuditJsonKeysEnum.CATEGORY_NAME.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getCategoryName());
854 validateField(map, CategoryAuditJsonKeysEnum.SUB_CATEGORY_NAME.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getSubCategoryName());
855 validateField(map, CategoryAuditJsonKeysEnum.GROUPING_NAME.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getGroupingName());
856 validateField(map, CategoryAuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getResourceType());
857 validateField(map, CategoryAuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getStatus());
858 validateField(map, CategoryAuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), expectedCatrgoryAuditJavaObject.getDesc());
861 public static void GetCategoryHierarchyAuditSuccess(String action, String componentType, User user, int status)
863 ExpectedGetUserListAudit expectedGetListOfUsersAuditJavaObject = new ExpectedGetUserListAudit();
864 expectedGetListOfUsersAuditJavaObject.setAction(action);
865 expectedGetListOfUsersAuditJavaObject.setStatus(String.valueOf(status));
866 expectedGetListOfUsersAuditJavaObject.setDesc("OK");
867 expectedGetListOfUsersAuditJavaObject.setModifier(user.getFullName() + "(" + user.getUserId() + ")");
868 expectedGetListOfUsersAuditJavaObject.setDetails(componentType.toLowerCase());
869 validateAuditGetListOfUsersByRoles(expectedGetListOfUsersAuditJavaObject, action);
872 public static String buildArtifactDataAudit(ArtifactDefinition artifactDefinition) {
873 StringBuilder sb = new StringBuilder();
874 if (artifactDefinition.getTimeout() == null) {
875 artifactDefinition.setTimeout(0);
877 if (artifactDefinition != null) {
878 sb.append(artifactDefinition.getArtifactGroupType() == null ? null
879 : artifactDefinition.getArtifactGroupType().getType()).append(",").append("'")
880 .append(artifactDefinition.getArtifactLabel()).append("'").append(",")
881 .append(artifactDefinition.getArtifactType()).append(",")
882 .append(artifactDefinition.getArtifactName()).append(",").append(artifactDefinition.getTimeout())
883 .append(",").append(artifactDefinition.getEsId());
885 if (artifactDefinition.getArtifactVersion() != null) {
886 sb.append(artifactDefinition.getArtifactVersion());
891 if (artifactDefinition.getArtifactUUID() != null) {
892 sb.append(artifactDefinition.getArtifactUUID());
898 return sb.toString();
902 public static ExpectedResourceAuditJavaObject expectedArtifactNotFoundAuditObject(String Action, String resourceUid,
903 ComponentType resourceType, String artifactUid, User user, String currState, String currVersion)
904 throws FileNotFoundException {
907 ExpectedResourceAuditJavaObject expectedAudit = new ExpectedResourceAuditJavaObject();
908 expectedAudit.setAction(Action);
909 expectedAudit.setResourceName(resourceUid);
910 expectedAudit.setResourceType(resourceType.getValue());
911 expectedAudit.setPrevVersion("");
912 expectedAudit.setCurrVersion(currVersion);
913 expectedAudit.setModifierName(user.getFirstName() + " " + user.getLastName());
914 expectedAudit.setModifierUid(user.getUserId());
915 expectedAudit.setPrevState("");
916 expectedAudit.setCurrState(currState);
917 expectedAudit.setPrevArtifactUuid("");
918 expectedAudit.setCurrArtifactUuid(artifactUid);
919 expectedAudit.setArtifactData("");
920 expectedAudit.setStatus("404");
922 desc = buildAuditDescription(
923 new ErrorValidationUtils().parseErrorConfigYaml(ActionStatus.ARTIFACT_NOT_FOUND.name()),
926 expectedAudit.setDesc(desc);
927 return expectedAudit;
930 public static JSONObject filterAuditByUuid(String action, String uuid) throws Exception {
931 Map<String, String> actionMap = new HashMap<>();
932 actionMap.put("ACTION", action);
933 JSONObject actionJsonObject = new JSONObject(actionMap);
934 Map<String, String> uuidMap = new HashMap<>();
935 uuidMap.put("SERVICE_INSTANCE_ID", uuid);
936 JSONObject uuidJsonObject = new JSONObject(uuidMap);
938 List<JSONObject> filters = new ArrayList<>(Arrays.asList(actionJsonObject, uuidJsonObject));
939 JSONObject body = buildElasticQueryBody(filters);
943 public static void validateAudit(ExpectedResourceAuditJavaObject resourceAuditJavaObject, String action) throws Exception {
944 List<Map<String, Object>> actionToList = getAuditListByAction(resourceAuditJavaObject.getAction(), 1);
945 Map<String, Object> map2 = actionToList.get(0);
946 validateField(map2, AuditJsonKeysEnum.ACTION.getAuditJsonKeyName(), action);
947 validateField(map2, AuditJsonKeysEnum.RESOURCE_NAME.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceName());
948 validateField(map2, AuditJsonKeysEnum.RESOURCE_TYPE.getAuditJsonKeyName(), resourceAuditJavaObject.getResourceType());
949 validateField(map2, AuditJsonKeysEnum.PREV_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevVersion());
950 validateField(map2, AuditJsonKeysEnum.CURR_VERSION.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrVersion());
951 validateField(map2, AuditJsonKeysEnum.MODIFIER.getAuditJsonKeyName(), resourceAuditJavaObject.getMODIFIER());
952 validateField(map2, AuditJsonKeysEnum.PREV_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getPrevState());
953 validateField(map2, AuditJsonKeysEnum.CURR_STATE.getAuditJsonKeyName(), resourceAuditJavaObject.getCurrState());
954 validateField(map2, AuditJsonKeysEnum.STATUS.getAuditJsonKeyName(), resourceAuditJavaObject.getStatus());
955 validateField(map2, AuditJsonKeysEnum.DESCRIPTION.getAuditJsonKeyName(), resourceAuditJavaObject.getDesc());
956 validateField(map2, AuditJsonKeysEnum.COMMENT.getAuditJsonKeyName(), resourceAuditJavaObject.getComment());
959 ////// service audit validation/////////////////////
961 public static ExpectedResourceAuditJavaObject constructFieldsForAuditValidation(ServiceReqDetails serviceReqDetails,
962 String serviceVersion, User sdncUserDetails) {
964 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = new ExpectedResourceAuditJavaObject();
966 expectedResourceAuditJavaObject.setAction("Create");
967 expectedResourceAuditJavaObject.setModifierUid(sdncUserDetails.getUserId());
968 String userFirstLastName = sdncUserDetails.getFirstName() + " " + sdncUserDetails.getLastName();
969 expectedResourceAuditJavaObject.setModifierName(userFirstLastName);
970 expectedResourceAuditJavaObject.setStatus("200");
971 expectedResourceAuditJavaObject.setDesc("OK");
972 expectedResourceAuditJavaObject.setResourceName(serviceReqDetails.getName());
973 expectedResourceAuditJavaObject.setResourceType("Service");
974 expectedResourceAuditJavaObject.setPrevVersion(String.valueOf(Float.parseFloat(serviceVersion) - 0.1f));
975 expectedResourceAuditJavaObject.setCurrVersion(serviceVersion);
976 expectedResourceAuditJavaObject.setPrevState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
977 expectedResourceAuditJavaObject.setCurrState((LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT).toString());
978 expectedResourceAuditJavaObject.setComment(null);
980 return expectedResourceAuditJavaObject;
984 public static ExpectedResourceAuditJavaObject constructFieldsForAuditValidation(ServiceReqDetails serviceReqDetails,
985 String serviceVersion, User sdncUserDetails, ActionStatus errorStatus, List<String> variables)
986 throws FileNotFoundException {
988 ExpectedResourceAuditJavaObject expectedResourceAuditJavaObject = constructFieldsForAuditValidation(
989 serviceReqDetails, serviceVersion, sdncUserDetails);
990 ErrorInfo errorInfo = ErrorValidationUtils.parseErrorConfigYaml(errorStatus.name());
992 expectedResourceAuditJavaObject.setStatus(errorInfo.getCode().toString());
993 String auditDesc = AuditValidationUtils.buildAuditDescription(errorInfo, variables);
994 expectedResourceAuditJavaObject.setDesc(auditDesc);
996 return expectedResourceAuditJavaObject;