org.junit.runner.FilterFactories Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit Show documentation
Show all versions of junit Show documentation
JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck.
package org.junit.runner;
import org.junit.internal.Classes;
import org.junit.runner.FilterFactory.FilterNotCreatedException;
import org.junit.runner.manipulation.Filter;
/**
* Utility class whose methods create a {@link FilterFactory}.
*/
class FilterFactories {
/**
* Creates a {@link Filter}.
*
* A filter specification is of the form "package.of.FilterFactory=args-to-filter-factory" or
* "package.of.FilterFactory".
*
* @param request the request that will be filtered
* @param filterSpec the filter specification
* @throws org.junit.runner.FilterFactory.FilterNotCreatedException
*/
public static Filter createFilterFromFilterSpec(Request request, String filterSpec)
throws FilterFactory.FilterNotCreatedException {
Description topLevelDescription = request.getRunner().getDescription();
String[] tuple;
if (filterSpec.contains("=")) {
tuple = filterSpec.split("=", 2);
} else {
tuple = new String[]{ filterSpec, "" };
}
return createFilter(tuple[0], new FilterFactoryParams(topLevelDescription, tuple[1]));
}
/**
* Creates a {@link Filter}.
*
* @param filterFactoryFqcn The fully qualified class name of the {@link FilterFactory}
* @param params The arguments to the {@link FilterFactory}
*/
public static Filter createFilter(String filterFactoryFqcn, FilterFactoryParams params)
throws FilterFactory.FilterNotCreatedException {
FilterFactory filterFactory = createFilterFactory(filterFactoryFqcn);
return filterFactory.createFilter(params);
}
/**
* Creates a {@link Filter}.
*
* @param filterFactoryClass The class of the {@link FilterFactory}
* @param params The arguments to the {@link FilterFactory}
*
*/
public static Filter createFilter(Class filterFactoryClass, FilterFactoryParams params)
throws FilterFactory.FilterNotCreatedException {
FilterFactory filterFactory = createFilterFactory(filterFactoryClass);
return filterFactory.createFilter(params);
}
static FilterFactory createFilterFactory(String filterFactoryFqcn) throws FilterNotCreatedException {
Class filterFactoryClass;
try {
filterFactoryClass = Classes.getClass(filterFactoryFqcn).asSubclass(FilterFactory.class);
} catch (Exception e) {
throw new FilterNotCreatedException(e);
}
return createFilterFactory(filterFactoryClass);
}
static FilterFactory createFilterFactory(Class filterFactoryClass)
throws FilterNotCreatedException {
try {
return filterFactoryClass.getConstructor().newInstance();
} catch (Exception e) {
throw new FilterNotCreatedException(e);
}
}
}