Commit
Issue: #54
- Loading branch information
There are no files selected for viewing
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
|
@@ -16,6 +16,7 @@ | ||
|
|
||
import org.junit.gen5.engine.DiscoveryFilter; | import org.junit.gen5.engine.DiscoveryFilter; | ||
import org.junit.gen5.engine.DiscoverySelector; | import org.junit.gen5.engine.DiscoverySelector; | ||
import org.junit.gen5.engine.GenericFilter; | |||
|
|
||
/** | /** | ||
* The {@code DiscoveryRequestBuilder} provides a light-weight DSL for | * The {@code DiscoveryRequestBuilder} provides a light-weight DSL for | ||
|
@@ -26,31 +27,31 @@ | ||
* <pre style="code"> | * <pre style="code"> | ||
* DiscoveryRequestBuilder.request() | * DiscoveryRequestBuilder.request() | ||
* .select( | * .select( | ||
* packageName("org.junit.gen5"), | * forPackageName("org.junit.gen5"), | ||
* packageName("com.junit.samples"), | * forPackageName("com.junit.samples"), | ||
* testClass(TestDescriptorTests.class), | * forClass(TestDescriptorTests.class), | ||
* testClassByName("com.junit.samples.SampleTestCase"), | * forClassName("com.junit.samples.SampleTestCase"), | ||
* testMethod("com.junit.samples.SampleTestCase", "test2"), | * forTestMethod("com.junit.samples.SampleTestCase", "test2"), | ||
* testMethod(TestDescriptorTests.class, "test1"), | * forTestMethod(TestDescriptorTests.class, "test1"), | ||
* testMethod(TestDescriptorTests.class, "test1"), | * forTestMethod(TestDescriptorTests.class, "test1"), | ||
* testMethod(TestDescriptorTests.class, "testWithParams", ParameterType.class), | * forTestMethod(TestDescriptorTests.class, "testWithParams", ParameterType.class), | ||
* testMethod(TestDescriptorTests.class, testMethod), | * forTestMethod(TestDescriptorTests.class, testMethod), | ||
* path("/my/local/path1"), | * forPath("/my/local/path1"), | ||
* path("/my/local/path2"), | * forPath("/my/local/path2"), | ||
* uniqueId("unique-id-1"), | * forUniqueId("unique-id-1"), | ||
* uniqueId("unique-id-2") | * forUniqueId("unique-id-2") | ||
* ) | * ) | ||
* .filterBy(engineIds("junit5")) | * .filter(byEngineIds("junit5")) | ||
* .filterBy(classNamePattern("org.junit.gen5.tests"), classNamePattern("org.junit.sample")) | * .filter(byNamePattern("org.junit.gen5.tests"), byNamePattern("org.junit.sample")) | ||
* .filterBy(tagsIncluded("Fast"), tagsExcluded("Slow")) | * .filter(includeTags("Fast"), excludeTags("Slow")) | ||
* ).build(); | * ).build(); | ||
* </pre> | * </pre> | ||
*/ | */ | ||
public final class DiscoveryRequestBuilder { | public final class DiscoveryRequestBuilder { | ||
private List<DiscoverySelector> selectors = new LinkedList<>(); | private List<DiscoverySelector> selectors = new LinkedList<>(); | ||
private List<EngineIdFilter> engineIdFilters = new LinkedList<>(); | private List<EngineIdFilter> engineIdFilters = new LinkedList<>(); | ||
private List<DiscoveryFilter<?>> filters = new LinkedList<>(); | private List<DiscoveryFilter<?>> discoveryFilters = new LinkedList<>(); | ||
private List<PostDiscoveryFilter> postFilters = new LinkedList<>(); | private List<PostDiscoveryFilter> postDiscoveryFilters = new LinkedList<>(); | ||
|
|
||
public static DiscoveryRequestBuilder request() { | public static DiscoveryRequestBuilder request() { | ||
return new DiscoveryRequestBuilder(); | return new DiscoveryRequestBuilder(); | ||
|
@@ -70,34 +71,31 @@ public DiscoveryRequestBuilder select(List<DiscoverySelector> elements) { | ||
return this; | return this; | ||
} | } | ||
|
|
||
public DiscoveryRequestBuilder filterBy(EngineIdFilter... filters) { | public DiscoveryRequestBuilder filter(GenericFilter<?>... filters) { | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
bechte
Author
Contributor
|
|||
if (filters != null) { | if (filters != null) { | ||
this.engineIdFilters.addAll(Arrays.asList(filters)); | Arrays.stream(filters).forEach(this::storeFilter); | ||
} | } | ||
return this; | return this; | ||
} | } | ||
|
|
||
public DiscoveryRequestBuilder filterBy(DiscoveryFilter<?>... filters) { | private void storeFilter(GenericFilter<?> filter) { | ||
if (filters != null) { | if (filter instanceof EngineIdFilter) { | ||
this.filters.addAll(Arrays.asList(filters)); | this.engineIdFilters.add((EngineIdFilter) filter); | ||
} | } | ||
return this; | else if (filter instanceof PostDiscoveryFilter) { | ||
} | this.postDiscoveryFilters.add((PostDiscoveryFilter) filter); | ||
|
} | ||
public DiscoveryRequestBuilder filterBy(PostDiscoveryFilter... filters) { | else if (filter instanceof DiscoveryFilter<?>) { | ||
if (filters != null) { | this.discoveryFilters.add((DiscoveryFilter<?>) filter); | ||
this.postFilters.addAll(Arrays.asList(filters)); | |||
} | } | ||
return this; | |||
} | } | ||
|
|
||
public DiscoveryRequest build() { | public DiscoveryRequest build() { | ||
DiscoveryRequest discoveryRequest = new DiscoveryRequest(); | DiscoveryRequest discoveryRequest = new DiscoveryRequest(); | ||
discoveryRequest.addSelectors(this.selectors); | discoveryRequest.addSelectors(this.selectors); | ||
discoveryRequest.addEngineIdFilters(this.engineIdFilters); | discoveryRequest.addEngineIdFilters(this.engineIdFilters); | ||
discoveryRequest.addFilters(this.filters); | discoveryRequest.addFilters(this.discoveryFilters); | ||
discoveryRequest.addPostFilters(this.postFilters); | discoveryRequest.addPostFilters(this.postDiscoveryFilters); | ||
return discoveryRequest; | return discoveryRequest; | ||
} | } | ||
|
|||
} | } |
I think the three methods were better than this "generic" one. No need for
instanceof
and safer (someone might just implementGenericFilter
and callfilter
with it).