Skip to content

Commit 529da15

Browse files
committed
Extract more methods to improve readability
1 parent 6db5a0d commit 529da15

File tree

1 file changed

+59
-45
lines changed

1 file changed

+59
-45
lines changed

junit-platform-suite-commons/src/main/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilder.java

+59-45
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,7 @@ public SuiteLauncherDiscoveryRequestBuilder applyConfigurationParametersFromSuit
338338
* <li>{@link SelectModules}</li>
339339
* <li>{@link SelectUris}</li>
340340
* <li>{@link SelectPackages}</li>
341+
* <li>{@link Select}</li>
341342
* </ul>
342343
*
343344
* @param suiteClass the class to apply the discovery selectors and filter
@@ -349,71 +350,84 @@ public SuiteLauncherDiscoveryRequestBuilder applyConfigurationParametersFromSuit
349350
public SuiteLauncherDiscoveryRequestBuilder applySelectorsAndFiltersFromSuite(Class<?> suiteClass) {
350351
Preconditions.notNull(suiteClass, "Suite class must not be null");
351352

352-
// Annotations in alphabetical order (except @SelectClasses)
353-
// @formatter:off
354-
findAnnotationValues(suiteClass, ExcludeClassNamePatterns.class, ExcludeClassNamePatterns::value)
355-
.flatMap(SuiteLauncherDiscoveryRequestBuilder::trimmed)
356-
.map(ClassNameFilter::excludeClassNamePatterns)
353+
addExcludeFilters(suiteClass);
354+
// Process @SelectClasses and @SelectMethod before @IncludeClassNamePatterns, since the names
355+
// of selected classes get automatically added to the include filter.
356+
addClassAndMethodSelectors(suiteClass);
357+
addIncludeFilters(suiteClass);
358+
addOtherSelectors(suiteClass);
359+
return this;
360+
}
361+
362+
private void addExcludeFilters(Class<?> suiteClass) {
363+
findAnnotationValues(suiteClass, ExcludeClassNamePatterns.class, ExcludeClassNamePatterns::value) //
364+
.flatMap(SuiteLauncherDiscoveryRequestBuilder::trimmed) //
365+
.map(ClassNameFilter::excludeClassNamePatterns) //
357366
.ifPresent(this::filters);
358-
findAnnotationValues(suiteClass, ExcludeEngines.class, ExcludeEngines::value)
359-
.map(EngineFilter::excludeEngines)
367+
findAnnotationValues(suiteClass, ExcludeEngines.class, ExcludeEngines::value) //
368+
.map(EngineFilter::excludeEngines) //
360369
.ifPresent(this::filters);
361-
findAnnotationValues(suiteClass, ExcludePackages.class, ExcludePackages::value)
362-
.map(PackageNameFilter::excludePackageNames)
370+
findAnnotationValues(suiteClass, ExcludePackages.class, ExcludePackages::value) //
371+
.map(PackageNameFilter::excludePackageNames) //
363372
.ifPresent(this::filters);
364-
findAnnotationValues(suiteClass, ExcludeTags.class, ExcludeTags::value)
365-
.map(TagFilter::excludeTags)
373+
findAnnotationValues(suiteClass, ExcludeTags.class, ExcludeTags::value) //
374+
.map(TagFilter::excludeTags) //
366375
.ifPresent(this::filters);
367-
// Process @SelectClasses before @IncludeClassNamePatterns, since the names
368-
// of selected classes get automatically added to the include filter.
369-
findAnnotation(suiteClass, SelectClasses.class)
370-
.map(annotation -> selectClasses(suiteClass, annotation))
376+
}
377+
378+
private void addClassAndMethodSelectors(Class<?> suiteClass) {
379+
findAnnotation(suiteClass, SelectClasses.class) //
380+
.map(annotation -> selectClasses(suiteClass, annotation)) //
371381
.ifPresent(this::selectors);
372-
findRepeatableAnnotations(suiteClass, SelectMethod.class)
373-
.stream()
374-
.map(annotation -> selectMethod(suiteClass, annotation))
382+
findRepeatableAnnotations(suiteClass, SelectMethod.class) //
383+
.stream() //
384+
.map(annotation -> selectMethod(suiteClass, annotation)) //
375385
.forEach(this::selectors);
376-
findAnnotationValues(suiteClass, IncludeClassNamePatterns.class, IncludeClassNamePatterns::value)
377-
.flatMap(SuiteLauncherDiscoveryRequestBuilder::trimmed)
378-
.map(this::createIncludeClassNameFilter)
386+
}
387+
388+
private void addIncludeFilters(Class<?> suiteClass) {
389+
findAnnotationValues(suiteClass, IncludeClassNamePatterns.class, IncludeClassNamePatterns::value) //
390+
.flatMap(SuiteLauncherDiscoveryRequestBuilder::trimmed) //
391+
.map(this::createIncludeClassNameFilter) //
379392
.ifPresent(filters -> {
380393
this.includeClassNamePatternsUsed = true;
381394
filters(filters);
382395
});
383-
findAnnotationValues(suiteClass, IncludeEngines.class, IncludeEngines::value)
384-
.map(EngineFilter::includeEngines)
396+
findAnnotationValues(suiteClass, IncludeEngines.class, IncludeEngines::value) //
397+
.map(EngineFilter::includeEngines) //
385398
.ifPresent(this::filters);
386-
findAnnotationValues(suiteClass, IncludePackages.class, IncludePackages::value)
387-
.map(PackageNameFilter::includePackageNames)
399+
findAnnotationValues(suiteClass, IncludePackages.class, IncludePackages::value) //
400+
.map(PackageNameFilter::includePackageNames) //
388401
.ifPresent(this::filters);
389-
findAnnotationValues(suiteClass, IncludeTags.class, IncludeTags::value)
390-
.map(TagFilter::includeTags)
402+
findAnnotationValues(suiteClass, IncludeTags.class, IncludeTags::value) //
403+
.map(TagFilter::includeTags) //
391404
.ifPresent(this::filters);
392-
findRepeatableAnnotations(suiteClass, SelectClasspathResource.class)
393-
.stream()
394-
.map(annotation -> selectClasspathResource(annotation.value(), annotation.line(), annotation.column()))
405+
}
406+
407+
private void addOtherSelectors(Class<?> suiteClass) {
408+
findRepeatableAnnotations(suiteClass, SelectClasspathResource.class) //
409+
.stream() //
410+
.map(annotation -> selectClasspathResource(annotation.value(), annotation.line(), annotation.column())) //
395411
.forEach(this::selectors);
396-
findAnnotationValues(suiteClass, SelectDirectories.class, SelectDirectories::value)
397-
.map(AdditionalDiscoverySelectors::selectDirectories)
412+
findAnnotationValues(suiteClass, SelectDirectories.class, SelectDirectories::value) //
413+
.map(AdditionalDiscoverySelectors::selectDirectories) //
398414
.ifPresent(this::selectors);
399-
findRepeatableAnnotations(suiteClass, SelectFile.class)
400-
.stream()
401-
.map(annotation -> selectFile(annotation.value(), annotation.line(), annotation.column()))
415+
findRepeatableAnnotations(suiteClass, SelectFile.class) //
416+
.stream() //
417+
.map(annotation -> selectFile(annotation.value(), annotation.line(), annotation.column())) //
402418
.forEach(this::selectors);
403-
findAnnotationValues(suiteClass, SelectModules.class, SelectModules::value)
404-
.map(AdditionalDiscoverySelectors::selectModules)
419+
findAnnotationValues(suiteClass, SelectModules.class, SelectModules::value) //
420+
.map(AdditionalDiscoverySelectors::selectModules) //
405421
.ifPresent(this::selectors);
406-
findAnnotationValues(suiteClass, SelectUris.class, SelectUris::value)
407-
.map(AdditionalDiscoverySelectors::selectUris)
422+
findAnnotationValues(suiteClass, SelectUris.class, SelectUris::value) //
423+
.map(AdditionalDiscoverySelectors::selectUris) //
408424
.ifPresent(this::selectors);
409-
findAnnotationValues(suiteClass, SelectPackages.class, SelectPackages::value)
410-
.map(AdditionalDiscoverySelectors::selectPackages)
425+
findAnnotationValues(suiteClass, SelectPackages.class, SelectPackages::value) //
426+
.map(AdditionalDiscoverySelectors::selectPackages) //
411427
.ifPresent(this::selectors);
412-
findAnnotationValues(suiteClass, Select.class, Select::value)
413-
.map(AdditionalDiscoverySelectors::parseIdentifiers)
428+
findAnnotationValues(suiteClass, Select.class, Select::value) //
429+
.map(AdditionalDiscoverySelectors::parseIdentifiers) //
414430
.ifPresent(this::selectors);
415-
// @formatter:on
416-
return this;
417431
}
418432

419433
/**

0 commit comments

Comments
 (0)