blob: f0bd7d5c603a6992bbac07478f07539bbb71ba85 [file] [log] [blame]
package org.junit.experimental.categories;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.runner.Description.createSuiteDescription;
import java.util.List;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.rules.TestName;
import org.junit.runner.Description;
import org.junit.runner.FilterFactory;
import org.junit.runner.FilterFactoryParams;
import org.junit.runner.manipulation.Filter;
public class CategoryFilterFactoryTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Rule
public TestName testName = new TestName();
private final CategoryFilterFactory categoryFilterFactory = new CategoryFilterFactoryStub();
@Test
public void shouldCreateFilter() throws Exception {
FilterFactoryParams params = new FilterFactoryParams(
createSuiteDescription(testName.getMethodName()),
CategoryFilterFactoryStub.class.getName());
Filter filter = categoryFilterFactory.createFilter(params);
assertThat(filter, instanceOf(DummyFilter.class));
}
@Test
public void shouldThrowException() throws Exception {
FilterFactoryParams params = new FilterFactoryParams(
createSuiteDescription(testName.getMethodName()),
"NonExistentFilter");
expectedException.expect(FilterFactory.FilterNotCreatedException.class);
categoryFilterFactory.createFilter(params);
}
private static class CategoryFilterFactoryStub extends CategoryFilterFactory {
@Override
protected Filter createFilter(List<Class<?>> categories) {
return new DummyFilter();
}
}
private static class DummyFilter extends Filter {
@Override
public boolean shouldRun(Description description) {
return false;
}
@Override
public String describe() {
return null;
}
}
}