diff --git a/junit-engine-api/src/main/java/org/junit/gen5/engine/DiscoverySelector.java b/junit-engine-api/src/main/java/org/junit/gen5/engine/DiscoverySelector.java
index 9c9dc218bb9..2f682640ea3 100644
--- a/junit-engine-api/src/main/java/org/junit/gen5/engine/DiscoverySelector.java
+++ b/junit-engine-api/src/main/java/org/junit/gen5/engine/DiscoverySelector.java
@@ -17,6 +17,5 @@
* @see EngineDiscoveryRequest
*/
public interface DiscoverySelector {
-
void accept(DiscoverySelectorVisitor visitor);
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/DiscoveryRequestBuilder.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/DiscoveryRequestBuilder.java
index 4989e260789..3a5318c96cb 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/DiscoveryRequestBuilder.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/DiscoveryRequestBuilder.java
@@ -16,6 +16,7 @@
import org.junit.gen5.engine.DiscoveryFilter;
import org.junit.gen5.engine.DiscoverySelector;
+import org.junit.gen5.engine.GenericFilter;
/**
* The {@code DiscoveryRequestBuilder} provides a light-weight DSL for
@@ -26,31 +27,31 @@
*
* DiscoveryRequestBuilder.request()
* .select(
- * packageName("org.junit.gen5"),
- * packageName("com.junit.samples"),
- * testClass(TestDescriptorTests.class),
- * testClassByName("com.junit.samples.SampleTestCase"),
- * testMethod("com.junit.samples.SampleTestCase", "test2"),
- * testMethod(TestDescriptorTests.class, "test1"),
- * testMethod(TestDescriptorTests.class, "test1"),
- * testMethod(TestDescriptorTests.class, "testWithParams", ParameterType.class),
- * testMethod(TestDescriptorTests.class, testMethod),
- * path("/my/local/path1"),
- * path("/my/local/path2"),
- * uniqueId("unique-id-1"),
- * uniqueId("unique-id-2")
+ * forPackageName("org.junit.gen5"),
+ * forPackageName("com.junit.samples"),
+ * forClass(TestDescriptorTests.class),
+ * forClassName("com.junit.samples.SampleTestCase"),
+ * forTestMethod("com.junit.samples.SampleTestCase", "test2"),
+ * forTestMethod(TestDescriptorTests.class, "test1"),
+ * forTestMethod(TestDescriptorTests.class, "test1"),
+ * forTestMethod(TestDescriptorTests.class, "testWithParams", ParameterType.class),
+ * forTestMethod(TestDescriptorTests.class, testMethod),
+ * forPath("/my/local/path1"),
+ * forPath("/my/local/path2"),
+ * forUniqueId("unique-id-1"),
+ * forUniqueId("unique-id-2")
* )
- * .filterBy(engineIds("junit5"))
- * .filterBy(classNamePattern("org.junit.gen5.tests"), classNamePattern("org.junit.sample"))
- * .filterBy(tagsIncluded("Fast"), tagsExcluded("Slow"))
+ * .filter(byEngineIds("junit5"))
+ * .filter(byNamePattern("org.junit.gen5.tests"), byNamePattern("org.junit.sample"))
+ * .filter(includeTags("Fast"), excludeTags("Slow"))
* ).build();
*
*/
public final class DiscoveryRequestBuilder {
private List selectors = new LinkedList<>();
private List engineIdFilters = new LinkedList<>();
- private List> filters = new LinkedList<>();
- private List postFilters = new LinkedList<>();
+ private List> discoveryFilters = new LinkedList<>();
+ private List postDiscoveryFilters = new LinkedList<>();
public static DiscoveryRequestBuilder request() {
return new DiscoveryRequestBuilder();
@@ -70,34 +71,31 @@ public DiscoveryRequestBuilder select(List elements) {
return this;
}
- public DiscoveryRequestBuilder filterBy(EngineIdFilter... filters) {
+ public DiscoveryRequestBuilder filter(GenericFilter>... filters) {
if (filters != null) {
- this.engineIdFilters.addAll(Arrays.asList(filters));
+ Arrays.stream(filters).forEach(this::storeFilter);
}
return this;
}
- public DiscoveryRequestBuilder filterBy(DiscoveryFilter>... filters) {
- if (filters != null) {
- this.filters.addAll(Arrays.asList(filters));
+ private void storeFilter(GenericFilter> filter) {
+ if (filter instanceof EngineIdFilter) {
+ this.engineIdFilters.add((EngineIdFilter) filter);
}
- return this;
- }
-
- public DiscoveryRequestBuilder filterBy(PostDiscoveryFilter... filters) {
- if (filters != null) {
- this.postFilters.addAll(Arrays.asList(filters));
+ else if (filter instanceof PostDiscoveryFilter) {
+ this.postDiscoveryFilters.add((PostDiscoveryFilter) filter);
+ }
+ else if (filter instanceof DiscoveryFilter>) {
+ this.discoveryFilters.add((DiscoveryFilter>) filter);
}
- return this;
}
public DiscoveryRequest build() {
DiscoveryRequest discoveryRequest = new DiscoveryRequest();
discoveryRequest.addSelectors(this.selectors);
discoveryRequest.addEngineIdFilters(this.engineIdFilters);
- discoveryRequest.addFilters(this.filters);
- discoveryRequest.addPostFilters(this.postFilters);
+ discoveryRequest.addFilters(this.discoveryFilters);
+ discoveryRequest.addPostFilters(this.postDiscoveryFilters);
return discoveryRequest;
}
-
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/Launcher.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/Launcher.java
index bcb0def601f..8650dacfb14 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/Launcher.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/Launcher.java
@@ -13,12 +13,7 @@
import java.util.Map;
import java.util.logging.Logger;
-import org.junit.gen5.engine.EngineExecutionListener;
-import org.junit.gen5.engine.ExecutionRequest;
-import org.junit.gen5.engine.FilterResult;
-import org.junit.gen5.engine.TestDescriptor;
-import org.junit.gen5.engine.TestEngine;
-import org.junit.gen5.engine.TestExecutionResult;
+import org.junit.gen5.engine.*;
/**
* Facade for discovering and executing tests using
@@ -50,20 +45,24 @@
* @see TestExecutionListener
*/
public class Launcher {
-
private static final Logger LOG = Logger.getLogger(Launcher.class.getName());
- private final TestExecutionListenerRegistry listenerRegistry = new TestExecutionListenerRegistry();
-
private final TestEngineRegistry testEngineRegistry;
+ private final TestExecutionListenerRegistry testExecutionListenerRegistry;
public Launcher() {
- this(new ServiceLoaderTestEngineRegistry());
+ this(new ServiceLoaderTestEngineRegistry(), new TestExecutionListenerRegistry());
}
- // for tests only
+ // For tests only
Launcher(TestEngineRegistry testEngineRegistry) {
+ this(testEngineRegistry, new TestExecutionListenerRegistry());
+ }
+
+ // For tests only
+ Launcher(TestEngineRegistry testEngineRegistry, TestExecutionListenerRegistry testExecutionListenerRegistry) {
this.testEngineRegistry = testEngineRegistry;
+ this.testExecutionListenerRegistry = testExecutionListenerRegistry;
}
/**
@@ -72,7 +71,7 @@ public Launcher() {
* @param listeners the listeners to be notified of test execution events
*/
public void registerTestExecutionListeners(TestExecutionListener... listeners) {
- listenerRegistry.registerListener(listeners);
+ testExecutionListenerRegistry.registerListener(listeners);
}
/**
@@ -123,7 +122,7 @@ private Root discoverRoot(DiscoveryRequest discoveryRequest, String phase) {
private void execute(Root root) {
TestPlan testPlan = TestPlan.from(root);
- TestExecutionListener testExecutionListener = listenerRegistry.getCompositeTestExecutionListener();
+ TestExecutionListener testExecutionListener = testExecutionListenerRegistry.getCompositeTestExecutionListener();
testExecutionListener.testPlanExecutionStarted(testPlan);
ExecutionListenerAdapter engineExecutionListener = new ExecutionListenerAdapter(testPlan,
testExecutionListener);
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/Root.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/Root.java
index 7568a077fb4..a15f6b364a1 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/Root.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/Root.java
@@ -22,17 +22,20 @@
* @since 5.0
*/
final class Root {
-
private final Map testEngines = new LinkedHashMap<>();
- Iterable getTestEngines() {
- return testEngines.keySet();
- }
-
public void add(TestEngine engine, TestDescriptor testDescriptor) {
testEngines.put(engine, testDescriptor);
}
+ public Collection getAllTestDescriptors() {
+ return testEngines.values();
+ }
+
+ Iterable getTestEngines() {
+ return testEngines.keySet();
+ }
+
TestDescriptor getTestDescriptorFor(TestEngine testEngine) {
return testEngines.get(testEngine);
}
@@ -47,6 +50,10 @@ void applyFilters(DiscoveryRequest discoveryRequest) {
accept(filteringVisitor);
}
+ void accept(Visitor visitor) {
+ testEngines.values().stream().forEach(testEngine -> testEngine.accept(visitor));
+ }
+
void prune() {
Visitor pruningVisitor = (descriptor, remove) -> {
if (descriptor.isRoot() || descriptor.hasTests())
@@ -56,12 +63,4 @@ void prune() {
accept(pruningVisitor);
testEngines.values().removeIf(testEngine -> testEngine.getChildren().isEmpty());
}
-
- void accept(Visitor visitor) {
- testEngines.values().stream().forEach(testEngine -> testEngine.accept(visitor));
- }
-
- public Collection getAllTestDescriptors() {
- return testEngines.values();
- }
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/TagFilter.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/TagFilter.java
index b2d4e6e7857..14e4e2e2c59 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/TagFilter.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/TagFilter.java
@@ -18,7 +18,6 @@
import org.junit.gen5.engine.TestTag;
public class TagFilter {
-
public static PostDiscoveryFilter includeTags(String... tagNames) {
return includeTags(asList(tagNames));
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestEngineRegistry.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestEngineRegistry.java
index 0dad3dad2c5..e516d5baf77 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestEngineRegistry.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestEngineRegistry.java
@@ -16,7 +16,5 @@
* @since 5.0
*/
interface TestEngineRegistry {
-
Iterable getTestEngines();
-
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestExecutionListener.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestExecutionListener.java
index 001c8a32351..ace0943bd55 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestExecutionListener.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestExecutionListener.java
@@ -42,7 +42,6 @@
* @see TestIdentifier
*/
public interface TestExecutionListener {
-
/**
* Called when additional test reporting data has been published for
* the supplied {@link TestIdentifier}. Can be called at all times.
@@ -146,5 +145,4 @@ default void executionStarted(TestIdentifier testIdentifier) {
*/
default void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) {
}
-
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestExecutionListenerRegistry.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestExecutionListenerRegistry.java
index dce048b4d9f..54ee9f751ff 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestExecutionListenerRegistry.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestExecutionListenerRegistry.java
@@ -20,7 +20,6 @@
* @since 5.0
*/
class TestExecutionListenerRegistry {
-
private final List testExecutionListeners = new LinkedList<>();
void registerListener(TestExecutionListener... listeners) {
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestId.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestId.java
index efa3fb9b097..ce17a90c508 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestId.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestId.java
@@ -21,7 +21,6 @@
* @since 5.0
*/
public final class TestId implements Serializable {
-
private static final long serialVersionUID = 1L;
private final String uniqueId;
@@ -48,5 +47,4 @@ public int hashCode() {
public String toString() {
return this.uniqueId;
}
-
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestIdentifier.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestIdentifier.java
index cd60ed8fe1a..439a9ff898c 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestIdentifier.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestIdentifier.java
@@ -30,17 +30,14 @@
* @see TestPlan
*/
public final class TestIdentifier implements Serializable {
-
private static final long serialVersionUID = 1L;
private final TestId uniqueId;
private final String displayName;
private final TestSource source;
private final Set tags;
-
private final boolean test;
private final boolean container;
-
private final TestId parentId;
static TestIdentifier from(TestDescriptor testDescriptor) {
@@ -149,5 +146,4 @@ public int hashCode() {
public String toString() {
return getDisplayName() + " [" + uniqueId + "]";
}
-
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestPlan.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestPlan.java
index d7ae2b82e26..aef1c0b5815 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/TestPlan.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/TestPlan.java
@@ -46,7 +46,6 @@
* @see TestExecutionListener
*/
public final class TestPlan {
-
private final Set roots = new LinkedHashSet<>();
private final Map> children = new LinkedHashMap<>();
private final Map allIdentifiers = new LinkedHashMap<>();
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/LoggingListener.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/LoggingListener.java
index 75be0e1a180..952e3739eff 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/LoggingListener.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/LoggingListener.java
@@ -31,7 +31,6 @@
* @see LoggingListener#LoggingListener(BiConsumer)
*/
public class LoggingListener implements TestExecutionListener {
-
/**
* Create a {@code LoggingListener} which delegates to a
* {@link java.util.logging.Logger} using a log level of
@@ -107,5 +106,4 @@ private void log(String message, Object... args) {
private void logWithThrowable(String message, Throwable t, Object... args) {
logger.accept(t, () -> String.format(message, args));
}
-
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/SummaryGeneratingListener.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/SummaryGeneratingListener.java
index 4064eac9f10..138ac3d0440 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/SummaryGeneratingListener.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/SummaryGeneratingListener.java
@@ -30,9 +30,7 @@
* @see #getSummary()
*/
public class SummaryGeneratingListener implements TestExecutionListener {
-
private TestPlan testPlan;
-
private TestExecutionSummary summary;
/**
@@ -92,5 +90,4 @@ else if (testExecutionResult.getStatus() == FAILED) {
}
testExecutionResult.getThrowable().ifPresent(throwable -> summary.addFailure(testIdentifier, throwable));
}
-
}
diff --git a/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/TestExecutionSummary.java b/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/TestExecutionSummary.java
index 1e58a6c5400..23ccc98e986 100644
--- a/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/TestExecutionSummary.java
+++ b/junit-launcher/src/main/java/org/junit/gen5/launcher/listeners/TestExecutionSummary.java
@@ -25,9 +25,6 @@
*/
// TODO Design a real interface for TestExecutionSummary and make it threadsafe.
public class TestExecutionSummary {
-
- private final TestPlan testPlan;
-
final AtomicLong testsStarted = new AtomicLong();
final AtomicLong testsFound = new AtomicLong();
final AtomicLong testsSkipped = new AtomicLong();
@@ -38,6 +35,7 @@ public class TestExecutionSummary {
long timeStarted;
long timeFinished;
+ private final TestPlan testPlan;
private String message;
private List failures = new ArrayList<>();
@@ -108,7 +106,6 @@ public void addFailure(TestIdentifier testIdentifier, Throwable throwable) {
}
static class Failure {
-
private final TestIdentifier testIdentifier;
private final Throwable exception;
@@ -124,7 +121,5 @@ public TestIdentifier getTestIdentifier() {
public Throwable getException() {
return exception;
}
-
}
-
}
diff --git a/junit-tests/src/test/java/org/junit/gen5/engine/junit4/JUnit4TestEngineDiscoveryTests.java b/junit-tests/src/test/java/org/junit/gen5/engine/junit4/JUnit4TestEngineDiscoveryTests.java
index 9be844624dd..ed12a35ea88 100644
--- a/junit-tests/src/test/java/org/junit/gen5/engine/junit4/JUnit4TestEngineDiscoveryTests.java
+++ b/junit-tests/src/test/java/org/junit/gen5/engine/junit4/JUnit4TestEngineDiscoveryTests.java
@@ -213,7 +213,7 @@ void resolvesClasspathSelector() throws Exception {
void resolvesApplyingClassFilters() throws Exception {
File root = getClasspathRoot(PlainJUnit4TestCaseWithSingleTestWhichFails.class);
- DiscoveryRequest discoveryRequest = request().select(forPaths(singleton(root))).filterBy(
+ DiscoveryRequest discoveryRequest = request().select(forPaths(singleton(root))).filter(
ClassFilter.byNamePattern(".*JUnit4.*"), ClassFilter.byNamePattern(".*Plain.*")).build();
TestDescriptor engineDescriptor = engine.discoverTests(discoveryRequest);
@@ -514,7 +514,7 @@ void doesNotResolveMethodOfClassNotAcceptedByClassFilter() throws Exception {
// @formatter:off
DiscoveryRequest request = request()
.select(MethodSelector.forMethod(testClass, testClass.getMethod("failingTest")))
- .filterBy(ClassFilter.byNamePattern("Foo"))
+ .filter(ClassFilter.byNamePattern("Foo"))
.build();
// @formatter:on
diff --git a/junit-tests/src/test/java/org/junit/gen5/launcher/LauncherFactory.java b/junit-tests/src/test/java/org/junit/gen5/launcher/LauncherFactory.java
index 43519b6f8f3..97541755717 100644
--- a/junit-tests/src/test/java/org/junit/gen5/launcher/LauncherFactory.java
+++ b/junit-tests/src/test/java/org/junit/gen5/launcher/LauncherFactory.java
@@ -15,7 +15,6 @@
import org.junit.gen5.engine.TestEngine;
public class LauncherFactory {
-
public static Launcher createLauncher(TestEngine... engines) {
return createLauncher(asList(engines));
}
@@ -23,5 +22,4 @@ public static Launcher createLauncher(TestEngine... engines) {
public static Launcher createLauncher(Iterable engines) {
return new Launcher(() -> engines);
}
-
}
diff --git a/junit-tests/src/test/java/org/junit/gen5/launcher/LauncherTests.java b/junit-tests/src/test/java/org/junit/gen5/launcher/LauncherTests.java
index b40ec99019c..ab5403937da 100644
--- a/junit-tests/src/test/java/org/junit/gen5/launcher/LauncherTests.java
+++ b/junit-tests/src/test/java/org/junit/gen5/launcher/LauncherTests.java
@@ -82,7 +82,7 @@ public void launcherWillNotCallEnginesThatAreFilterByAnEngineIdFilter() {
Launcher launcher = createLauncher(firstEngine, secondEngine);
TestPlan testPlan = launcher.discover(
- request().select(forUniqueId(test1.getUniqueId()), forUniqueId(test2.getUniqueId())).filterBy(
+ request().select(forUniqueId(test1.getUniqueId()), forUniqueId(test2.getUniqueId())).filter(
byEngineId("first")).build());
assertThat(testPlan.getRoots()).hasSize(1);