Skip to content

Commit

Permalink
Polishing
Browse files Browse the repository at this point in the history
  • Loading branch information
sbrannen committed May 14, 2016
1 parent 7a29aa9 commit 08d0707
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 25 deletions.
Expand Up @@ -21,7 +21,9 @@
*/ */
@API(Experimental) @API(Experimental)
public interface ConfigurationParameters { public interface ConfigurationParameters {

Optional<String> get(String key); Optional<String> get(String key);


int getSize(); int getSize();

} }
Expand Up @@ -19,7 +19,8 @@


/** /**
* A {@code PostDiscoveryFilter} filters particular tests after test discovery. * A {@code PostDiscoveryFilter} filters particular tests after test discovery.
* These filters must not be applied by the {@link TestEngine} during test *
* <p>These filters must not be applied by a {@link TestEngine} during test
* discovery. * discovery.
* *
* @since 5.0 * @since 5.0
Expand Down
Expand Up @@ -22,12 +22,11 @@
import org.junit.gen5.engine.EngineDiscoveryRequest; import org.junit.gen5.engine.EngineDiscoveryRequest;


/** /**
* This class extends the {@link EngineDiscoveryRequest} * {@code TestDiscoveryRequest} is an extension of {@link EngineDiscoveryRequest}
* by providing access to filters which are applied by the * that provides access to filters which are applied by the {@link Launcher} itself.
* {@link Launcher} itself
* *
* <p>Moreover, the add*-methods can be used by external clients * <p>Moreover, the {@code add*()} methods can be used by external clients that
* that do not want to use the * do not want to use the
* {@link org.junit.gen5.launcher.main.TestDiscoveryRequestBuilder}. * {@link org.junit.gen5.launcher.main.TestDiscoveryRequestBuilder}.
* *
* @since 5.0 * @since 5.0
Expand All @@ -51,7 +50,7 @@ public interface TestDiscoveryRequest extends EngineDiscoveryRequest {


void addPostFilters(Collection<PostDiscoveryFilter> postDiscoveryFilters); void addPostFilters(Collection<PostDiscoveryFilter> postDiscoveryFilters);


void addConfigurationParameters(Map<String, String> launchParameters); void addConfigurationParameters(Map<String, String> configurationParameters);


List<EngineIdFilter> getEngineIdFilters(); List<EngineIdFilter> getEngineIdFilters();


Expand Down
Expand Up @@ -27,21 +27,21 @@
import org.junit.gen5.launcher.TestDiscoveryRequest; import org.junit.gen5.launcher.TestDiscoveryRequest;


/** /**
* The {@code DiscoveryRequest} represents the configuration for the test * {@code DiscoveryRequest} represents the configuration for test
* discovery and execution. It is passed to every active {@link TestEngine} * discovery and execution. It is passed to every active {@link TestEngine}
* and should be used to lookup tests for the given configuration. * and should be used to look up tests for the given configuration.
* *
* <p>A {@code DiscoveryRequest} contains different configuration options. * <p>A {@code DiscoveryRequest} contains different configuration options.
* *
* <ul> * <ul>
* <li>{@link DiscoverySelector}: A selector defines location(s) a * <li>{@link DiscoverySelector}: A selector defines where a {@code TestEngine}
* {@link TestEngine} should lookup tests at</li> * should look up tests</li>
* <li>{@link EngineIdFilter}: A special filter that is applied before an * <li>{@link EngineIdFilter}: A special filter that is applied before each
* {@link TestEngine} is executed</li> * {@code TestEngine} is executed</li>
* <li>{@link DiscoveryFilter}: A filter that should be applied by the * <li>{@link DiscoveryFilter}: A filter that should be applied by
* {@link TestEngine} during test discovery.</li> * {@code TestEngines} during test discovery</li>
* <li>{@link PostDiscoveryFilter}: A filter that will be applied after * <li>{@link PostDiscoveryFilter}: A filter that will be applied by the
* test discovery.</li> * launcher after {@code TestEngines} have performed test discovery</li>
* </ul> * </ul>
* *
* @since 5.0 * @since 5.0
Expand All @@ -58,13 +58,13 @@ final class DiscoveryRequest implements TestDiscoveryRequest {
// Filter based on the engine id // Filter based on the engine id
private final List<EngineIdFilter> engineIdFilters = new LinkedList<>(); private final List<EngineIdFilter> engineIdFilters = new LinkedList<>();


// Discovery filters are handed through to all test engines to be applied during discovery // Discovery filters are handed through to all engines to be applied during discovery.
private final List<DiscoveryFilter<?>> discoveryFilters = new LinkedList<>(); private final List<DiscoveryFilter<?>> discoveryFilters = new LinkedList<>();


// Descriptor Filters are evaluated by the launcher itself after engines have done their discovery. // Descriptor filters are applied by the launcher itself after engines have performed discovery.
private final List<PostDiscoveryFilter> postDiscoveryFilters = new LinkedList<>(); private final List<PostDiscoveryFilter> postDiscoveryFilters = new LinkedList<>();


// Additional Configuration Parameters can be used to provide configuration, e.g. for extensions // Configuration parameters can be used to provide custom configuration to engines, e.g. for extensions
private final LauncherConfigurationParameters configurationParameters = new LauncherConfigurationParameters(); private final LauncherConfigurationParameters configurationParameters = new LauncherConfigurationParameters();


@Override @Override
Expand Down Expand Up @@ -141,4 +141,5 @@ public void addConfigurationParameters(Map<String, String> configurationParamete
public ConfigurationParameters getConfigurationParameters() { public ConfigurationParameters getConfigurationParameters() {
return this.configurationParameters; return this.configurationParameters;
} }

} }
Expand Up @@ -24,6 +24,7 @@
*/ */
@API(Experimental) @API(Experimental)
class LauncherConfigurationParameters implements ConfigurationParameters { class LauncherConfigurationParameters implements ConfigurationParameters {

private final Map<String, String> configurationParameters = new HashMap<>(); private final Map<String, String> configurationParameters = new HashMap<>();


@Override @Override
Expand All @@ -33,10 +34,11 @@ public Optional<String> get(String key) {


@Override @Override
public int getSize() { public int getSize() {
return configurationParameters.size(); return this.configurationParameters.size();
} }


void addAll(Map<String, String> configurationParameters) { void addAll(Map<String, String> configurationParameters) {
this.configurationParameters.putAll(configurationParameters); this.configurationParameters.putAll(configurationParameters);
} }

} }
Expand Up @@ -20,6 +20,7 @@


import org.junit.gen5.commons.meta.API; import org.junit.gen5.commons.meta.API;
import org.junit.gen5.commons.util.PreconditionViolationException; import org.junit.gen5.commons.util.PreconditionViolationException;
import org.junit.gen5.commons.util.Preconditions;
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.Filter; import org.junit.gen5.engine.Filter;
Expand All @@ -28,13 +29,13 @@
import org.junit.gen5.launcher.TestDiscoveryRequest; import org.junit.gen5.launcher.TestDiscoveryRequest;


/** /**
* The {@code DiscoveryRequestBuilder} provides a light-weight DSL for * The {@code TestDiscoveryRequestBuilder} provides a light-weight DSL for
* generating a {@link TestDiscoveryRequest}. * generating a {@link TestDiscoveryRequest}.
* *
* <h4>Example</h4> * <h4>Example</h4>
* *
* <pre style="code"> * <pre style="code">
* DiscoveryRequestBuilder.request() * TestDiscoveryRequestBuilder.request()
* .select( * .select(
* forPackageName("org.junit.gen5"), * forPackageName("org.junit.gen5"),
* forPackageName("com.junit.samples"), * forPackageName("com.junit.samples"),
Expand Down Expand Up @@ -95,12 +96,15 @@ public TestDiscoveryRequestBuilder filter(Filter<?>... filters) {
} }


public TestDiscoveryRequestBuilder configurationParameter(String key, String value) { public TestDiscoveryRequestBuilder configurationParameter(String key, String value) {
configurationParameters.put(key, value); Preconditions.notBlank(key, "key must not be null or empty");
this.configurationParameters.put(key, value);
return this; return this;
} }


public TestDiscoveryRequestBuilder configurationParameters(Map<String, String> configurationParameters) { public TestDiscoveryRequestBuilder configurationParameters(Map<String, String> configurationParameters) {
configurationParameters.forEach(this::configurationParameter); if (configurationParameters != null) {
configurationParameters.forEach(this::configurationParameter);
}
return this; return this;
} }


Expand Down

0 comments on commit 08d0707

Please sign in to comment.