1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.surefire.junit4;
20
21 import org.apache.maven.surefire.api.testset.TestListResolver;
22 import org.apache.maven.surefire.api.util.internal.ClassMethod;
23 import org.junit.runner.Description;
24 import org.junit.runner.manipulation.Filter;
25
26 import static org.apache.maven.surefire.api.testset.TestListResolver.toClassFileName;
27 import static org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.toClassMethod;
28
29
30
31
32 final class TestResolverFilter extends Filter {
33 private final TestListResolver methodFilter;
34
35 TestResolverFilter(TestListResolver methodFilter) {
36 this.methodFilter = methodFilter;
37 }
38
39 @Override
40 public boolean shouldRun(Description description) {
41
42 final ClassMethod cm = toClassMethod(description);
43 final boolean isSuite = description.isSuite();
44 final boolean isValidTest = description.isTest() && cm.isValidTest();
45 final String clazz = cm.getClazz();
46 final String method = cm.getMethod();
47 return isSuite || isValidTest && methodFilter.shouldRun(toClassFileName(clazz), method);
48 }
49
50 @Override
51 public String describe() {
52 return methodFilter.toString();
53 }
54 }