package de.bechte.junit.runners.validation; import org.junit.internal.runners.rules.RuleMemberValidator; import org.junit.runners.model.TestClass; import java.util.List; /** * The {@link RuleValidator}s validate methods and fields annotated with @Rule. This validators delegate the validation * call to the implementation of the {@link RuleMemberValidator} class. This class also has a validate method but it * does not implement the {@link TestClassValidator} interface. Therefore, a simple delegate was created. */ public enum RuleValidator implements TestClassValidator { CLASS_RULE_VALIDATOR(RuleMemberValidator.CLASS_RULE_VALIDATOR), RULE_VALIDATOR(RuleMemberValidator.RULE_VALIDATOR), CLASS_RULE_METHOD_VALIDATOR(RuleMemberValidator.CLASS_RULE_METHOD_VALIDATOR), RULE_METHOD_VALIDATOR(RuleMemberValidator.RULE_METHOD_VALIDATOR); private final RuleMemberValidator validator; private RuleValidator(final RuleMemberValidator validator) { this.validator = validator; } public void validate(final TestClass testClass, final List<Throwable> errors) { validator.validate(testClass, errors); } }