/* * Copyright 2005-2010 Ignis Software Tools Ltd. All rights reserved. */ package jsystem.framework.scenario; import java.util.ArrayList; import java.util.List; public class ValidationError { public enum Originator { TEST, RUNNER; } private Originator originator; private String title; private String message; private JTest test; public Originator getOriginator() { return originator; } public void setOriginator(Originator originator) { this.originator = originator; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public JTest getTest() { return test; } public void setTest(JTest test) { this.test = test; } public static String getTitlesAsString(ArrayList<ValidationError> errors, boolean numbered, boolean removeDuplicates) { StringBuffer buf = new StringBuffer(); try { if (removeDuplicates) { errors = removeDuplicates(errors); } for (int i = 0; i < errors.size(); i++) { ValidationError validationError = errors.get(i); if (numbered) { buf.append((i + 1) + ". "); } JTest test = validationError.getTest(); if (test != null) { buf.append("Test=" + validationError.getTest().getTestName()); Scenario firstScenarioAncestor = ScenarioHelpers.getFirstScenarioAncestor(test); if (firstScenarioAncestor != null) { buf.append(", In Scenario= " + firstScenarioAncestor.getName() + " ,"); } } buf.append(validationError.getTitle()); buf.append("\n"); } } catch (Exception e) { buf.append("failed to get the validation error - " + e.getMessage()); } return buf.toString(); } /** * will remove all the Duplicates ValidationError form the array list. the * array will be unique with Test name and Scenario name * * @param errors * - array list of errors ,@see {@link ValidationError} * @return ValidationError with no duplicates items(by Test name and * Scenario name). * @author Liel.Ran * */ private static ArrayList<ValidationError> removeDuplicates(ArrayList<ValidationError> errors) { ArrayList<ValidationError> errorsWithoutDups = new ArrayList<ValidationError>(); // remove Dup's for (int i = 0; i < errors.size(); i++) { ValidationError validationError = errors.get(i); JTest test = validationError.getTest(); Scenario firstScenarioAncestor = ScenarioHelpers.getFirstScenarioAncestor(test); for (int j = 0; j < errors.size(); j++) { ValidationError validationErrorCompareTo = errors.get(j); JTest compareToTest = validationErrorCompareTo.getTest(); Scenario compareToFirstScenarioAncestor = ScenarioHelpers.getFirstScenarioAncestor(compareToTest); try { if (!validationError.equals(validationErrorCompareTo) && test.getTestName().equals(validationErrorCompareTo.getTest().getTestName()) && firstScenarioAncestor.getName().equals(compareToFirstScenarioAncestor.getName())) { errors.remove(j); } } catch (Exception e) { } } errorsWithoutDups = errors; } return errorsWithoutDups; } public static String collectErrorsDescriptions(ArrayList<ValidationError> errors, boolean full) { StringBuffer buf = new StringBuffer(); for (ValidationError error : errors) { buf.append(error.getTitle()); buf.append("\n"); if (full) { buf.append(error.getMessage()); buf.append("\n"); } } return buf.toString(); } public static void clearValidatorsWithOriginator(List<ValidationError> errors, Originator originator) { if (errors != null) { for (int i = 0; i < errors.size(); i++) { if (originator.equals(errors.get(i).getOriginator())) { errors.remove(errors.get(i)); i--; } } } } }