package de.ugoe.cs.autoquest.usability.testutil; import org.fest.assertions.core.Condition; import com.google.common.base.Optional; import de.ugoe.cs.autoquest.usability.UsabilityEvaluationReport; import de.ugoe.cs.autoquest.usability.evaluation.result.UsabilityDefectSeverityLevel; import de.ugoe.cs.autoquest.usability.evaluation.result.UsabilityDefect; import de.ugoe.cs.autoquest.usability.evaluation.rule.set.UsabilityRuleset; public class FestConditionUtil { private FestConditionUtil() { // no good idea } public static Condition noUsabilityGuidlineRecommendations() { return new Condition() { @Override public boolean matches(UsabilityEvaluationReport usabilityEvaluationReport) { return usabilityEvaluationReport.evaluationResults().isEmpty(); } }; } public static Condition usabilityGuidlineRecommendations() { return new Condition() { @Override public boolean matches(UsabilityEvaluationReport usabilityEvaluationReport) { return !usabilityEvaluationReport.evaluationResults().isEmpty(); } }; } public static Condition noUsabilityRules() { return new Condition() { @Override public boolean matches(UsabilityRuleset usabilityRuleset) { return usabilityRuleset.evaluationRules().isEmpty(); } }; } public static Condition usabilityRules() { return new Condition() { @Override public boolean matches(UsabilityRuleset usabilityRuleset) { return !usabilityRuleset.evaluationRules().isEmpty(); } }; } public static Condition> present() { return new Condition>() { @Override public boolean matches(Optional usabilityGuidlineRecommendation) { return usabilityGuidlineRecommendation.isPresent(); } }; } public static Condition> absent() { return new Condition>() { @Override public boolean matches(Optional usabilityGuidlineRecommendation) { return !usabilityGuidlineRecommendation.isPresent(); } }; } public static Condition> infoRecommendationSeverityLevel() { return new Condition>() { @Override public boolean matches(Optional usabilityGuidlineRecommendation) { return usabilityGuidlineRecommendation.get().getSeverityLevel().equals(UsabilityDefectSeverityLevel.INFO); } }; } public static Condition> lowRecommendationSeverityLevel() { return new Condition>() { @Override public boolean matches(Optional usabilityGuidlineRecommendation) { return usabilityGuidlineRecommendation.get().getSeverityLevel().equals(UsabilityDefectSeverityLevel.LOW); } }; } public static Condition> mediumRecommendationSeverityLevel() { return new Condition>() { @Override public boolean matches(Optional usabilityGuidlineRecommendation) { return usabilityGuidlineRecommendation.get().getSeverityLevel().equals(UsabilityDefectSeverityLevel.MEDIUM); } }; } public static Condition> highRecommendationSeverityLevel() { return new Condition>() { @Override public boolean matches(Optional usabilityGuidlineRecommendation) { return usabilityGuidlineRecommendation.get().getSeverityLevel().equals(UsabilityDefectSeverityLevel.HIGH); } }; } }