From 83b3eb665aa35a87cfd8484e0d06cc3b3d0478c7 Mon Sep 17 00:00:00 2001 From: Marc Philipp Date: Fri, 30 Jun 2017 15:33:03 +0200 Subject: [PATCH] Remove TestExtensionContext and ContainerExtensionContext Issue: #901 --- .../src/docs/asciidoc/extensions.adoc | 10 +-- .../docs/asciidoc/release-notes-5.0.0-M5.adoc | 2 + .../java/example/ParameterizedTestDemo.java | 4 +- .../exception/IgnoreIOExceptionExtension.java | 4 +- .../java/example/timing/TimingExtension.java | 8 +-- .../test/java/extensions/ExpectToFail.java | 8 +-- .../api/extension/AfterAllCallback.java | 2 +- .../api/extension/AfterEachCallback.java | 2 +- .../extension/AfterTestExecutionCallback.java | 2 +- .../api/extension/BeforeAllCallback.java | 2 +- .../api/extension/BeforeEachCallback.java | 2 +- .../BeforeTestExecutionCallback.java | 2 +- .../ContainerExecutionCondition.java | 8 +-- .../extension/ContainerExtensionContext.java | 25 -------- .../api/extension/ExtensionContext.java | 2 +- .../api/extension/TestExecutionCondition.java | 8 +-- .../TestExecutionExceptionHandler.java | 6 +- .../api/extension/TestExtensionContext.java | 25 -------- ...TestTemplateInvocationContextProvider.java | 18 +++--- .../descriptor/AbstractExtensionContext.java | 4 -- ...ontext.java => ClassExtensionContext.java} | 11 ++-- .../descriptor/ClassTestDescriptor.java | 29 ++++----- .../descriptor/JupiterEngineDescriptor.java | 4 +- .../JupiterEngineExtensionContext.java | 9 ++- .../descriptor/JupiterTestDescriptor.java | 7 +-- ...ntext.java => MethodExtensionContext.java} | 6 +- .../descriptor/MethodTestDescriptor.java | 30 ++++----- .../descriptor/TestFactoryTestDescriptor.java | 8 +-- ...java => TestTemplateExtensionContext.java} | 11 ++-- .../TestTemplateTestDescriptor.java | 20 +++--- .../execution/AfterEachMethodAdapter.java | 4 +- .../execution/BeforeEachMethodAdapter.java | 4 +- .../engine/execution/ConditionEvaluator.java | 23 +++---- .../engine/extension/DisabledCondition.java | 11 ++-- .../extension/RepeatedTestExtension.java | 7 +-- .../api/extension/KitchenSinkExtension.java | 23 ++++--- .../org/junit/jupiter/engine/FullLogging.java | 6 +- .../engine/TestInstanceLifecycleTests.java | 17 +++-- .../engine/TestTemplateInvocationTests.java | 62 ++++++++----------- .../TestFactoryTestDescriptorTests.java | 12 ++-- .../execution/ExtensionContextTests.java | 51 +++++++-------- .../JUnit5EngineExecutionContextTests.java | 11 ++-- .../extension/BeforeAndAfterAllTests.java | 20 +++--- .../extension/BeforeAndAfterEachTests.java | 18 +++--- ...oreAndAfterTestExecutionCallbackTests.java | 18 +++--- .../ExtensionContextExecutionTests.java | 18 +++--- .../extension/ServiceLoaderExtension.java | 4 +- .../TestExecutionExceptionHandlerTests.java | 10 +-- .../sub/SystemPropertyCondition.java | 6 +- .../rules/AbstractTestRuleSupport.java | 10 +-- .../rules/ExpectedExceptionSupport.java | 8 +-- .../rules/ExternalResourceSupport.java | 6 +- .../rules/VerifierSupport.java | 4 +- .../params/ParameterizedTestExtension.java | 10 ++- .../params/provider/ArgumentsProvider.java | 4 +- .../params/provider/CsvArgumentsProvider.java | 4 +- .../provider/CsvFileArgumentsProvider.java | 6 +- .../provider/EnumArgumentsProvider.java | 4 +- .../provider/MethodArgumentsProvider.java | 4 +- .../provider/ValueArgumentsProvider.java | 4 +- .../ParameterizedTestExtensionTests.java | 15 +++-- .../ParameterizedTestIntegrationTests.java | 4 +- .../CsvFileArgumentsProviderTests.java | 4 +- .../MethodArgumentsProviderTests.java | 4 +- .../jupiter/extensions/TempDirectory.java | 3 +- 65 files changed, 308 insertions(+), 390 deletions(-) delete mode 100644 junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ContainerExtensionContext.java delete mode 100644 junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExtensionContext.java rename junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/{ClassBasedContainerExtensionContext.java => ClassExtensionContext.java} (80%) rename junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/{MethodBasedTestExtensionContext.java => MethodExtensionContext.java} (84%) rename junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/{TestTemplateContainerExtensionContext.java => TestTemplateExtensionContext.java} (80%) diff --git a/documentation/src/docs/asciidoc/extensions.adoc b/documentation/src/docs/asciidoc/extensions.adoc index d6c64717c08..abba1dbc641 100644 --- a/documentation/src/docs/asciidoc/extensions.adoc +++ b/documentation/src/docs/asciidoc/extensions.adoc @@ -116,9 +116,9 @@ APIs for programmatic, _conditional test execution_. A `ContainerExecutionCondition` is _evaluated_ to determine if all tests in a given container (e.g., a test class) should be executed based on the supplied -`ContainerExtensionContext`. Similarly, a `TestExecutionCondition` is _evaluated_ to +`ExtensionContext`. Similarly, a `TestExecutionCondition` is _evaluated_ to determine if a given test method should be executed based on the supplied -`TestExtensionContext`. +`ExtensionContext`. When multiple `ContainerExecutionCondition` or `TestExecutionCondition` extensions are registered, a container or test, respectively, is disabled as soon as one of the conditions returns _disabled_. @@ -270,9 +270,9 @@ you keep the state from one invocation of an extension to the next? The `ExtensionContext` API provides a `Store` exactly for this purpose. Extensions may put values into a store for later retrieval. See the `<>` for an example of using the -`Store` with a method-level scope. It is important to remember that values stored in a -`TestExtensionContext` during test execution will not be available in the surrounding -`ContainerExtensionContext`. Since `ContainerExtensionContexts` may be nested, the scope of inner +`Store` with a method-level scope. It is important to remember that values stored in an +`ExtensionContext` during test execution will not be available in the surrounding +`ExtensionContext`. Since `ExtensionContexts` may be nested, the scope of inner contexts may also be limited. Consult the corresponding Javadoc for details on the methods available for storing and retrieving values via the `{ExtensionContext_Store}`. diff --git a/documentation/src/docs/asciidoc/release-notes-5.0.0-M5.adoc b/documentation/src/docs/asciidoc/release-notes-5.0.0-M5.adoc index 8ab7913c260..307e64fdd99 100644 --- a/documentation/src/docs/asciidoc/release-notes-5.0.0-M5.adoc +++ b/documentation/src/docs/asciidoc/release-notes-5.0.0-M5.adoc @@ -123,6 +123,8 @@ is placed on the Java 9 module path. `Object getTestInstance()` to `Optional getTestInstance()`. * The `getTestException()` method in the `TestExtensionContext` API has been moved to the `ExtensionContext` API. +* The `TestExtensionContext` and `ContainerExtensionContext` interfaces have been removed, + and all `Extension` interfaces have been changed to use `ExtensionContext` instead. [[release-notes-5.0.0-m5-migration-extension-api]] .Extension API Migration diff --git a/documentation/src/test/java/example/ParameterizedTestDemo.java b/documentation/src/test/java/example/ParameterizedTestDemo.java index 45f1925290d..43142413a91 100644 --- a/documentation/src/test/java/example/ParameterizedTestDemo.java +++ b/documentation/src/test/java/example/ParameterizedTestDemo.java @@ -29,7 +29,7 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.TestInfo; import org.junit.jupiter.api.TestReporter; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.converter.ConvertWith; import org.junit.jupiter.params.converter.JavaTimeConversionPattern; @@ -161,7 +161,7 @@ void testWithArgumentsSource(String argument) { static class MyArgumentsProvider implements ArgumentsProvider { @Override - public Stream provideArguments(ContainerExtensionContext context) { + public Stream provideArguments(ExtensionContext context) { return Stream.of("foo", "bar").map(Arguments::of); } } diff --git a/documentation/src/test/java/example/exception/IgnoreIOExceptionExtension.java b/documentation/src/test/java/example/exception/IgnoreIOExceptionExtension.java index 782228e1455..dbede92de15 100644 --- a/documentation/src/test/java/example/exception/IgnoreIOExceptionExtension.java +++ b/documentation/src/test/java/example/exception/IgnoreIOExceptionExtension.java @@ -12,15 +12,15 @@ import java.io.IOException; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestExecutionExceptionHandler; -import org.junit.jupiter.api.extension.TestExtensionContext; // @formatter:off // tag::user_guide[] public class IgnoreIOExceptionExtension implements TestExecutionExceptionHandler { @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { if (throwable instanceof IOException) { diff --git a/documentation/src/test/java/example/timing/TimingExtension.java b/documentation/src/test/java/example/timing/TimingExtension.java index ae31699b5cc..b5530d8df8c 100644 --- a/documentation/src/test/java/example/timing/TimingExtension.java +++ b/documentation/src/test/java/example/timing/TimingExtension.java @@ -16,9 +16,9 @@ import org.junit.jupiter.api.extension.AfterTestExecutionCallback; import org.junit.jupiter.api.extension.BeforeTestExecutionCallback; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext.Namespace; import org.junit.jupiter.api.extension.ExtensionContext.Store; -import org.junit.jupiter.api.extension.TestExtensionContext; // end::user_guide[] /** @@ -33,12 +33,12 @@ public class TimingExtension implements BeforeTestExecutionCallback, AfterTestEx private static final Logger LOG = Logger.getLogger(TimingExtension.class.getName()); @Override - public void beforeTestExecution(TestExtensionContext context) throws Exception { + public void beforeTestExecution(ExtensionContext context) throws Exception { getStore(context).put(context.getTestMethod().get(), System.currentTimeMillis()); } @Override - public void afterTestExecution(TestExtensionContext context) throws Exception { + public void afterTestExecution(ExtensionContext context) throws Exception { Method testMethod = context.getTestMethod().get(); long start = getStore(context).remove(testMethod, long.class); long duration = System.currentTimeMillis() - start; @@ -46,7 +46,7 @@ public void afterTestExecution(TestExtensionContext context) throws Exception { LOG.info(() -> String.format("Method [%s] took %s ms.", testMethod.getName(), duration)); } - private Store getStore(TestExtensionContext context) { + private Store getStore(ExtensionContext context) { return context.getStore(Namespace.create(getClass(), context)); } diff --git a/documentation/src/test/java/extensions/ExpectToFail.java b/documentation/src/test/java/extensions/ExpectToFail.java index 1ad1703ac5e..5be66b7962c 100644 --- a/documentation/src/test/java/extensions/ExpectToFail.java +++ b/documentation/src/test/java/extensions/ExpectToFail.java @@ -19,10 +19,10 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext.Namespace; import org.junit.jupiter.api.extension.ExtensionContext.Store; import org.junit.jupiter.api.extension.TestExecutionExceptionHandler; -import org.junit.jupiter.api.extension.TestExtensionContext; @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @@ -32,16 +32,16 @@ static class Extension implements TestExecutionExceptionHandler, AfterEachCallback { @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { getExceptionStore(context).put("exception", throwable); } @Override - public void afterEach(TestExtensionContext context) throws Exception { + public void afterEach(ExtensionContext context) throws Exception { assertNotNull(getExceptionStore(context).get("exception"), "Test should have failed"); } - private Store getExceptionStore(TestExtensionContext context) { + private Store getExceptionStore(ExtensionContext context) { return context.getStore(Namespace.create(context)); } } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterAllCallback.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterAllCallback.java index 2be46442bc4..77c00cf7c66 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterAllCallback.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterAllCallback.java @@ -41,6 +41,6 @@ public interface AfterAllCallback extends Extension { * * @param context the current extension context; never {@code null} */ - void afterAll(ContainerExtensionContext context) throws Exception; + void afterAll(ExtensionContext context) throws Exception; } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterEachCallback.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterEachCallback.java index 8d1236856b1..cfdebc6fc60 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterEachCallback.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterEachCallback.java @@ -45,6 +45,6 @@ public interface AfterEachCallback extends Extension { * * @param context the current extension context; never {@code null} */ - void afterEach(TestExtensionContext context) throws Exception; + void afterEach(ExtensionContext context) throws Exception; } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterTestExecutionCallback.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterTestExecutionCallback.java index 2c9ee728b4f..11a0b22fb69 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterTestExecutionCallback.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/AfterTestExecutionCallback.java @@ -44,6 +44,6 @@ public interface AfterTestExecutionCallback extends Extension { * * @param context the current extension context; never {@code null} */ - void afterTestExecution(TestExtensionContext context) throws Exception; + void afterTestExecution(ExtensionContext context) throws Exception; } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeAllCallback.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeAllCallback.java index 6453bf02899..8144b9744b0 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeAllCallback.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeAllCallback.java @@ -41,6 +41,6 @@ public interface BeforeAllCallback extends Extension { * * @param context the current extension context; never {@code null} */ - void beforeAll(ContainerExtensionContext context) throws Exception; + void beforeAll(ExtensionContext context) throws Exception; } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeEachCallback.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeEachCallback.java index cbe33a0fc4a..186b56df3bd 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeEachCallback.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeEachCallback.java @@ -43,6 +43,6 @@ public interface BeforeEachCallback extends Extension { * * @param context the current extension context; never {@code null} */ - void beforeEach(TestExtensionContext context) throws Exception; + void beforeEach(ExtensionContext context) throws Exception; } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeTestExecutionCallback.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeTestExecutionCallback.java index 6d85826ff91..adc4f80ab9d 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeTestExecutionCallback.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/BeforeTestExecutionCallback.java @@ -44,6 +44,6 @@ public interface BeforeTestExecutionCallback extends Extension { * * @param context the current extension context; never {@code null} */ - void beforeTestExecution(TestExtensionContext context) throws Exception; + void beforeTestExecution(ExtensionContext context) throws Exception; } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ContainerExecutionCondition.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ContainerExecutionCondition.java index 99ee020aefd..d9d97db7a57 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ContainerExecutionCondition.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ContainerExecutionCondition.java @@ -19,9 +19,9 @@ * programmatic, conditional container execution. * *

