Introduce and() methods in MethodFilter & FieldFilter for composition

This commit introduces `and()` default methods in the MethodFilter and
FieldFilter functional interfaces in ReflectionUtils in order to simplify
uses cases that need to compose filter logic.

Closes gh-26063
This commit is contained in:
Sam Brannen
2020-11-10 16:31:31 +01:00
parent daf9a82e8c
commit fc5e3c335f
3 changed files with 30 additions and 11 deletions

View File

@@ -98,10 +98,10 @@ public class SpringExtension implements BeforeAllCallback, AfterAllCallback, Tes
private static final List<Class<? extends Annotation>> JUPITER_ANNOTATION_TYPES =
Arrays.asList(BeforeAll.class, AfterAll.class, BeforeEach.class, AfterEach.class, Testable.class);
private static final MethodFilter autowiredTestOrLifecycleMethodFilter = method ->
(ReflectionUtils.USER_DECLARED_METHODS.matches(method) &&
!Modifier.isPrivate(method.getModifiers()) &&
isAutowiredTestOrLifecycleMethod(method));
private static final MethodFilter autowiredTestOrLifecycleMethodFilter =
ReflectionUtils.USER_DECLARED_METHODS
.and(method -> !Modifier.isPrivate(method.getModifiers()))
.and(SpringExtension::isAutowiredTestOrLifecycleMethod);
/**