001 package org.junit.validator;
002
003 import static java.util.Collections.emptyList;
004 import static java.util.Collections.singletonList;
005
006 import java.util.List;
007
008 import org.junit.runners.model.TestClass;
009
010 /**
011 * Validates that a {@link TestClass} is public.
012 *
013 * @since 4.12
014 */
015 public class PublicClassValidator implements TestClassValidator {
016 private static final List<Exception> NO_VALIDATION_ERRORS = emptyList();
017
018 /**
019 * Validate that the specified {@link TestClass} is public.
020 *
021 * @param testClass the {@link TestClass} that is validated.
022 * @return an empty list if the class is public or a list with a single
023 * exception otherwise.
024 */
025 public List<Exception> validateTestClass(TestClass testClass) {
026 if (testClass.isPublic()) {
027 return NO_VALIDATION_ERRORS;
028 } else {
029 return singletonList(new Exception("The class "
030 + testClass.getName() + " is not public."));
031 }
032 }
033 }