A {@code ContainerExecutionCondition} is - * {@linkplain #evaluateContainerExecutionCondition(ContainerExtensionContext) evaluated} + * {@linkplain #evaluateContainerExecutionCondition(ExtensionContext) evaluated} * to determine if all tests in a given container should be executed based - * on the supplied {@link ContainerExtensionContext}. + * on the supplied {@link ExtensionContext}. * *

Implementations must provide a no-args constructor. * @@ -34,7 +34,7 @@ public interface ContainerExecutionCondition extends Extension { /** - * Evaluate this condition for the supplied {@link ContainerExtensionContext}. + * Evaluate this condition for the supplied {@link ExtensionContext}. * *

An {@linkplain ConditionEvaluationResult#enabled enabled} result * indicates that the container should be executed; whereas, a @@ -44,6 +44,6 @@ public interface ContainerExecutionCondition extends Extension { * @param context the current extension context; never {@code null} * @return the result of evaluating this condition; never {@code null} */ - ConditionEvaluationResult evaluateContainerExecutionCondition(ContainerExtensionContext context); + ConditionEvaluationResult evaluateContainerExecutionCondition(ExtensionContext context); } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ContainerExtensionContext.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ContainerExtensionContext.java deleted file mode 100644 index cb9ab782192..00000000000 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ContainerExtensionContext.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2015-2017 the original author or authors. - * - * All rights reserved. This program and the accompanying materials are - * made available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution and is available at - * - * http://www.eclipse.org/legal/epl-v10.html - */ - -package org.junit.jupiter.api.extension; - -import static org.junit.platform.commons.meta.API.Usage.Experimental; - -import org.junit.platform.commons.meta.API; - -/** - * {@code ContainerExtensionContext} encapsulates the context in which - * the current container is being executed. - * - * @since 5.0 - */ -@API(Experimental) -public interface ContainerExtensionContext extends ExtensionContext { -} diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ExtensionContext.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ExtensionContext.java index a365bfc0f9f..c54fc79bba0 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ExtensionContext.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/ExtensionContext.java @@ -130,7 +130,7 @@ public interface ExtensionContext { /** * Get the exception that was thrown during execution of the test associated - * with this {@code TestExtensionContext}, if available. + * with this {@code ExtensionContext}, if available. * *

This method is typically used for logging and tracing purposes. If you * wish to actually handle an exception thrown during test execution, diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExecutionCondition.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExecutionCondition.java index ee23202e77a..d14e1123e19 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExecutionCondition.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExecutionCondition.java @@ -19,9 +19,9 @@ * programmatic, conditional test execution. * *

A {@code TestExecutionCondition} is - * {@linkplain #evaluateTestExecutionCondition(TestExtensionContext) evaluated} + * {@linkplain #evaluateTestExecutionCondition(ExtensionContext) evaluated} * to determine if a given test should be executed based on the supplied - * {@link TestExtensionContext}. + * {@link ExtensionContext}. * *

Implementations must provide a no-args constructor. * @@ -34,7 +34,7 @@ public interface TestExecutionCondition extends Extension { /** - * Evaluate this condition for the supplied {@link TestExtensionContext}. + * Evaluate this condition for the supplied {@link ExtensionContext}. * *

An {@linkplain ConditionEvaluationResult#enabled enabled} result * indicates that the test should be executed; whereas, a @@ -44,6 +44,6 @@ public interface TestExecutionCondition extends Extension { * @param context the current extension context; never {@code null} * @return the result of evaluating this condition; never {@code null} */ - ConditionEvaluationResult evaluateTestExecutionCondition(TestExtensionContext context); + ConditionEvaluationResult evaluateTestExecutionCondition(ExtensionContext context); } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExecutionExceptionHandler.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExecutionExceptionHandler.java index 7c9e568baa4..0a2b6839627 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExecutionExceptionHandler.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExecutionExceptionHandler.java @@ -48,14 +48,14 @@ public interface TestExecutionExceptionHandler extends Extension { * the next registered {@code TestExecutionExceptionHandler} (if there is * one) will be invoked with any {@link Throwable} thrown by this handler. * - *

Note that the {@link TestExtensionContext#getTestException() test - * exception} in the supplied {@code TestExtensionContext} will not + *

Note that the {@link ExtensionContext#getTestException() test + * exception} in the supplied {@code ExtensionContext} will not * contain the {@code Throwable} thrown during invocation of the corresponding * {@code @Test} method. * * @param context the current extension context; never {@code null} * @param throwable the {@code Throwable} to handle; never {@code null} */ - void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable; + void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable; } diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExtensionContext.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExtensionContext.java deleted file mode 100644 index 82ff22284db..00000000000 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestExtensionContext.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2015-2017 the original author or authors. - * - * All rights reserved. This program and the accompanying materials are - * made available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution and is available at - * - * http://www.eclipse.org/legal/epl-v10.html - */ - -package org.junit.jupiter.api.extension; - -import static org.junit.platform.commons.meta.API.Usage.Experimental; - -import org.junit.platform.commons.meta.API; - -/** - * {@code TestExtensionContext} encapsulates the context in which - * the current test is being executed. - * - * @since 5.0 - */ -@API(Experimental) -public interface TestExtensionContext extends ExtensionContext { -} diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestTemplateInvocationContextProvider.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestTemplateInvocationContextProvider.java index d1b34a6ccc6..5f6843b8af8 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestTemplateInvocationContextProvider.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestTemplateInvocationContextProvider.java @@ -54,34 +54,34 @@ public interface TestTemplateInvocationContextProvider extends Extension { * Determine if this provider supports providing invocation contexts for the * test template method represented by the supplied {@code context}. * - * @param context the container extension context for the test template - * method about to be invoked; never {@code null} + * @param context the extension context for the test template method about + * to be invoked; never {@code null} * @return {@code true} if this provider can provide invocation contexts * @see #provideTestTemplateInvocationContexts - * @see ContainerExtensionContext + * @see ExtensionContext */ - boolean supportsTestTemplate(ContainerExtensionContext context); + boolean supportsTestTemplate(ExtensionContext context); /** * Provide {@linkplain TestTemplateInvocationContext invocation contexts} * for the test template method represented by the supplied {@code context}. * *

This method is only called by the framework if {@link #supportsTestTemplate} - * previously returned {@code true} for the same {@link ContainerExtensionContext}. + * previously returned {@code true} for the same {@link ExtensionContext}. * Thus, this method must not return an empty {@code Stream}. * *

The returned {@code Stream} will be properly closed by calling * {@link Stream#close()}, making it safe to use a resource such as * {@link java.nio.file.Files#lines(java.nio.file.Path) Files.lines()}. * - * @param context the container extension context for the test template - * method about to be invoked; never {@code null} + * @param context the extension context for the test template method about + * to be invoked; never {@code null} * @return a {@code Stream} of {@code TestTemplateInvocationContext} * instances for the invocation of the test template method; never {@code null} * or empty * @see #supportsTestTemplate - * @see ContainerExtensionContext + * @see ExtensionContext */ - Stream provideTestTemplateInvocationContexts(ContainerExtensionContext context); + Stream provideTestTemplateInvocationContexts(ExtensionContext context); } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/AbstractExtensionContext.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/AbstractExtensionContext.java index 51d16bbcc37..6f492eed4be 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/AbstractExtensionContext.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/AbstractExtensionContext.java @@ -87,8 +87,4 @@ public Set getTags() { return testDescriptor.getTags().stream().map(TestTag::getName).collect(toCollection(LinkedHashSet::new)); } - @Override - public Optional getTestException() { - return Optional.empty(); - } } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassBasedContainerExtensionContext.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassExtensionContext.java similarity index 80% rename from junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassBasedContainerExtensionContext.java rename to junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassExtensionContext.java index dc7bfa33367..cdf54851fc7 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassBasedContainerExtensionContext.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassExtensionContext.java @@ -16,7 +16,6 @@ import java.lang.reflect.Method; import java.util.Optional; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.platform.commons.meta.API; import org.junit.platform.engine.EngineExecutionListener; @@ -25,12 +24,11 @@ * @since 5.0 */ @API(Internal) -public final class ClassBasedContainerExtensionContext extends AbstractExtensionContext - implements ContainerExtensionContext { +public final class ClassExtensionContext extends AbstractExtensionContext { private Object testInstance; - public ClassBasedContainerExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener, + public ClassExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener, ClassTestDescriptor testDescriptor) { super(parent, engineExecutionListener, testDescriptor); @@ -60,4 +58,9 @@ public Optional getTestMethod() { return Optional.empty(); } + @Override + public Optional getTestException() { + return Optional.empty(); + } + } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java index 9202a6b3be5..aeed4545c12 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java @@ -29,10 +29,8 @@ import org.junit.jupiter.api.TestInstance.Lifecycle; import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.Extension; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.api.extension.TestInstancePostProcessor; import org.junit.jupiter.engine.execution.AfterEachMethodAdapter; import org.junit.jupiter.engine.execution.BeforeEachMethodAdapter; @@ -133,14 +131,14 @@ public JupiterEngineExecutionContext prepare(JupiterEngineExecutionContext conte registerBeforeEachMethodAdapters(registry); registerAfterEachMethodAdapters(registry); - ClassBasedContainerExtensionContext containerExtensionContext = new ClassBasedContainerExtensionContext( - context.getExtensionContext(), context.getExecutionListener(), this); + ClassExtensionContext extensionContext = new ClassExtensionContext(context.getExtensionContext(), + context.getExecutionListener(), this); // @formatter:off return context.extend() - .withTestInstanceProvider(testInstanceProvider(context, registry, containerExtensionContext)) + .withTestInstanceProvider(testInstanceProvider(context, registry, extensionContext)) .withExtensionRegistry(registry) - .withExtensionContext(containerExtensionContext) + .withExtensionContext(extensionContext) .withThrowableCollector(new ThrowableCollector()) .build(); // @formatter:on @@ -177,11 +175,11 @@ public void after(JupiterEngineExecutionContext context) throws Exception { } private TestInstanceProvider testInstanceProvider(JupiterEngineExecutionContext parentExecutionContext, - ExtensionRegistry registry, ClassBasedContainerExtensionContext extensionContext) { + ExtensionRegistry registry, ClassExtensionContext extensionContext) { if (this.lifecycle == Lifecycle.PER_CLASS) { // Eagerly load test instance for BeforeAllCallbacks, if necessary, - // and store the instance in the ContainerExtensionContext. + // and store the instance in the ExtensionContext. Object instance = instantiateAndPostProcessTestInstance(parentExecutionContext, extensionContext, registry, extensionContext::setTestInstance); return childRegistry -> instance; @@ -219,7 +217,7 @@ private void invokeTestInstancePostProcessors(Object instance, ExtensionRegistry private void invokeBeforeAllCallbacks(JupiterEngineExecutionContext context) { ExtensionRegistry registry = context.getExtensionRegistry(); - ContainerExtensionContext extensionContext = (ContainerExtensionContext) context.getExtensionContext(); + ExtensionContext extensionContext = context.getExtensionContext(); ThrowableCollector throwableCollector = context.getThrowableCollector(); for (BeforeAllCallback callback : registry.getExtensions(BeforeAllCallback.class)) { @@ -232,7 +230,7 @@ private void invokeBeforeAllCallbacks(JupiterEngineExecutionContext context) { private void invokeBeforeAllMethods(JupiterEngineExecutionContext context) { ExtensionRegistry registry = context.getExtensionRegistry(); - ContainerExtensionContext extensionContext = (ContainerExtensionContext) context.getExtensionContext(); + ExtensionContext extensionContext = context.getExtensionContext(); ThrowableCollector throwableCollector = context.getThrowableCollector(); Object testInstance = extensionContext.getTestInstance().orElse(null); @@ -247,7 +245,7 @@ private void invokeBeforeAllMethods(JupiterEngineExecutionContext context) { private void invokeAfterAllMethods(JupiterEngineExecutionContext context) { ExtensionRegistry registry = context.getExtensionRegistry(); - ContainerExtensionContext extensionContext = (ContainerExtensionContext) context.getExtensionContext(); + ExtensionContext extensionContext = context.getExtensionContext(); ThrowableCollector throwableCollector = context.getThrowableCollector(); Object testInstance = extensionContext.getTestInstance().orElse(null); @@ -257,7 +255,7 @@ private void invokeAfterAllMethods(JupiterEngineExecutionContext context) { private void invokeAfterAllCallbacks(JupiterEngineExecutionContext context) { ExtensionRegistry registry = context.getExtensionRegistry(); - ContainerExtensionContext extensionContext = (ContainerExtensionContext) context.getExtensionContext(); + ExtensionContext extensionContext = context.getExtensionContext(); ThrowableCollector throwableCollector = context.getThrowableCollector(); registry.getReversedExtensions(AfterAllCallback.class)// @@ -287,15 +285,14 @@ private void registerMethodsAsExtensions(List methods, ExtensionRegistry } private BeforeEachMethodAdapter synthesizeBeforeEachMethodAdapter(Method method) { - return (extensionContext, registry) -> invokeMethodInTestExtensionContext(method, extensionContext, registry); + return (extensionContext, registry) -> invokeMethodInExtensionContext(method, extensionContext, registry); } private AfterEachMethodAdapter synthesizeAfterEachMethodAdapter(Method method) { - return (extensionContext, registry) -> invokeMethodInTestExtensionContext(method, extensionContext, registry); + return (extensionContext, registry) -> invokeMethodInExtensionContext(method, extensionContext, registry); } - private void invokeMethodInTestExtensionContext(Method method, TestExtensionContext context, - ExtensionRegistry registry) { + private void invokeMethodInExtensionContext(Method method, ExtensionContext context, ExtensionRegistry registry) { Object testInstance = context.getTestInstance().orElseThrow(() -> new JUnitException( "Illegal state: test instance not present for method: " + method.toGenericString())); diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterEngineDescriptor.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterEngineDescriptor.java index 5c8dfde816d..6f13c3620a7 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterEngineDescriptor.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterEngineDescriptor.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.engine.extension.ExtensionRegistry.createRegistryWithDefaultExtensions; import static org.junit.platform.commons.meta.API.Usage.Internal; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.engine.execution.JupiterEngineExecutionContext; import org.junit.jupiter.engine.extension.ExtensionRegistry; import org.junit.platform.commons.meta.API; @@ -36,7 +36,7 @@ public JupiterEngineDescriptor(UniqueId uniqueId) { public JupiterEngineExecutionContext prepare(JupiterEngineExecutionContext context) throws Exception { ExtensionRegistry extensionRegistry = createRegistryWithDefaultExtensions(context.getConfigurationParameters()); EngineExecutionListener executionListener = context.getExecutionListener(); - ContainerExtensionContext extensionContext = new JupiterEngineExtensionContext(executionListener, this); + ExtensionContext extensionContext = new JupiterEngineExtensionContext(executionListener, this); // @formatter:off return context.extend() diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterEngineExtensionContext.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterEngineExtensionContext.java index 3ca4cc99f50..a5498531c25 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterEngineExtensionContext.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterEngineExtensionContext.java @@ -16,7 +16,6 @@ import java.lang.reflect.Method; import java.util.Optional; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.platform.commons.meta.API; import org.junit.platform.engine.EngineExecutionListener; @@ -24,8 +23,7 @@ * @since 5.0 */ @API(Internal) -public final class JupiterEngineExtensionContext extends AbstractExtensionContext - implements ContainerExtensionContext { +public final class JupiterEngineExtensionContext extends AbstractExtensionContext { public JupiterEngineExtensionContext(EngineExecutionListener engineExecutionListener, JupiterEngineDescriptor testDescriptor) { @@ -52,4 +50,9 @@ public Optional getTestMethod() { return Optional.empty(); } + @Override + public Optional getTestException() { + return Optional.empty(); + } + } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterTestDescriptor.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterTestDescriptor.java index e352dc26bba..1b28568120d 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterTestDescriptor.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/JupiterTestDescriptor.java @@ -28,10 +28,8 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.extension.ConditionEvaluationResult; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.Extension; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.api.function.Executable; import org.junit.jupiter.engine.execution.ConditionEvaluator; import org.junit.jupiter.engine.execution.JupiterEngineExecutionContext; @@ -96,14 +94,13 @@ protected static String determineDisplayName(E elem protected SkipResult shouldContainerBeSkipped(JupiterEngineExecutionContext context) { ConditionEvaluationResult evaluationResult = conditionEvaluator.evaluateForContainer( - context.getExtensionRegistry(), context.getConfigurationParameters(), - (ContainerExtensionContext) context.getExtensionContext()); + context.getExtensionRegistry(), context.getConfigurationParameters(), context.getExtensionContext()); return toSkipResult(evaluationResult); } protected SkipResult shouldTestBeSkipped(JupiterEngineExecutionContext context) { ConditionEvaluationResult evaluationResult = conditionEvaluator.evaluateForTest(context.getExtensionRegistry(), - context.getConfigurationParameters(), (TestExtensionContext) context.getExtensionContext()); + context.getConfigurationParameters(), context.getExtensionContext()); return toSkipResult(evaluationResult); } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodBasedTestExtensionContext.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodExtensionContext.java similarity index 84% rename from junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodBasedTestExtensionContext.java rename to junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodExtensionContext.java index dca44feec06..73ae1f47957 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodBasedTestExtensionContext.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodExtensionContext.java @@ -17,7 +17,6 @@ import java.util.Optional; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.engine.execution.ThrowableCollector; import org.junit.platform.commons.meta.API; import org.junit.platform.engine.EngineExecutionListener; @@ -26,14 +25,13 @@ * @since 5.0 */ @API(Internal) -public final class MethodBasedTestExtensionContext extends AbstractExtensionContext - implements TestExtensionContext { +public final class MethodExtensionContext extends AbstractExtensionContext { private final Object testInstance; private final ThrowableCollector throwableCollector; - public MethodBasedTestExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener, + public MethodExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener, MethodTestDescriptor testDescriptor, Object testInstance, ThrowableCollector throwableCollector) { super(parent, engineExecutionListener, testDescriptor); diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodTestDescriptor.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodTestDescriptor.java index d4ff2359d7b..0b436408f06 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodTestDescriptor.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/MethodTestDescriptor.java @@ -22,8 +22,8 @@ import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.BeforeTestExecutionCallback; import org.junit.jupiter.api.extension.Extension; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestExecutionExceptionHandler; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.api.function.Executable; import org.junit.jupiter.engine.execution.AfterEachMethodAdapter; import org.junit.jupiter.engine.execution.BeforeEachMethodAdapter; @@ -80,13 +80,13 @@ public JupiterEngineExecutionContext prepare(JupiterEngineExecutionContext conte ExtensionRegistry registry = populateNewExtensionRegistry(context); Object testInstance = context.getTestInstanceProvider().getTestInstance(Optional.of(registry)); ThrowableCollector throwableCollector = new ThrowableCollector(); - TestExtensionContext testExtensionContext = new MethodBasedTestExtensionContext(context.getExtensionContext(), + ExtensionContext extensionContext = new MethodExtensionContext(context.getExtensionContext(), context.getExecutionListener(), this, testInstance, throwableCollector); // @formatter:off return context.extend() .withExtensionRegistry(registry) - .withExtensionContext(testExtensionContext) + .withExtensionContext(extensionContext) .withThrowableCollector(throwableCollector) .build(); // @formatter:on @@ -146,15 +146,15 @@ private void invokeBeforeTestExecutionCallbacks(JupiterEngineExecutionContext co } private void invokeBeforeMethodsOrCallbacksUntilExceptionOccurs( - JupiterEngineExecutionContext context, BiFunction generator, + JupiterEngineExecutionContext context, BiFunction generator, Class type) { ExtensionRegistry registry = context.getExtensionRegistry(); - TestExtensionContext testExtensionContext = (TestExtensionContext) context.getExtensionContext(); + ExtensionContext extensionContext = context.getExtensionContext(); ThrowableCollector throwableCollector = context.getThrowableCollector(); for (T callback : registry.getExtensions(type)) { - Executable executable = generator.apply(testExtensionContext, callback); + Executable executable = generator.apply(extensionContext, callback); throwableCollector.execute(executable); if (throwableCollector.isNotEmpty()) { break; @@ -163,23 +163,23 @@ private void invokeBeforeMethodsOrCallbacksUntilExceptionO } protected void invokeTestMethod(JupiterEngineExecutionContext context, DynamicTestExecutor dynamicTestExecutor) { - TestExtensionContext testExtensionContext = (TestExtensionContext) context.getExtensionContext(); + ExtensionContext extensionContext = context.getExtensionContext(); ThrowableCollector throwableCollector = context.getThrowableCollector(); throwableCollector.execute(() -> { try { Method testMethod = getTestMethod(); - Object instance = testExtensionContext.getTestInstance().orElseThrow(() -> new JUnitException( + Object instance = extensionContext.getTestInstance().orElseThrow(() -> new JUnitException( "Illegal state: test instance not present for method: " + testMethod.toGenericString())); - executableInvoker.invoke(testMethod, instance, testExtensionContext, context.getExtensionRegistry()); + executableInvoker.invoke(testMethod, instance, extensionContext, context.getExtensionRegistry()); } catch (Throwable throwable) { - invokeTestExecutionExceptionHandlers(context.getExtensionRegistry(), testExtensionContext, throwable); + invokeTestExecutionExceptionHandlers(context.getExtensionRegistry(), extensionContext, throwable); } }); } - private void invokeTestExecutionExceptionHandlers(ExtensionRegistry registry, TestExtensionContext context, + private void invokeTestExecutionExceptionHandlers(ExtensionRegistry registry, ExtensionContext context, Throwable ex) { invokeTestExecutionExceptionHandlers(ex, registry.getReversedExtensions(TestExecutionExceptionHandler.class), @@ -187,7 +187,7 @@ private void invokeTestExecutionExceptionHandlers(ExtensionRegistry registry, Te } private void invokeTestExecutionExceptionHandlers(Throwable ex, List handlers, - TestExtensionContext context) { + ExtensionContext context) { // No handlers left? if (handlers.isEmpty()) { @@ -222,14 +222,14 @@ private void invokeAfterEachCallbacks(JupiterEngineExecutionContext context) { } private void invokeAllAfterMethodsOrCallbacks(JupiterEngineExecutionContext context, - BiFunction generator, Class type) { + BiFunction generator, Class type) { ExtensionRegistry registry = context.getExtensionRegistry(); - TestExtensionContext testExtensionContext = (TestExtensionContext) context.getExtensionContext(); + ExtensionContext extensionContext = context.getExtensionContext(); ThrowableCollector throwableCollector = context.getThrowableCollector(); registry.getReversedExtensions(type).forEach(callback -> { - Executable executable = generator.apply(testExtensionContext, callback); + Executable executable = generator.apply(extensionContext, callback); throwableCollector.execute(executable); }); } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestFactoryTestDescriptor.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestFactoryTestDescriptor.java index a9b331c4f9e..7dfea5dfe64 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestFactoryTestDescriptor.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestFactoryTestDescriptor.java @@ -19,7 +19,7 @@ import org.junit.jupiter.api.DynamicContainer; import org.junit.jupiter.api.DynamicNode; import org.junit.jupiter.api.DynamicTest; -import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.engine.execution.ExecutableInvoker; import org.junit.jupiter.engine.execution.JupiterEngineExecutionContext; import org.junit.platform.commons.JUnitException; @@ -63,12 +63,12 @@ public boolean mayRegisterTests() { @Override protected void invokeTestMethod(JupiterEngineExecutionContext context, DynamicTestExecutor dynamicTestExecutor) { - TestExtensionContext testExtensionContext = (TestExtensionContext) context.getExtensionContext(); + ExtensionContext extensionContext = context.getExtensionContext(); context.getThrowableCollector().execute(() -> { - Object instance = testExtensionContext.getTestInstance().orElseThrow(() -> new JUnitException( + Object instance = extensionContext.getTestInstance().orElseThrow(() -> new JUnitException( "Illegal state: test instance not present for method: " + getTestMethod().toGenericString())); - Object testFactoryMethodResult = executableInvoker.invoke(getTestMethod(), instance, testExtensionContext, + Object testFactoryMethodResult = executableInvoker.invoke(getTestMethod(), instance, extensionContext, context.getExtensionRegistry()); TestSource source = getSource().orElseThrow( () -> new JUnitException("Illegal state: TestSource must be present")); diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateContainerExtensionContext.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateExtensionContext.java similarity index 80% rename from junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateContainerExtensionContext.java rename to junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateExtensionContext.java index 589ae9924e8..f715fb87a99 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateContainerExtensionContext.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateExtensionContext.java @@ -16,7 +16,6 @@ import java.lang.reflect.Method; import java.util.Optional; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.platform.commons.meta.API; import org.junit.platform.engine.EngineExecutionListener; @@ -25,12 +24,11 @@ * @since 5.0 */ @API(Internal) -final class TestTemplateContainerExtensionContext extends AbstractExtensionContext - implements ContainerExtensionContext { +final class TestTemplateExtensionContext extends AbstractExtensionContext { private final Object testInstance; - TestTemplateContainerExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener, + TestTemplateExtensionContext(ExtensionContext parent, EngineExecutionListener engineExecutionListener, TestTemplateTestDescriptor testDescriptor, Object testInstance) { super(parent, engineExecutionListener, testDescriptor); @@ -57,4 +55,9 @@ public Optional getTestMethod() { return Optional.of(getTestDescriptor().getTestMethod()); } + @Override + public Optional getTestException() { + return Optional.empty(); + } + } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.java index 39c5acc0d02..be9e7c033f0 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/TestTemplateTestDescriptor.java @@ -17,7 +17,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider; import org.junit.jupiter.engine.execution.JupiterEngineExecutionContext; @@ -61,13 +61,13 @@ public JupiterEngineExecutionContext prepare(JupiterEngineExecutionContext conte // The test instance should be properly maintained by the enclosing class's ExtensionContext. Object testInstance = context.getExtensionContext().getTestInstance().orElse(null); - ContainerExtensionContext containerExtensionContext = new TestTemplateContainerExtensionContext( - context.getExtensionContext(), context.getExecutionListener(), this, testInstance); + ExtensionContext extensionContext = new TestTemplateExtensionContext(context.getExtensionContext(), + context.getExecutionListener(), this, testInstance); // @formatter:off return context.extend() .withExtensionRegistry(registry) - .withExtensionContext(containerExtensionContext) + .withExtensionContext(extensionContext) .build(); // @formatter:on } @@ -81,13 +81,13 @@ public SkipResult shouldBeSkipped(JupiterEngineExecutionContext context) throws public JupiterEngineExecutionContext execute(JupiterEngineExecutionContext context, DynamicTestExecutor dynamicTestExecutor) throws Exception { - ContainerExtensionContext containerExtensionContext = (ContainerExtensionContext) context.getExtensionContext(); - List providers = validateProviders(containerExtensionContext, + ExtensionContext extensionContext = context.getExtensionContext(); + List providers = validateProviders(extensionContext, context.getExtensionRegistry()); AtomicInteger invocationIndex = new AtomicInteger(); // @formatter:off providers.stream() - .flatMap(provider -> provider.provideTestTemplateInvocationContexts(containerExtensionContext)) + .flatMap(provider -> provider.provideTestTemplateInvocationContexts(extensionContext)) .map(invocationContext -> createInvocationTestDescriptor(invocationContext, invocationIndex.incrementAndGet())) .forEach(invocationTestDescriptor -> execute(dynamicTestExecutor, invocationTestDescriptor)); // @formatter:on @@ -95,12 +95,12 @@ public JupiterEngineExecutionContext execute(JupiterEngineExecutionContext conte return context; } - private List validateProviders( - ContainerExtensionContext containerExtensionContext, ExtensionRegistry extensionRegistry) { + private List validateProviders(ExtensionContext extensionContext, + ExtensionRegistry extensionRegistry) { // @formatter:off List providers = extensionRegistry.stream(TestTemplateInvocationContextProvider.class) - .filter(provider -> provider.supportsTestTemplate(containerExtensionContext)) + .filter(provider -> provider.supportsTestTemplate(extensionContext)) .collect(toList()); // @formatter:on diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/AfterEachMethodAdapter.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/AfterEachMethodAdapter.java index 2f40efbbce7..e2e67389f5b 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/AfterEachMethodAdapter.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/AfterEachMethodAdapter.java @@ -14,7 +14,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.extension.Extension; -import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.engine.extension.ExtensionRegistry; import org.junit.platform.commons.meta.API; @@ -28,6 +28,6 @@ @API(Internal) public interface AfterEachMethodAdapter extends Extension { - void invokeAfterEachMethod(TestExtensionContext context, ExtensionRegistry registry) throws Throwable; + void invokeAfterEachMethod(ExtensionContext context, ExtensionRegistry registry) throws Throwable; } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/BeforeEachMethodAdapter.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/BeforeEachMethodAdapter.java index f43d3f1dfbe..62d141aa838 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/BeforeEachMethodAdapter.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/BeforeEachMethodAdapter.java @@ -14,7 +14,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.Extension; -import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.engine.extension.ExtensionRegistry; import org.junit.platform.commons.meta.API; @@ -28,6 +28,6 @@ @API(Internal) public interface BeforeEachMethodAdapter extends Extension { - void invokeBeforeEachMethod(TestExtensionContext context, ExtensionRegistry registry) throws Throwable; + void invokeBeforeEachMethod(ExtensionContext context, ExtensionRegistry registry) throws Throwable; } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/ConditionEvaluator.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/ConditionEvaluator.java index c9df15d7b12..be6ecd3a699 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/ConditionEvaluator.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/execution/ConditionEvaluator.java @@ -23,11 +23,9 @@ import org.junit.jupiter.api.extension.ConditionEvaluationResult; import org.junit.jupiter.api.extension.ContainerExecutionCondition; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.Extension; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestExecutionCondition; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.engine.Constants; import org.junit.jupiter.engine.extension.ExtensionRegistry; import org.junit.platform.commons.meta.API; @@ -56,18 +54,18 @@ public class ConditionEvaluator { /** * Evaluate all {@link ContainerExecutionCondition} - * extensions registered for the supplied {@link ContainerExtensionContext}. + * extensions registered for the supplied {@link ExtensionContext}. * - * @param context the current {@code ContainerExtensionContext} + * @param context the current {@code ExtensionContext} * @return the first disabled {@code ConditionEvaluationResult}, * or a default enabled {@code ConditionEvaluationResult} if no * disabled conditions are encountered */ public ConditionEvaluationResult evaluateForContainer(ExtensionRegistry extensionRegistry, - ConfigurationParameters configurationParameters, ContainerExtensionContext context) { + ConfigurationParameters configurationParameters, ExtensionContext context) { BiFunction evaluateAdaptor = (condition, - ctx) -> evaluate((ContainerExecutionCondition) condition, (ContainerExtensionContext) ctx); + ctx) -> evaluate((ContainerExecutionCondition) condition, (ExtensionContext) ctx); return evaluate(ContainerExecutionCondition.class, evaluateAdaptor, extensionRegistry, configurationParameters, context); @@ -75,18 +73,18 @@ public ConditionEvaluationResult evaluateForContainer(ExtensionRegistry extensio /** * Evaluate all {@link TestExecutionCondition} - * extensions registered for the supplied {@link TestExtensionContext}. + * extensions registered for the supplied {@link ExtensionContext}. * - * @param context the current {@code TestExtensionContext} + * @param context the current {@code ExtensionContext} * @return the first disabled {@code ConditionEvaluationResult}, * or a default enabled {@code ConditionEvaluationResult} if no * disabled conditions are encountered */ public ConditionEvaluationResult evaluateForTest(ExtensionRegistry extensionRegistry, - ConfigurationParameters configurationParameters, TestExtensionContext context) { + ConfigurationParameters configurationParameters, ExtensionContext context) { BiFunction evaluateAdaptor = (condition, - ctx) -> evaluate((TestExecutionCondition) condition, (TestExtensionContext) ctx); + ctx) -> evaluate((TestExecutionCondition) condition, (ExtensionContext) ctx); return evaluate(TestExecutionCondition.class, evaluateAdaptor, extensionRegistry, configurationParameters, context); @@ -108,8 +106,7 @@ private ConditionEvaluationResult evaluate(Class extensionT // @formatter:on } - private ConditionEvaluationResult evaluate(ContainerExecutionCondition condition, - ContainerExtensionContext context) { + private ConditionEvaluationResult evaluate(ContainerExecutionCondition condition, ExtensionContext context) { try { ConditionEvaluationResult result = condition.evaluateContainerExecutionCondition(context); @@ -121,7 +118,7 @@ private ConditionEvaluationResult evaluate(ContainerExecutionCondition condition } } - private ConditionEvaluationResult evaluate(TestExecutionCondition condition, TestExtensionContext context) { + private ConditionEvaluationResult evaluate(TestExecutionCondition condition, ExtensionContext context) { try { ConditionEvaluationResult result = condition.evaluateTestExecutionCondition(context); logResult(condition.getClass(), result); diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/DisabledCondition.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/DisabledCondition.java index 0a3438cdb46..d9e68303ea2 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/DisabledCondition.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/DisabledCondition.java @@ -18,9 +18,8 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.extension.ConditionEvaluationResult; import org.junit.jupiter.api.extension.ContainerExecutionCondition; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestExecutionCondition; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.platform.commons.util.StringUtils; /** @@ -29,8 +28,8 @@ * * @since 5.0 * @see Disabled - * @see #evaluate(ContainerExtensionContext) - * @see #evaluate(TestExtensionContext) + * @see #evaluateContainerExecutionCondition(ExtensionContext) + * @see #evaluateTestExecutionCondition(ExtensionContext) */ class DisabledCondition implements ContainerExecutionCondition, TestExecutionCondition { @@ -41,7 +40,7 @@ class DisabledCondition implements ContainerExecutionCondition, TestExecutionCon * Containers are disabled if {@code @Disabled} is present on the test class. */ @Override - public ConditionEvaluationResult evaluateContainerExecutionCondition(ContainerExtensionContext context) { + public ConditionEvaluationResult evaluateContainerExecutionCondition(ExtensionContext context) { return evaluate(context.getElement()); } @@ -49,7 +48,7 @@ public ConditionEvaluationResult evaluateContainerExecutionCondition(ContainerEx * Tests are disabled if {@code @Disabled} is present on the test method. */ @Override - public ConditionEvaluationResult evaluateTestExecutionCondition(TestExtensionContext context) { + public ConditionEvaluationResult evaluateTestExecutionCondition(ExtensionContext context) { return evaluate(context.getElement()); } diff --git a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/RepeatedTestExtension.java b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/RepeatedTestExtension.java index 95ecd5c5f8b..41700916bc6 100644 --- a/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/RepeatedTestExtension.java +++ b/junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/RepeatedTestExtension.java @@ -18,7 +18,7 @@ import java.util.stream.Stream; import org.junit.jupiter.api.RepeatedTest; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider; import org.junit.platform.commons.util.AnnotationUtils; @@ -36,13 +36,12 @@ class RepeatedTestExtension implements TestTemplateInvocationContextProvider { private static final Logger logger = Logger.getLogger(RepeatedTestExtension.class.getName()); @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return isAnnotated(context.getTestMethod(), RepeatedTest.class); } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { Method testMethod = Preconditions.notNull(context.getTestMethod().orElse(null), "test method must not be null"); String displayName = context.getDisplayName(); diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/extension/KitchenSinkExtension.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/extension/KitchenSinkExtension.java index 85da4e57438..9f2fe136f18 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/extension/KitchenSinkExtension.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/api/extension/KitchenSinkExtension.java @@ -56,31 +56,31 @@ public class KitchenSinkExtension implements // --- Lifecycle Callbacks ------------------------------------------------- @Override - public void beforeAll(ContainerExtensionContext context) throws Exception { + public void beforeAll(ExtensionContext context) throws Exception { } @Override - public void beforeEach(TestExtensionContext context) throws Exception { + public void beforeEach(ExtensionContext context) throws Exception { } @Override - public void beforeTestExecution(TestExtensionContext context) throws Exception { + public void beforeTestExecution(ExtensionContext context) throws Exception { } @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { } @Override - public void afterTestExecution(TestExtensionContext context) throws Exception { + public void afterTestExecution(ExtensionContext context) throws Exception { } @Override - public void afterEach(TestExtensionContext context) throws Exception { + public void afterEach(ExtensionContext context) throws Exception { } @Override - public void afterAll(ContainerExtensionContext context) throws Exception { + public void afterAll(ExtensionContext context) throws Exception { } // --- Dependency Injection ------------------------------------------------ @@ -106,25 +106,24 @@ public Object resolveParameter(ParameterContext parameterContext, ExtensionConte // --- Conditional Test Execution ------------------------------------------ @Override - public ConditionEvaluationResult evaluateContainerExecutionCondition(ContainerExtensionContext context) { + public ConditionEvaluationResult evaluateContainerExecutionCondition(ExtensionContext context) { return null; } @Override - public ConditionEvaluationResult evaluateTestExecutionCondition(TestExtensionContext context) { + public ConditionEvaluationResult evaluateTestExecutionCondition(ExtensionContext context) { return null; } // --- @TestTemplate ------------------------------------------------------- @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return false; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return null; } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/FullLogging.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/FullLogging.java index cf18e4ec35a..57ff8abf96e 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/FullLogging.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/FullLogging.java @@ -24,8 +24,8 @@ import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.platform.commons.util.PreconditionViolationException; /** @@ -52,7 +52,7 @@ class Extension implements BeforeAllCallback, AfterAllCallback { private final Map previouslyActiveLogLevels = new HashMap<>(); @Override - public void beforeAll(ContainerExtensionContext context) throws Exception { + public void beforeAll(ExtensionContext context) throws Exception { Class testClass = context.getTestClass().get(); // @formatter:off @@ -72,7 +72,7 @@ public void beforeAll(ContainerExtensionContext context) throws Exception { } @Override - public void afterAll(ContainerExtensionContext context) throws Exception { + public void afterAll(ExtensionContext context) throws Exception { previouslyActiveLogLevels.forEach( (loggerName, previousLogLevel) -> Logger.getLogger(loggerName).setLevel(previousLogLevel)); } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestInstanceLifecycleTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestInstanceLifecycleTests.java index 60ddb682f9f..4d369af2d29 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestInstanceLifecycleTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestInstanceLifecycleTests.java @@ -48,10 +48,8 @@ import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ConditionEvaluationResult; import org.junit.jupiter.api.extension.ContainerExecutionCondition; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.api.extension.TestInstancePostProcessor; import org.junit.jupiter.api.extension.TestTemplateInvocationContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider; @@ -832,7 +830,7 @@ private static class InstanceTrackingExtension BeforeEachCallback, AfterEachCallback, TestTemplateInvocationContextProvider { @Override - public ConditionEvaluationResult evaluateContainerExecutionCondition(ContainerExtensionContext context) { + public ConditionEvaluationResult evaluateContainerExecutionCondition(ExtensionContext context) { instanceMap.put(containerExecutionConditionKey(context.getTestClass().get(), context.getTestMethod().map(Method::getName).orElse(null)), context.getTestInstance().orElse(null)); @@ -847,36 +845,35 @@ public void postProcessTestInstance(Object testInstance, ExtensionContext contex } @Override - public void beforeAll(ContainerExtensionContext context) { + public void beforeAll(ExtensionContext context) { instanceMap.put(beforeAllCallbackKey(context.getTestClass().get()), context.getTestInstance().orElse(null)); } @Override - public void afterAll(ContainerExtensionContext context) { + public void afterAll(ExtensionContext context) { instanceMap.put(afterAllCallbackKey(context.getTestClass().get()), context.getTestInstance().orElse(null)); } @Override - public void beforeEach(TestExtensionContext context) { + public void beforeEach(ExtensionContext context) { instanceMap.put( beforeEachCallbackKey(context.getTestClass().get(), context.getTestMethod().get().getName()), context.getTestInstance().orElse(null)); } @Override - public void afterEach(TestExtensionContext context) { + public void afterEach(ExtensionContext context) { instanceMap.put(afterEachCallbackKey(context.getTestClass().get(), context.getTestMethod().get().getName()), context.getTestInstance().orElse(null)); } @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return isAnnotated(context.getTestMethod(), SingletonTest.class); } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { instanceMap.put(testTemplateKey(context.getTestClass().get(), context.getTestMethod().get().getName()), context.getTestInstance().orElse(null)); diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestTemplateInvocationTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestTemplateInvocationTests.java index c5fe6adee1b..2788e23b5e8 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestTemplateInvocationTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestTemplateInvocationTests.java @@ -56,7 +56,6 @@ import org.junit.jupiter.api.extension.BeforeTestExecutionCallback; import org.junit.jupiter.api.extension.ConditionEvaluationResult; import org.junit.jupiter.api.extension.ContainerExecutionCondition; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.Extension; import org.junit.jupiter.api.extension.ExtensionContext; @@ -65,7 +64,6 @@ import org.junit.jupiter.api.extension.ParameterResolver; import org.junit.jupiter.api.extension.TestExecutionCondition; import org.junit.jupiter.api.extension.TestExecutionExceptionHandler; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.api.extension.TestInstancePostProcessor; import org.junit.jupiter.api.extension.TestTemplateInvocationContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider; @@ -499,13 +497,12 @@ void testTemplate(TestInfo testInfo) { private static class SingleInvocationContextProvider implements TestTemplateInvocationContextProvider { @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return true; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream.of(emptyTestTemplateInvocationContext()); } } @@ -514,13 +511,12 @@ private static class AnotherInvocationContextProviderWithASingleInvocation implements TestTemplateInvocationContextProvider { @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return true; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream.of(emptyTestTemplateInvocationContext()); } } @@ -528,13 +524,12 @@ public Stream provideTestTemplateInvocationContex private static class TwoInvocationsContextProvider implements TestTemplateInvocationContextProvider { @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return true; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream.of(emptyTestTemplateInvocationContext(), emptyTestTemplateInvocationContext()); } } @@ -542,7 +537,7 @@ public Stream provideTestTemplateInvocationContex private static class AlwaysDisabledTestExecutionCondition implements TestExecutionCondition { @Override - public ConditionEvaluationResult evaluateTestExecutionCondition(TestExtensionContext context) { + public ConditionEvaluationResult evaluateTestExecutionCondition(ExtensionContext context) { return ConditionEvaluationResult.disabled("tests are always disabled"); } } @@ -550,7 +545,7 @@ public ConditionEvaluationResult evaluateTestExecutionCondition(TestExtensionCon private static class AlwaysDisabledContainerExecutionCondition implements ContainerExecutionCondition { @Override - public ConditionEvaluationResult evaluateContainerExecutionCondition(ContainerExtensionContext context) { + public ConditionEvaluationResult evaluateContainerExecutionCondition(ExtensionContext context) { return ConditionEvaluationResult.disabled("containers are always disabled"); } } @@ -559,13 +554,12 @@ private static class InvocationContextProviderWithCustomizedDisplayNames implements TestTemplateInvocationContextProvider { @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return true; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream. generate(() -> new TestTemplateInvocationContext() { @Override @@ -580,7 +574,7 @@ private static class StringParameterResolvingInvocationContextProvider implements TestTemplateInvocationContextProvider { @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { // @formatter:off return context.getTestMethod() .map(Method::getParameterTypes) @@ -591,8 +585,7 @@ public boolean supportsTestTemplate(ContainerExtensionContext context) { } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream.of(createContext("foo"), createContext("bar")); } @@ -629,13 +622,12 @@ private static class StringParameterInjectingInvocationContextProvider implements TestTemplateInvocationContextProvider { @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return true; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream.of(createContext("foo"), createContext("bar")); } @@ -663,13 +655,12 @@ private static class InvocationContextProviderWithDynamicLifecycleCallbacks implements TestTemplateInvocationContextProvider { @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return true; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream.of(createContext("foo"), createContext("bar")); } @@ -692,29 +683,28 @@ private static class LifecycleCallbackExtension implements BeforeEachCallback, B TestExecutionExceptionHandler, AfterTestExecutionCallback, AfterEachCallback { @Override - public void beforeEach(TestExtensionContext context) throws Exception { + public void beforeEach(ExtensionContext context) throws Exception { TestTemplateTestClassWithDynamicLifecycleCallbacks.lifecycleEvents.add("beforeEach"); } @Override - public void beforeTestExecution(TestExtensionContext context) throws Exception { + public void beforeTestExecution(ExtensionContext context) throws Exception { TestTemplateTestClassWithDynamicLifecycleCallbacks.lifecycleEvents.add("beforeTestExecution"); } @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) - throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { TestTemplateTestClassWithDynamicLifecycleCallbacks.lifecycleEvents.add("handleTestExecutionException"); throw new AssertionError(throwable); } @Override - public void afterTestExecution(TestExtensionContext context) throws Exception { + public void afterTestExecution(ExtensionContext context) throws Exception { TestTemplateTestClassWithDynamicLifecycleCallbacks.lifecycleEvents.add("afterTestExecution"); } @Override - public void afterEach(TestExtensionContext context) throws Exception { + public void afterEach(ExtensionContext context) throws Exception { TestTemplateTestClassWithDynamicLifecycleCallbacks.lifecycleEvents.add("afterEach"); } } @@ -724,13 +714,12 @@ private static class InvocationContextProviderThatSupportsEverythingButProvidesN implements TestTemplateInvocationContextProvider { @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return true; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream.empty(); } } @@ -740,13 +729,12 @@ private static class InvocationContextProviderWithCloseableStream implements Tes private static AtomicBoolean streamClosed = new AtomicBoolean(false); @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return true; } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { return Stream.of(emptyTestTemplateInvocationContext()).onClose(() -> streamClosed.set(true)); } } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/descriptor/TestFactoryTestDescriptorTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/descriptor/TestFactoryTestDescriptorTests.java index 87d0e407403..f10848feb5d 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/descriptor/TestFactoryTestDescriptorTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/descriptor/TestFactoryTestDescriptorTests.java @@ -22,7 +22,7 @@ import org.junit.jupiter.api.DynamicTest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestFactory; -import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.engine.execution.JupiterEngineExecutionContext; import org.junit.jupiter.engine.execution.ThrowableCollector; import org.junit.platform.engine.UniqueId; @@ -36,22 +36,22 @@ class TestFactoryTestDescriptorTests { private JupiterEngineExecutionContext context; - private TestExtensionContext testExtensionContext; + private ExtensionContext extensionContext; private TestFactoryTestDescriptor descriptor; private boolean isClosed; @BeforeEach void before() throws Exception { - testExtensionContext = mock(TestExtensionContext.class); + extensionContext = mock(ExtensionContext.class); isClosed = false; context = new JupiterEngineExecutionContext(null, null).extend().withThrowableCollector( - new ThrowableCollector()).withExtensionContext(testExtensionContext).build(); + new ThrowableCollector()).withExtensionContext(extensionContext).build(); Method testMethod = CustomStreamTestCase.class.getDeclaredMethod("customStream"); descriptor = new TestFactoryTestDescriptor(UniqueId.forEngine("engine"), CustomStreamTestCase.class, testMethod); - when(testExtensionContext.getTestMethod()).thenReturn(Optional.of(testMethod)); + when(extensionContext.getTestMethod()).thenReturn(Optional.of(testMethod)); } @Test @@ -76,7 +76,7 @@ void streamsFromTestFactoriesShouldBeClosedWhenTheyThrow() { private void prepareMockForTestInstanceWithCustomStream(Stream stream) { Stream mockStream = stream.onClose(() -> isClosed = true); - when(testExtensionContext.getTestInstance()).thenReturn(Optional.of(new CustomStreamTestCase(mockStream))); + when(extensionContext.getTestInstance()).thenReturn(Optional.of(new CustomStreamTestCase(mockStream))); } private static class CustomStreamTestCase { diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/execution/ExtensionContextTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/execution/ExtensionContextTests.java index 85dc529f708..0ad8d82f7d2 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/execution/ExtensionContextTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/execution/ExtensionContextTests.java @@ -21,11 +21,11 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.engine.descriptor.ClassBasedContainerExtensionContext; +import org.junit.jupiter.engine.descriptor.ClassExtensionContext; import org.junit.jupiter.engine.descriptor.ClassTestDescriptor; import org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor; import org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext; -import org.junit.jupiter.engine.descriptor.MethodBasedTestExtensionContext; +import org.junit.jupiter.engine.descriptor.MethodExtensionContext; import org.junit.jupiter.engine.descriptor.MethodTestDescriptor; import org.junit.jupiter.engine.descriptor.NestedClassTestDescriptor; import org.junit.platform.engine.EngineExecutionListener; @@ -38,8 +38,8 @@ /** * Microtests for implementors of {@linkplain ExtensionContext}: * {@linkplain JupiterEngineExtensionContext}, - * {@linkplain ClassBasedContainerExtensionContext}, and - * {@linkplain MethodBasedTestExtensionContext}. + * {@linkplain ClassExtensionContext}, and + * {@linkplain MethodExtensionContext}. * * @since 5.0 * @see ExtensionValuesStoreTests @@ -67,16 +67,15 @@ void fromClassTestDescriptor() { ClassTestDescriptor nestedClassDescriptor = nestedClassDescriptor(); ClassTestDescriptor outerClassDescriptor = outerClassDescriptor(nestedClassDescriptor); - ClassBasedContainerExtensionContext outerExtensionContext = new ClassBasedContainerExtensionContext(null, null, - outerClassDescriptor); + ClassExtensionContext outerExtensionContext = new ClassExtensionContext(null, null, outerClassDescriptor); assertAll("outerContext", // () -> assertThat(outerExtensionContext.getTestClass()).contains(OuterClass.class), // () -> assertThat(outerExtensionContext.getDisplayName()).isEqualTo(outerClassDescriptor.getDisplayName()), // () -> assertThat(outerExtensionContext.getParent()).isEmpty() // ); - ClassBasedContainerExtensionContext nestedExtensionContext = new ClassBasedContainerExtensionContext( - outerExtensionContext, null, nestedClassDescriptor); + ClassExtensionContext nestedExtensionContext = new ClassExtensionContext(outerExtensionContext, null, + nestedClassDescriptor); assertThat(nestedExtensionContext.getParent()).containsSame(outerExtensionContext); } @@ -87,18 +86,17 @@ void tagsCanBeRetrievedInExtensionContext() { MethodTestDescriptor methodTestDescriptor = methodDescriptor(); outerClassDescriptor.addChild(methodTestDescriptor); - ClassBasedContainerExtensionContext outerExtensionContext = new ClassBasedContainerExtensionContext(null, null, - outerClassDescriptor); + ClassExtensionContext outerExtensionContext = new ClassExtensionContext(null, null, outerClassDescriptor); assertThat(outerExtensionContext.getTags()).containsExactly("outer-tag"); - ClassBasedContainerExtensionContext nestedExtensionContext = new ClassBasedContainerExtensionContext( - outerExtensionContext, null, nestedClassDescriptor); + ClassExtensionContext nestedExtensionContext = new ClassExtensionContext(outerExtensionContext, null, + nestedClassDescriptor); assertThat(nestedExtensionContext.getTags()).containsExactlyInAnyOrder("outer-tag", "nested-tag"); - MethodBasedTestExtensionContext testExtensionContext = new MethodBasedTestExtensionContext( - outerExtensionContext, null, methodTestDescriptor, new OuterClass(), new ThrowableCollector()); - assertThat(testExtensionContext.getTags()).containsExactlyInAnyOrder("outer-tag", "method-tag"); + MethodExtensionContext methodExtensionContext = new MethodExtensionContext(outerExtensionContext, null, + methodTestDescriptor, new OuterClass(), new ThrowableCollector()); + assertThat(methodExtensionContext.getTags()).containsExactlyInAnyOrder("outer-tag", "method-tag"); } @Test @@ -106,15 +104,14 @@ void fromMethodTestDescriptor() { MethodTestDescriptor methodTestDescriptor = methodDescriptor(); ClassTestDescriptor classTestDescriptor = outerClassDescriptor(methodTestDescriptor); - ClassBasedContainerExtensionContext classExtensionContext = new ClassBasedContainerExtensionContext(null, null, - classTestDescriptor); - MethodBasedTestExtensionContext testExtensionContext = new MethodBasedTestExtensionContext( - classExtensionContext, null, methodTestDescriptor, new OuterClass(), new ThrowableCollector()); + ClassExtensionContext classExtensionContext = new ClassExtensionContext(null, null, classTestDescriptor); + MethodExtensionContext methodExtensionContext = new MethodExtensionContext(classExtensionContext, null, + methodTestDescriptor, new OuterClass(), new ThrowableCollector()); assertAll("methodContext", // - () -> assertThat(testExtensionContext.getTestClass()).contains(OuterClass.class), // - () -> assertThat(testExtensionContext.getDisplayName()).isEqualTo(methodTestDescriptor.getDisplayName()), // - () -> assertThat(testExtensionContext.getParent()).contains(classExtensionContext), // - () -> assertThat(testExtensionContext.getTestInstance().get()).isExactlyInstanceOf(OuterClass.class) // + () -> assertThat(methodExtensionContext.getTestClass()).contains(OuterClass.class), // + () -> assertThat(methodExtensionContext.getDisplayName()).isEqualTo(methodTestDescriptor.getDisplayName()), // + () -> assertThat(methodExtensionContext.getParent()).contains(classExtensionContext), // + () -> assertThat(methodExtensionContext.getTestInstance().get()).isExactlyInstanceOf(OuterClass.class) // ); } @@ -122,7 +119,7 @@ void fromMethodTestDescriptor() { void reportEntriesArePublishedToExecutionContext() { ClassTestDescriptor classTestDescriptor = outerClassDescriptor(null); EngineExecutionListener engineExecutionListener = Mockito.spy(EngineExecutionListener.class); - ExtensionContext extensionContext = new ClassBasedContainerExtensionContext(null, engineExecutionListener, + ExtensionContext extensionContext = new ClassExtensionContext(null, engineExecutionListener, classTestDescriptor); Map map1 = Collections.singletonMap("key", "value"); @@ -146,9 +143,9 @@ void reportEntriesArePublishedToExecutionContext() { void usingStore() { MethodTestDescriptor methodTestDescriptor = methodDescriptor(); ClassTestDescriptor classTestDescriptor = outerClassDescriptor(methodTestDescriptor); - ExtensionContext parentContext = new ClassBasedContainerExtensionContext(null, null, classTestDescriptor); - MethodBasedTestExtensionContext childContext = new MethodBasedTestExtensionContext(parentContext, null, - methodTestDescriptor, new OuterClass(), new ThrowableCollector()); + ExtensionContext parentContext = new ClassExtensionContext(null, null, classTestDescriptor); + MethodExtensionContext childContext = new MethodExtensionContext(parentContext, null, methodTestDescriptor, + new OuterClass(), new ThrowableCollector()); ExtensionContext.Store childStore = childContext.getStore(); ExtensionContext.Store parentStore = parentContext.getStore(); diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/execution/JUnit5EngineExecutionContextTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/execution/JUnit5EngineExecutionContextTests.java index 211cd230cc1..90a0c5663f5 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/execution/JUnit5EngineExecutionContextTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/execution/JUnit5EngineExecutionContextTests.java @@ -15,7 +15,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.engine.descriptor.ClassBasedContainerExtensionContext; +import org.junit.jupiter.engine.descriptor.ClassExtensionContext; import org.junit.jupiter.engine.extension.ExtensionRegistry; import org.junit.platform.engine.ConfigurationParameters; import org.junit.platform.engine.EngineExecutionListener; @@ -47,8 +47,7 @@ void executionListenerIsHandedOnWhenContextIsExtended() { @Test void extendWithAllAttributes() { - ClassBasedContainerExtensionContext extensionContext = new ClassBasedContainerExtensionContext(null, null, - null); + ClassExtensionContext extensionContext = new ClassExtensionContext(null, null, null); ExtensionRegistry extensionRegistry = ExtensionRegistry.createRegistryWithDefaultExtensions(configParams); TestInstanceProvider testInstanceProvider = mock(TestInstanceProvider.class); JupiterEngineExecutionContext newContext = originalContext.extend() // @@ -64,12 +63,10 @@ void extendWithAllAttributes() { @Test void canOverrideAttributeWhenContextIsExtended() { - ClassBasedContainerExtensionContext extensionContext = new ClassBasedContainerExtensionContext(null, null, - null); + ClassExtensionContext extensionContext = new ClassExtensionContext(null, null, null); ExtensionRegistry extensionRegistry = ExtensionRegistry.createRegistryWithDefaultExtensions(configParams); TestInstanceProvider testInstanceProvider = mock(TestInstanceProvider.class); - ClassBasedContainerExtensionContext newExtensionContext = new ClassBasedContainerExtensionContext( - extensionContext, null, null); + ClassExtensionContext newExtensionContext = new ClassExtensionContext(extensionContext, null, null); JupiterEngineExecutionContext newContext = originalContext.extend() // .withExtensionContext(extensionContext) // diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterAllTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterAllTests.java index 800b3377873..b9ae1ded4f3 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterAllTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterAllTests.java @@ -23,8 +23,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.engine.AbstractJupiterTestEngineTests; import org.junit.jupiter.engine.JupiterTestEngine; import org.junit.platform.engine.test.event.ExecutionEventRecorder; @@ -248,12 +248,12 @@ static void afterAll() { private static class FooClassLevelCallbacks implements BeforeAllCallback, AfterAllCallback { @Override - public void beforeAll(ContainerExtensionContext context) { + public void beforeAll(ExtensionContext context) { callSequence.add("fooBeforeAllCallback"); } @Override - public void afterAll(ContainerExtensionContext context) { + public void afterAll(ExtensionContext context) { callSequence.add("fooAfterAllCallback"); } } @@ -261,12 +261,12 @@ public void afterAll(ContainerExtensionContext context) { private static class BarClassLevelCallbacks implements BeforeAllCallback, AfterAllCallback { @Override - public void beforeAll(ContainerExtensionContext context) { + public void beforeAll(ExtensionContext context) { callSequence.add("barBeforeAllCallback"); } @Override - public void afterAll(ContainerExtensionContext context) { + public void afterAll(ExtensionContext context) { callSequence.add("barAfterAllCallback"); } } @@ -274,12 +274,12 @@ public void afterAll(ContainerExtensionContext context) { private static class BazClassLevelCallbacks implements BeforeAllCallback, AfterAllCallback { @Override - public void beforeAll(ContainerExtensionContext context) { + public void beforeAll(ExtensionContext context) { callSequence.add("bazBeforeAllCallback"); } @Override - public void afterAll(ContainerExtensionContext context) { + public void afterAll(ExtensionContext context) { callSequence.add("bazAfterAllCallback"); } } @@ -287,12 +287,12 @@ public void afterAll(ContainerExtensionContext context) { private static class QuuxClassLevelCallbacks implements BeforeAllCallback, AfterAllCallback { @Override - public void beforeAll(ContainerExtensionContext context) { + public void beforeAll(ExtensionContext context) { callSequence.add("quuxBeforeAllCallback"); } @Override - public void afterAll(ContainerExtensionContext context) { + public void afterAll(ExtensionContext context) { callSequence.add("quuxAfterAllCallback"); } } @@ -300,7 +300,7 @@ public void afterAll(ContainerExtensionContext context) { private static class ExceptionThrowingBeforeAllCallback implements BeforeAllCallback { @Override - public void beforeAll(ContainerExtensionContext context) { + public void beforeAll(ExtensionContext context) { callSequence.add("exceptionThrowingBeforeAllCallback"); throw new RuntimeException("BeforeAllCallback"); } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterEachTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterEachTests.java index 50719af657a..1177d28cb3a 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterEachTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterEachTests.java @@ -27,7 +27,7 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ExtendWith; -import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.engine.AbstractJupiterTestEngineTests; import org.junit.jupiter.engine.JupiterTestEngine; import org.junit.platform.engine.test.event.ExecutionEventRecorder; @@ -495,12 +495,12 @@ void afterEach() { private static class FooMethodLevelCallbacks implements BeforeEachCallback, AfterEachCallback { @Override - public void beforeEach(TestExtensionContext context) { + public void beforeEach(ExtensionContext context) { callSequence.add("fooBeforeEachCallback"); } @Override - public void afterEach(TestExtensionContext context) { + public void afterEach(ExtensionContext context) { callSequence.add("fooAfterEachCallback"); actualExceptionInAfterEachCallback = context.getTestException(); } @@ -509,12 +509,12 @@ public void afterEach(TestExtensionContext context) { private static class BarMethodLevelCallbacks implements BeforeEachCallback, AfterEachCallback { @Override - public void beforeEach(TestExtensionContext context) { + public void beforeEach(ExtensionContext context) { callSequence.add("barBeforeEachCallback"); } @Override - public void afterEach(TestExtensionContext context) { + public void afterEach(ExtensionContext context) { callSequence.add("barAfterEachCallback"); } } @@ -522,12 +522,12 @@ public void afterEach(TestExtensionContext context) { private static class FizzMethodLevelCallbacks implements BeforeEachCallback, AfterEachCallback { @Override - public void beforeEach(TestExtensionContext context) { + public void beforeEach(ExtensionContext context) { callSequence.add("fizzBeforeEachCallback"); } @Override - public void afterEach(TestExtensionContext context) { + public void afterEach(ExtensionContext context) { callSequence.add("fizzAfterEachCallback"); } } @@ -535,7 +535,7 @@ public void afterEach(TestExtensionContext context) { private static class ExceptionThrowingBeforeEachCallback implements BeforeEachCallback { @Override - public void beforeEach(TestExtensionContext context) { + public void beforeEach(ExtensionContext context) { callSequence.add("exceptionThrowingBeforeEachCallback"); throw new EnigmaException("BeforeEachCallback"); } @@ -544,7 +544,7 @@ public void beforeEach(TestExtensionContext context) { private static class ExceptionThrowingAfterEachCallback implements AfterEachCallback { @Override - public void afterEach(TestExtensionContext context) { + public void afterEach(ExtensionContext context) { callSequence.add("exceptionThrowingAfterEachCallback"); throw new EnigmaException("AfterEachCallback"); } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterTestExecutionCallbackTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterTestExecutionCallbackTests.java index ca7d9ed1b73..2fe453477d4 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterTestExecutionCallbackTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/BeforeAndAfterTestExecutionCallbackTests.java @@ -29,7 +29,7 @@ import org.junit.jupiter.api.extension.AfterTestExecutionCallback; import org.junit.jupiter.api.extension.BeforeTestExecutionCallback; import org.junit.jupiter.api.extension.ExtendWith; -import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.engine.AbstractJupiterTestEngineTests; import org.junit.jupiter.engine.JupiterTestEngine; import org.junit.platform.engine.test.event.ExecutionEventRecorder; @@ -426,12 +426,12 @@ void afterEach() { private static class FooTestExecutionCallbacks implements BeforeTestExecutionCallback, AfterTestExecutionCallback { @Override - public void beforeTestExecution(TestExtensionContext context) { + public void beforeTestExecution(ExtensionContext context) { callSequence.add("fooBeforeTestExecutionCallback"); } @Override - public void afterTestExecution(TestExtensionContext context) { + public void afterTestExecution(ExtensionContext context) { callSequence.add("fooAfterTestExecutionCallback"); actualExceptionInAfterTestExecution = context.getTestException(); } @@ -440,12 +440,12 @@ public void afterTestExecution(TestExtensionContext context) { private static class BarTestExecutionCallbacks implements BeforeTestExecutionCallback, AfterTestExecutionCallback { @Override - public void beforeTestExecution(TestExtensionContext context) { + public void beforeTestExecution(ExtensionContext context) { callSequence.add("barBeforeTestExecutionCallback"); } @Override - public void afterTestExecution(TestExtensionContext context) { + public void afterTestExecution(ExtensionContext context) { callSequence.add("barAfterTestExecutionCallback"); } } @@ -453,12 +453,12 @@ public void afterTestExecution(TestExtensionContext context) { private static class FizzTestExecutionCallbacks implements BeforeTestExecutionCallback, AfterTestExecutionCallback { @Override - public void beforeTestExecution(TestExtensionContext context) { + public void beforeTestExecution(ExtensionContext context) { callSequence.add("fizzBeforeTestExecutionCallback"); } @Override - public void afterTestExecution(TestExtensionContext context) { + public void afterTestExecution(ExtensionContext context) { callSequence.add("fizzAfterTestExecutionCallback"); } } @@ -466,7 +466,7 @@ public void afterTestExecution(TestExtensionContext context) { private static class ExceptionThrowingBeforeTestExecutionCallback implements BeforeTestExecutionCallback { @Override - public void beforeTestExecution(TestExtensionContext context) { + public void beforeTestExecution(ExtensionContext context) { callSequence.add("exceptionThrowingBeforeTestExecutionCallback"); throw new EnigmaException("BeforeTestExecutionCallback"); } @@ -475,7 +475,7 @@ public void beforeTestExecution(TestExtensionContext context) { private static class ExceptionThrowingAfterTestExecutionCallback implements AfterTestExecutionCallback { @Override - public void afterTestExecution(TestExtensionContext context) { + public void afterTestExecution(ExtensionContext context) { callSequence.add("exceptionThrowingAfterTestExecutionCallback"); throw new EnigmaException("AfterTestExecutionCallback"); } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/ExtensionContextExecutionTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/ExtensionContextExecutionTests.java index dea7ae9797a..0851e37896e 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/ExtensionContextExecutionTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/ExtensionContextExecutionTests.java @@ -14,18 +14,17 @@ import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass; import static org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder.request; +import java.lang.reflect.Method; import java.util.Optional; import java.util.concurrent.atomic.AtomicInteger; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ParameterContext; import org.junit.jupiter.api.extension.ParameterResolutionException; import org.junit.jupiter.api.extension.ParameterResolver; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.engine.AbstractJupiterTestEngineTests; import org.junit.platform.engine.test.event.ExecutionEventRecorder; @@ -33,14 +32,17 @@ class ExtensionContextExecutionTests extends AbstractJupiterTestEngineTests { @Test @ExtendWith(ExtensionContextParameterResolver.class) - void extensionContextHierarchy(ExtensionContext testExtensionContext) { - assertThat(testExtensionContext).isInstanceOf(TestExtensionContext.class); + void extensionContextHierarchy(ExtensionContext methodExtensionContext) { + assertThat(methodExtensionContext).isNotNull(); + assertThat(methodExtensionContext.getElement()).containsInstanceOf(Method.class); - Optional classExtensionContext = testExtensionContext.getParent(); - assertThat(classExtensionContext).containsInstanceOf(ContainerExtensionContext.class); + Optional classExtensionContext = methodExtensionContext.getParent(); + assertThat(classExtensionContext).isNotEmpty(); + assertThat(classExtensionContext.orElse(null).getElement()).contains(ExtensionContextExecutionTests.class); Optional engineExtensionContext = classExtensionContext.orElse(null).getParent(); - assertThat(engineExtensionContext).containsInstanceOf(ContainerExtensionContext.class); + assertThat(engineExtensionContext).isNotEmpty(); + assertThat(engineExtensionContext.orElse(null).getElement()).isEmpty(); assertThat(engineExtensionContext.orElse(null).getParent()).isEmpty(); } @@ -87,7 +89,7 @@ static class B extends Parent { static class OnlyIncrementCounterOnce implements BeforeAllCallback { @Override - public void beforeAll(ContainerExtensionContext context) throws Exception { + public void beforeAll(ExtensionContext context) throws Exception { getRoot(context).getStore().getOrComputeIfAbsent("counter", key -> Parent.counter.incrementAndGet()); } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/ServiceLoaderExtension.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/ServiceLoaderExtension.java index 9cd6bfd7637..91c54a0a8bb 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/ServiceLoaderExtension.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/ServiceLoaderExtension.java @@ -11,7 +11,7 @@ package org.junit.jupiter.engine.extension; import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; /** * Demo extension for auto-detection of extensions loaded via Java's @@ -22,7 +22,7 @@ public class ServiceLoaderExtension implements BeforeAllCallback { @Override - public void beforeAll(ContainerExtensionContext context) throws Exception { + public void beforeAll(ExtensionContext context) throws Exception { } } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/TestExecutionExceptionHandlerTests.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/TestExecutionExceptionHandlerTests.java index 82ad570090f..5441b257e38 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/TestExecutionExceptionHandlerTests.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/TestExecutionExceptionHandlerTests.java @@ -35,8 +35,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestExecutionExceptionHandler; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.engine.AbstractJupiterTestEngineTests; import org.junit.platform.engine.test.event.ExecutionEventRecorder; import org.junit.platform.launcher.LauncherDiscoveryRequest; @@ -169,7 +169,7 @@ private static class RethrowException implements TestExecutionExceptionHandler { static boolean handleExceptionCalled = false; @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { assertTrue(throwable instanceof IOException); handleExceptionCalled = true; handlerCalls.add("rethrow"); @@ -183,7 +183,7 @@ private static class SwallowException implements TestExecutionExceptionHandler { static boolean handleExceptionCalled = false; @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { assertTrue(throwable instanceof IOException); handleExceptionCalled = true; handlerCalls.add("swallow"); @@ -196,7 +196,7 @@ private static class ConvertException implements TestExecutionExceptionHandler { static boolean handleExceptionCalled = false; @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { assertTrue(throwable instanceof RuntimeException); handleExceptionCalled = true; handlerCalls.add("convert"); @@ -209,7 +209,7 @@ private static class ShouldNotBeCalled implements TestExecutionExceptionHandler static boolean handleExceptionCalled = false; @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { handleExceptionCalled = true; } } diff --git a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/sub/SystemPropertyCondition.java b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/sub/SystemPropertyCondition.java index fbd6c6c52a5..97baaf139a8 100644 --- a/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/sub/SystemPropertyCondition.java +++ b/junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/sub/SystemPropertyCondition.java @@ -21,11 +21,9 @@ import org.junit.jupiter.api.extension.ConditionEvaluationResult; import org.junit.jupiter.api.extension.ContainerExecutionCondition; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestExecutionCondition; -import org.junit.jupiter.api.extension.TestExtensionContext; /** * Intentionally in a subpackage in order to properly test deactivation @@ -48,12 +46,12 @@ public class SystemPropertyCondition implements TestExecutionCondition, Containe } @Override - public ConditionEvaluationResult evaluateContainerExecutionCondition(ContainerExtensionContext context) { + public ConditionEvaluationResult evaluateContainerExecutionCondition(ExtensionContext context) { return evaluate(context); } @Override - public ConditionEvaluationResult evaluateTestExecutionCondition(TestExtensionContext context) { + public ConditionEvaluationResult evaluateTestExecutionCondition(ExtensionContext context) { return evaluate(context); } diff --git a/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/AbstractTestRuleSupport.java b/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/AbstractTestRuleSupport.java index 85b3f385537..92931746f84 100644 --- a/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/AbstractTestRuleSupport.java +++ b/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/AbstractTestRuleSupport.java @@ -17,8 +17,8 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestExecutionExceptionHandler; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.migrationsupport.rules.adapter.AbstractTestRuleAdapter; import org.junit.jupiter.migrationsupport.rules.adapter.GenericBeforeAndAfterAdvice; import org.junit.jupiter.migrationsupport.rules.member.TestRuleAnnotatedMember; @@ -49,12 +49,12 @@ protected Class getRuleType() { } @Override - public void beforeEach(TestExtensionContext context) throws Exception { + public void beforeEach(ExtensionContext context) throws Exception { invokeAppropriateMethodOnRuleAnnotatedMembers(context, GenericBeforeAndAfterAdvice::before); } @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { invokeAppropriateMethodOnRuleAnnotatedMembers(context, advice -> { try { advice.handleTestExecutionException(throwable); @@ -66,11 +66,11 @@ public void handleTestExecutionException(TestExtensionContext context, Throwable } @Override - public void afterEach(TestExtensionContext context) throws Exception { + public void afterEach(ExtensionContext context) throws Exception { invokeAppropriateMethodOnRuleAnnotatedMembers(context, GenericBeforeAndAfterAdvice::after); } - private void invokeAppropriateMethodOnRuleAnnotatedMembers(TestExtensionContext context, + private void invokeAppropriateMethodOnRuleAnnotatedMembers(ExtensionContext context, Consumer methodCaller) { Object testInstance = context.getTestInstance().orElseThrow( diff --git a/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/ExpectedExceptionSupport.java b/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/ExpectedExceptionSupport.java index a1998186339..8c0b4e23425 100644 --- a/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/ExpectedExceptionSupport.java +++ b/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/ExpectedExceptionSupport.java @@ -17,10 +17,10 @@ import java.util.function.Function; import org.junit.jupiter.api.extension.AfterEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext.Namespace; import org.junit.jupiter.api.extension.ExtensionContext.Store; import org.junit.jupiter.api.extension.TestExecutionExceptionHandler; -import org.junit.jupiter.api.extension.TestExtensionContext; import org.junit.jupiter.migrationsupport.rules.adapter.AbstractTestRuleAdapter; import org.junit.jupiter.migrationsupport.rules.adapter.ExpectedExceptionAdapter; import org.junit.jupiter.migrationsupport.rules.member.TestRuleAnnotatedMember; @@ -56,14 +56,14 @@ public class ExpectedExceptionSupport implements AfterEachCallback, TestExecutio ExpectedException.class); @Override - public void handleTestExecutionException(TestExtensionContext context, Throwable throwable) throws Throwable { + public void handleTestExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { getStore(context).put(EXCEPTION_WAS_HANDLED, TRUE); this.methodSupport.handleTestExecutionException(context, throwable); this.fieldSupport.handleTestExecutionException(context, throwable); } @Override - public void afterEach(TestExtensionContext context) throws Exception { + public void afterEach(ExtensionContext context) throws Exception { boolean exceptionWasHandled = getStore(context).getOrComputeIfAbsent(EXCEPTION_WAS_HANDLED, key -> FALSE, Boolean.class); if (!exceptionWasHandled) { @@ -72,7 +72,7 @@ public void afterEach(TestExtensionContext context) throws Exception { } } - private Store getStore(TestExtensionContext context) { + private Store getStore(ExtensionContext context) { return context.getStore(Namespace.create(ExpectedExceptionSupport.class, context.getUniqueId())); } diff --git a/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/ExternalResourceSupport.java b/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/ExternalResourceSupport.java index e7f77ab6dfa..8d70239b8db 100644 --- a/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/ExternalResourceSupport.java +++ b/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/ExternalResourceSupport.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.migrationsupport.rules.adapter.AbstractTestRuleAdapter; import org.junit.jupiter.migrationsupport.rules.adapter.ExternalResourceAdapter; import org.junit.jupiter.migrationsupport.rules.member.TestRuleAnnotatedMember; @@ -53,13 +53,13 @@ public class ExternalResourceSupport implements BeforeEachCallback, AfterEachCal ExternalResource.class); @Override - public void beforeEach(TestExtensionContext context) throws Exception { + public void beforeEach(ExtensionContext context) throws Exception { this.fieldSupport.beforeEach(context); this.methodSupport.beforeEach(context); } @Override - public void afterEach(TestExtensionContext context) throws Exception { + public void afterEach(ExtensionContext context) throws Exception { this.methodSupport.afterEach(context); this.fieldSupport.afterEach(context); } diff --git a/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/VerifierSupport.java b/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/VerifierSupport.java index 8247ddb90bd..667e06eea66 100644 --- a/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/VerifierSupport.java +++ b/junit-jupiter-migrationsupport/src/main/java/org/junit/jupiter/migrationsupport/rules/VerifierSupport.java @@ -15,7 +15,7 @@ import java.util.function.Function; import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.TestExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.migrationsupport.rules.adapter.AbstractTestRuleAdapter; import org.junit.jupiter.migrationsupport.rules.adapter.VerifierAdapter; import org.junit.jupiter.migrationsupport.rules.member.TestRuleAnnotatedMember; @@ -51,7 +51,7 @@ public class VerifierSupport implements AfterEachCallback { Verifier.class); @Override - public void afterEach(TestExtensionContext context) throws Exception { + public void afterEach(ExtensionContext context) throws Exception { this.fieldSupport.afterEach(context); this.methodSupport.afterEach(context); } diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestExtension.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestExtension.java index 3f40bf9837c..9825cc468d0 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestExtension.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/ParameterizedTestExtension.java @@ -18,7 +18,7 @@ import java.util.logging.Logger; import java.util.stream.Stream; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider; import org.junit.jupiter.params.provider.Arguments; @@ -39,13 +39,12 @@ class ParameterizedTestExtension implements TestTemplateInvocationContextProvide private static final Logger logger = Logger.getLogger(ParameterizedTestExtension.class.getName()); @Override - public boolean supportsTestTemplate(ContainerExtensionContext context) { + public boolean supportsTestTemplate(ExtensionContext context) { return isAnnotated(context.getTestMethod(), ParameterizedTest.class); } @Override - public Stream provideTestTemplateInvocationContexts( - ContainerExtensionContext context) { + public Stream provideTestTemplateInvocationContexts(ExtensionContext context) { Method templateMethod = Preconditions.notNull(context.getTestMethod().orElse(null), "test method must not be null"); @@ -78,8 +77,7 @@ private ParameterizedTestNameFormatter createNameFormatter(Method templateMethod return new ParameterizedTestNameFormatter(name); } - protected static Stream arguments(ArgumentsProvider provider, - ContainerExtensionContext context) { + protected static Stream arguments(ArgumentsProvider provider, ExtensionContext context) { try { return provider.provideArguments(context); } diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ArgumentsProvider.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ArgumentsProvider.java index 0c7472bdde7..b836132a880 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ArgumentsProvider.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ArgumentsProvider.java @@ -14,7 +14,7 @@ import java.util.stream.Stream; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.platform.commons.meta.API; /** @@ -42,6 +42,6 @@ public interface ArgumentsProvider { * @param context the current extension context; never {@code null} * @return a stream of arguments; never {@code null} */ - Stream provideArguments(ContainerExtensionContext context) throws Exception; + Stream provideArguments(ExtensionContext context) throws Exception; } diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvArgumentsProvider.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvArgumentsProvider.java index 767781114f8..a6251b436f9 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvArgumentsProvider.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvArgumentsProvider.java @@ -16,7 +16,7 @@ import com.univocity.parsers.csv.CsvParser; import com.univocity.parsers.csv.CsvParserSettings; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.support.AnnotationConsumer; /** @@ -34,7 +34,7 @@ public void accept(CsvSource annotation) { } @Override - public Stream provideArguments(ContainerExtensionContext context) { + public Stream provideArguments(ExtensionContext context) { CsvParserSettings settings = new CsvParserSettings(); settings.getFormat().setDelimiter(delimiter); settings.getFormat().setQuote('\''); diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvFileArgumentsProvider.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvFileArgumentsProvider.java index e8c39d445b8..488165af332 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvFileArgumentsProvider.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/CsvFileArgumentsProvider.java @@ -25,7 +25,7 @@ import com.univocity.parsers.csv.CsvParser; import com.univocity.parsers.csv.CsvParserSettings; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.support.AnnotationConsumer; import org.junit.platform.commons.JUnitException; import org.junit.platform.commons.util.Preconditions; @@ -60,7 +60,7 @@ public void accept(CsvFileSource annotation) { } @Override - public Stream provideArguments(ContainerExtensionContext context) { + public Stream provideArguments(ExtensionContext context) { // @formatter:off return Arrays.stream(resources) .map(resource -> openInputStream(context, resource)) @@ -69,7 +69,7 @@ public Stream provideArguments(ContainerExtensionContext co // @formatter:on } - private InputStream openInputStream(ContainerExtensionContext context, String resource) { + private InputStream openInputStream(ExtensionContext context, String resource) { Class testClass = context.getTestClass().orElseThrow( () -> new JUnitException("Cannot load classpath resource without test class")); return Preconditions.notNull(inputStreamProvider.apply(testClass, resource), diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/EnumArgumentsProvider.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/EnumArgumentsProvider.java index fd80258f835..493d14032a8 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/EnumArgumentsProvider.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/EnumArgumentsProvider.java @@ -17,7 +17,7 @@ import java.util.Set; import java.util.stream.Stream; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.support.AnnotationConsumer; import org.junit.platform.commons.util.Preconditions; @@ -46,7 +46,7 @@ public void accept(EnumSource enumSource) { } @Override - public Stream provideArguments(ContainerExtensionContext context) { + public Stream provideArguments(ExtensionContext context) { return constants.stream().map(Arguments::of); } diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/MethodArgumentsProvider.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/MethodArgumentsProvider.java index 7c8b5163e87..46c7dcec50a 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/MethodArgumentsProvider.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/MethodArgumentsProvider.java @@ -13,7 +13,7 @@ import java.util.Arrays; import java.util.stream.Stream; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.support.AnnotationConsumer; import org.junit.platform.commons.JUnitException; import org.junit.platform.commons.util.CollectionUtils; @@ -32,7 +32,7 @@ public void accept(MethodSource annotation) { } @Override - public Stream provideArguments(ContainerExtensionContext context) { + public Stream provideArguments(ExtensionContext context) { Class testClass = context.getTestClass() // .orElseThrow(() -> new JUnitException("Cannot invoke method without test class")); // @formatter:off diff --git a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ValueArgumentsProvider.java b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ValueArgumentsProvider.java index a87aba7dd04..5a4282a2de4 100644 --- a/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ValueArgumentsProvider.java +++ b/junit-jupiter-params/src/main/java/org/junit/jupiter/params/provider/ValueArgumentsProvider.java @@ -18,7 +18,7 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.support.AnnotationConsumer; import org.junit.platform.commons.util.Preconditions; @@ -43,7 +43,7 @@ public void accept(ValueSource source) { } @Override - public Stream provideArguments(ContainerExtensionContext context) { + public Stream provideArguments(ExtensionContext context) { return Arrays.stream(arguments).map(Arguments::of); } diff --git a/junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestExtensionTests.java b/junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestExtensionTests.java index 4dbcb2c2b79..c69c6ec9493 100644 --- a/junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestExtensionTests.java +++ b/junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestExtensionTests.java @@ -26,7 +26,6 @@ import java.util.stream.Stream; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.TestTemplateInvocationContext; import org.junit.jupiter.params.provider.Arguments; @@ -41,28 +40,28 @@ class ParameterizedTestExtensionTests { @Test void supportsReturnsFalseForMissingTestMethod() { - ContainerExtensionContext extensionContextWithoutTestMethod = getExtensionContextReturningSingleMethod( + ExtensionContext extensionContextWithoutTestMethod = getExtensionContextReturningSingleMethod( new TestCaseWithoutMethod()); assertFalse(this.parameterizedTestExtension.supportsTestTemplate(extensionContextWithoutTestMethod)); } @Test void supportsReturnsFalseForTestMethodWithoutParameterizedTestAnnotation() { - ContainerExtensionContext extensionContextWithUnAnnotatedTestMethod = getExtensionContextReturningSingleMethod( + ExtensionContext extensionContextWithUnAnnotatedTestMethod = getExtensionContextReturningSingleMethod( new TestCaseWithMethod()); assertFalse(this.parameterizedTestExtension.supportsTestTemplate(extensionContextWithUnAnnotatedTestMethod)); } @Test void supportsReturnsTrueForTestMethodWithParameterizedTestAnnotation() { - ContainerExtensionContext extensionContextWithAnnotatedTestMethod = getExtensionContextReturningSingleMethod( + ExtensionContext extensionContextWithAnnotatedTestMethod = getExtensionContextReturningSingleMethod( new TestCaseWithAnnotatedMethod()); assertTrue(this.parameterizedTestExtension.supportsTestTemplate(extensionContextWithAnnotatedTestMethod)); } @Test void streamsReturnedByProvidersAreClosedWhenCallingProvide() { - ContainerExtensionContext extensionContext = getExtensionContextReturningSingleMethod( + ExtensionContext extensionContext = getExtensionContextReturningSingleMethod( new TestCaseWithArgumentSourceAnnotatedMethod()); Stream stream = this.parameterizedTestExtension.provideTestTemplateInvocationContexts( @@ -84,7 +83,7 @@ void argumentsRethrowsOriginalExceptionFromProviderAsUncheckedException() { assertEquals("a message", exception.getMessage()); } - private ContainerExtensionContext getExtensionContextReturningSingleMethod(Object testCase) { + private ExtensionContext getExtensionContextReturningSingleMethod(Object testCase) { // @formatter:off Optional optional = Arrays.stream(testCase.getClass().getDeclaredMethods()) @@ -92,7 +91,7 @@ private ContainerExtensionContext getExtensionContextReturningSingleMethod(Objec .findFirst(); // @formatter:on - return new ContainerExtensionContext() { + return new ExtensionContext() { @Override public Optional getTestMethod() { @@ -178,7 +177,7 @@ void method(String parameter) { static class ArgumentsProviderWithCloseHandler implements ArgumentsProvider { @Override - public Stream provideArguments(ContainerExtensionContext context) { + public Stream provideArguments(ExtensionContext context) { Stream argumentsStream = Stream.of("foo", "bar").map(Arguments::of); return argumentsStream.onClose(() -> streamWasClosed = true); } diff --git a/junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestIntegrationTests.java b/junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestIntegrationTests.java index 1dafb973a26..180f90b8c61 100644 --- a/junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestIntegrationTests.java +++ b/junit-jupiter-params/src/test/java/org/junit/jupiter/params/ParameterizedTestIntegrationTests.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ParameterContext; import org.junit.jupiter.engine.JupiterTestEngine; import org.junit.jupiter.params.converter.ArgumentConversionException; @@ -217,7 +217,7 @@ static Stream providerMethod() { private static class TwoSingleStringArgumentsProvider implements ArgumentsProvider { @Override - public Stream provideArguments(ContainerExtensionContext context) throws Exception { + public Stream provideArguments(ExtensionContext context) throws Exception { return Stream.of(Arguments.of("foo"), Arguments.of("bar")); } } diff --git a/junit-jupiter-params/src/test/java/org/junit/jupiter/params/provider/CsvFileArgumentsProviderTests.java b/junit-jupiter-params/src/test/java/org/junit/jupiter/params/provider/CsvFileArgumentsProviderTests.java index 8814ae101b8..edf8e708b06 100644 --- a/junit-jupiter-params/src/test/java/org/junit/jupiter/params/provider/CsvFileArgumentsProviderTests.java +++ b/junit-jupiter-params/src/test/java/org/junit/jupiter/params/provider/CsvFileArgumentsProviderTests.java @@ -24,7 +24,7 @@ import java.util.stream.Stream; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.platform.commons.util.PreconditionViolationException; /** @@ -118,7 +118,7 @@ private Stream provideArguments(InputStream inputStream, String lineSe private Stream provide(CsvFileArgumentsProvider provider, CsvFileSource annotation) { provider.accept(annotation); - ContainerExtensionContext context = mock(ContainerExtensionContext.class); + ExtensionContext context = mock(ExtensionContext.class); when(context.getTestClass()).thenReturn(Optional.of(CsvFileArgumentsProviderTests.class)); return provider.provideArguments(context).map(Arguments::get); } diff --git a/junit-jupiter-params/src/test/java/org/junit/jupiter/params/provider/MethodArgumentsProviderTests.java b/junit-jupiter-params/src/test/java/org/junit/jupiter/params/provider/MethodArgumentsProviderTests.java index bc1b8ce0ee5..013cb317d2a 100644 --- a/junit-jupiter-params/src/test/java/org/junit/jupiter/params/provider/MethodArgumentsProviderTests.java +++ b/junit-jupiter-params/src/test/java/org/junit/jupiter/params/provider/MethodArgumentsProviderTests.java @@ -22,7 +22,7 @@ import java.util.stream.Stream; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ContainerExtensionContext; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.platform.commons.JUnitException; import org.junit.platform.commons.util.PreconditionViolationException; @@ -135,7 +135,7 @@ private Stream provideArguments(Class testClass, String... methodNa MethodSource annotation = mock(MethodSource.class); when(annotation.value()).thenReturn(methodNames); - ContainerExtensionContext context = mock(ContainerExtensionContext.class); + ExtensionContext context = mock(ExtensionContext.class); when(context.getTestClass()).thenReturn(Optional.ofNullable(testClass)); MethodArgumentsProvider provider = new MethodArgumentsProvider(); diff --git a/platform-tests/src/test/java/org/junit/jupiter/extensions/TempDirectory.java b/platform-tests/src/test/java/org/junit/jupiter/extensions/TempDirectory.java index ada46c7dbb0..8a35a9beb16 100644 --- a/platform-tests/src/test/java/org/junit/jupiter/extensions/TempDirectory.java +++ b/platform-tests/src/test/java/org/junit/jupiter/extensions/TempDirectory.java @@ -28,7 +28,6 @@ import org.junit.jupiter.api.extension.ParameterContext; import org.junit.jupiter.api.extension.ParameterResolutionException; import org.junit.jupiter.api.extension.ParameterResolver; -import org.junit.jupiter.api.extension.TestExtensionContext; /** * @since 1.0 @@ -55,7 +54,7 @@ public Object resolveParameter(ParameterContext parameterContext, ExtensionConte } @Override - public void afterEach(TestExtensionContext context) throws Exception { + public void afterEach(ExtensionContext context) throws Exception { Path tempDirectory = (Path) getLocalStore(context).get(KEY); if (tempDirectory != null) { delete(tempDirectory);