diff --git a/junit-platform-console/src/main/java/org/junit/platform/console/tasks/DiscoveryRequestCreator.java b/junit-platform-console/src/main/java/org/junit/platform/console/tasks/DiscoveryRequestCreator.java index 3f35e778c1bf..8519320857d1 100644 --- a/junit-platform-console/src/main/java/org/junit/platform/console/tasks/DiscoveryRequestCreator.java +++ b/junit-platform-console/src/main/java/org/junit/platform/console/tasks/DiscoveryRequestCreator.java @@ -54,7 +54,8 @@ LauncherDiscoveryRequest toDiscoveryRequest(TestDiscoveryOptions options) { requestBuilder.selectors(selectors); addFilters(requestBuilder, options, selectors); requestBuilder.configurationParameters(options.getConfigurationParameters()); - requestBuilder.configurationParametersResources(options.getConfigurationParametersResources()); + requestBuilder.configurationParametersResources( + options.getConfigurationParametersResources().toArray(new String[0])); return requestBuilder.build(); } diff --git a/junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/LauncherDiscoveryRequestBuilder.java b/junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/LauncherDiscoveryRequestBuilder.java index 7c6368e4c84b..fa323eb37278 100644 --- a/junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/LauncherDiscoveryRequestBuilder.java +++ b/junit-platform-launcher/src/main/java/org/junit/platform/launcher/core/LauncherDiscoveryRequestBuilder.java @@ -15,6 +15,7 @@ import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -199,27 +200,15 @@ public LauncherDiscoveryRequestBuilder configurationParameters(Map propertiesFiles) { - Preconditions.notNull(propertiesFiles, "properties files must not be null"); - propertiesFiles.forEach(this::configurationParametersResource); + public LauncherDiscoveryRequestBuilder configurationParametersResources(String... paths) { + Preconditions.notNull(paths, "property file paths must not be null"); + Collections.addAll(configurationParametersResources, paths); return this; } diff --git a/junit-platform-suite-api/src/main/java/org/junit/platform/suite/api/ConfigurationParametersResource.java b/junit-platform-suite-api/src/main/java/org/junit/platform/suite/api/ConfigurationParametersResource.java index 500f3ff0119f..381f776aff17 100644 --- a/junit-platform-suite-api/src/main/java/org/junit/platform/suite/api/ConfigurationParametersResource.java +++ b/junit-platform-suite-api/src/main/java/org/junit/platform/suite/api/ConfigurationParametersResource.java @@ -32,13 +32,12 @@ * @see Suite * @see org.junit.platform.runner.JUnitPlatform * @see org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder#configurationParameter(String, String) + * @see org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder#configurationParametersResource(String) */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Inherited @Documented -// TODO: Before PR merge, change to STABLE/MAINTAINED -// TODO: Is version 1.11 correct? @API(status = EXPERIMENTAL, since = "1.11") @Repeatable(ConfigurationParametersResources.class) public @interface ConfigurationParametersResource { @@ -46,6 +45,6 @@ /** * The classpath location for the desired properties file; never {@code null} or blank. */ - String resource(); + String value(); } diff --git a/junit-platform-suite-api/src/main/java/org/junit/platform/suite/api/ConfigurationParametersResources.java b/junit-platform-suite-api/src/main/java/org/junit/platform/suite/api/ConfigurationParametersResources.java index 834ed7edb20b..ff5ba5343d58 100644 --- a/junit-platform-suite-api/src/main/java/org/junit/platform/suite/api/ConfigurationParametersResources.java +++ b/junit-platform-suite-api/src/main/java/org/junit/platform/suite/api/ConfigurationParametersResources.java @@ -36,8 +36,6 @@ @Target(ElementType.TYPE) @Inherited @Documented -// TODO: Before PR merge, change to STABLE/MAINTAINED -// TODO: Is version 1.11 correct? @API(status = EXPERIMENTAL, since = "1.11") public @interface ConfigurationParametersResources { diff --git a/junit-platform-suite-commons/src/main/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilder.java b/junit-platform-suite-commons/src/main/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilder.java index 675f6ee21aeb..fbddeb2488a6 100644 --- a/junit-platform-suite-commons/src/main/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilder.java +++ b/junit-platform-suite-commons/src/main/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilder.java @@ -116,8 +116,8 @@ public SuiteLauncherDiscoveryRequestBuilder configurationParameters(Map suiteClass) { findRepeatableAnnotations(suiteClass, ConfigurationParameter.class) .forEach(configuration -> configurationParameter(configuration.key(), configuration.value())); findRepeatableAnnotations(suiteClass, ConfigurationParametersResource.class) - .forEach(configResource -> configurationParametersResource(configResource.resource())); + .forEach(configResource -> configurationParametersResource(configResource.value())); findAnnotation(suiteClass, DisableParentConfigurationParameters.class) .ifPresent(__ -> enableParentConfigurationParameters = false); findAnnotationValues(suiteClass, ExcludeClassNamePatterns.class, ExcludeClassNamePatterns::value) diff --git a/platform-tests/src/test/java/org/junit/platform/console/tasks/DiscoveryRequestCreatorTests.java b/platform-tests/src/test/java/org/junit/platform/console/tasks/DiscoveryRequestCreatorTests.java index 87b35ef20360..56f33bcda50c 100644 --- a/platform-tests/src/test/java/org/junit/platform/console/tasks/DiscoveryRequestCreatorTests.java +++ b/platform-tests/src/test/java/org/junit/platform/console/tasks/DiscoveryRequestCreatorTests.java @@ -317,6 +317,22 @@ void convertsConfigurationParameters() { assertThat(configurationParameters.getBoolean("baz")).contains(true); } + @Test + @SuppressWarnings("deprecation") + void convertsConfigurationParametersResources() { + options.setScanClasspath(true); + options.setConfigurationParameters(mapOf(entry("foo", "bar"), entry("com.example.prop.first", "baz"))); + options.setConfigurationParametersResources(List.of("config-test.properties")); + + var request = convert(); + var configurationParameters = request.getConfigurationParameters(); + + assertThat(configurationParameters.size()).isEqualTo(2); + assertThat(configurationParameters.get("foo")).contains("bar"); + assertThat(configurationParameters.get("com.example.prop.first")).contains("baz"); + assertThat(configurationParameters.get("com.example.prop.second")).contains("second value"); + } + private LauncherDiscoveryRequest convert() { var creator = new DiscoveryRequestCreator(); return creator.toDiscoveryRequest(options); diff --git a/platform-tests/src/test/java/org/junit/platform/launcher/core/LauncherDiscoveryRequestBuilderTests.java b/platform-tests/src/test/java/org/junit/platform/launcher/core/LauncherDiscoveryRequestBuilderTests.java index b2d6534682b0..8b92a00ae516 100644 --- a/platform-tests/src/test/java/org/junit/platform/launcher/core/LauncherDiscoveryRequestBuilderTests.java +++ b/platform-tests/src/test/java/org/junit/platform/launcher/core/LauncherDiscoveryRequestBuilderTests.java @@ -318,7 +318,7 @@ void multipleConfigurationParametersAddedByMap_areStoredInDiscoveryRequest() { void configurationParametersResource_areStoredInDiscoveryRequest() { // @formatter:off var discoveryRequest = request() - .configurationParametersResource("config-test.properties") + .configurationParametersResources("config-test.properties") .build(); // @formatter:on @@ -332,7 +332,7 @@ void configurationParametersResource_areStoredInDiscoveryRequest() { void configurationParametersResource_explicitConfigParametersOverrideResource() { // @formatter:off var discoveryRequest = request() - .configurationParametersResource("config-test.properties") + .configurationParametersResources("config-test.properties") .configurationParameter("com.example.prop.first", "first value override") .build(); // @formatter:on @@ -346,8 +346,8 @@ void configurationParametersResource_explicitConfigParametersOverrideResource() void configurationParametersResource_lastDeclaredResourceFileWins() { // @formatter:off var discoveryRequest = request() - .configurationParametersResource("config-test.properties") - .configurationParametersResource("config-test-override.properties") + .configurationParametersResources("config-test.properties") + .configurationParametersResources("config-test-override.properties") .build(); // @formatter:on diff --git a/platform-tests/src/test/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilderTests.java b/platform-tests/src/test/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilderTests.java index 56d8108ded42..48c4e2a9683d 100644 --- a/platform-tests/src/test/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilderTests.java +++ b/platform-tests/src/test/java/org/junit/platform/suite/commons/SuiteLauncherDiscoveryRequestBuilderTests.java @@ -53,7 +53,6 @@ import org.junit.platform.launcher.PostDiscoveryFilter; import org.junit.platform.suite.api.ConfigurationParameter; import org.junit.platform.suite.api.ConfigurationParametersResource; -import org.junit.platform.suite.api.ConfigurationParametersResources; import org.junit.platform.suite.api.DisableParentConfigurationParameters; import org.junit.platform.suite.api.ExcludeClassNamePatterns; import org.junit.platform.suite.api.ExcludeEngines; @@ -90,7 +89,7 @@ class Suite { @Test void configurationParametersResource() { - @ConfigurationParametersResource(resource = "config-test.properties") + @ConfigurationParametersResource("config-test.properties") class Suite { } @@ -102,8 +101,8 @@ class Suite { @Test void configurationParametersResources() { - @ConfigurationParametersResources({ @ConfigurationParametersResource(resource = "config-test.properties"), - @ConfigurationParametersResource(resource = "config-test-override.properties") }) + @ConfigurationParametersResource("config-test.properties") + @ConfigurationParametersResource("config-test-override.properties") class Suite { } @@ -117,7 +116,7 @@ class Suite { @Test void configurationParametersResource_explicitParametersTakePrecedence() { - @ConfigurationParametersResource(resource = "config-test.properties") + @ConfigurationParametersResource("config-test.properties") @ConfigurationParameter(key = "com.example.prop.first", value = "first value from explicit parameter") class Suite { }