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