1 package org.apache.maven.surefire.junitplatform;
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.testset.TestListResolver;
23 import org.junit.platform.engine.FilterResult;
24 import org.junit.platform.engine.TestDescriptor;
25 import org.junit.platform.engine.support.descriptor.MethodSource;
26 import org.junit.platform.launcher.PostDiscoveryFilter;
27
28
29
30
31 class TestMethodFilter
32 implements PostDiscoveryFilter
33 {
34
35 private final TestListResolver testListResolver;
36
37 TestMethodFilter( TestListResolver testListResolver )
38 {
39 this.testListResolver = testListResolver;
40 }
41
42 @Override
43 public FilterResult apply( TestDescriptor descriptor )
44 {
45 boolean shouldRun = descriptor.getSource()
46 .filter( MethodSource.class::isInstance )
47 .map( MethodSource.class::cast )
48 .map( this::shouldRun )
49 .orElse( true );
50
51 return FilterResult.includedIf( shouldRun );
52 }
53
54 private boolean shouldRun( MethodSource source )
55 {
56 String testClass = TestListResolver.toClassFileName( source.getClassName() );
57 String testMethod = source.getMethodName();
58 return this.testListResolver.shouldRun( testClass, testMethod );
59 }
60 }