|
22 | 22 | import java.util.Collections;
|
23 | 23 | import java.util.List;
|
24 | 24 | import java.util.Set;
|
25 |
| -import java.util.function.Consumer; |
26 | 25 | import java.util.function.Function;
|
27 | 26 |
|
28 | 27 | import org.junit.jupiter.api.TestInstance;
|
|
32 | 31 | import org.junit.jupiter.api.extension.Extension;
|
33 | 32 | import org.junit.jupiter.api.extension.ExtensionContext;
|
34 | 33 | import org.junit.jupiter.api.extension.TestInstancePostProcessor;
|
| 34 | +import org.junit.jupiter.engine.execution.AbstractExtensionContext; |
35 | 35 | import org.junit.jupiter.engine.execution.AfterEachMethodAdapter;
|
36 | 36 | import org.junit.jupiter.engine.execution.BeforeEachMethodAdapter;
|
37 | 37 | import org.junit.jupiter.engine.execution.ExecutableInvoker;
|
@@ -176,29 +176,29 @@ private TestInstanceProvider testInstanceProvider(JupiterEngineExecutionContext
|
176 | 176 | if (this.lifecycle == Lifecycle.PER_CLASS) {
|
177 | 177 | // Eagerly load test instance for BeforeAllCallbacks, if necessary,
|
178 | 178 | // and store the instance in the ExtensionContext.
|
179 |
| - Object instance = instantiateAndPostProcessTestInstance(parentExecutionContext, extensionContext, registry, |
180 |
| - extensionContext::setTestInstance); |
181 |
| - return childRegistry -> instance; |
| 179 | + Object instance = instantiateAndPostProcessTestInstance(parentExecutionContext, extensionContext, registry); |
| 180 | + return (childContext, childRegistry) -> { |
| 181 | + childContext.setTestInstance(instance); |
| 182 | + return instance; |
| 183 | + }; |
182 | 184 | }
|
183 | 185 |
|
184 | 186 | // else Lifecycle.PER_METHOD
|
185 |
| - return childRegistry -> instantiateAndPostProcessTestInstance(parentExecutionContext, extensionContext, |
186 |
| - childRegistry.orElse(registry), instance -> { |
187 |
| - // no extension context update required |
188 |
| - }); |
| 187 | + return (childContext, childRegistry) -> instantiateAndPostProcessTestInstance(parentExecutionContext, |
| 188 | + childContext, childRegistry.orElse(registry)); |
189 | 189 | }
|
190 | 190 |
|
191 | 191 | private Object instantiateAndPostProcessTestInstance(JupiterEngineExecutionContext context,
|
192 |
| - ExtensionContext extensionContext, ExtensionRegistry registry, Consumer<Object> testInstanceConsumer) { |
| 192 | + AbstractExtensionContext<?> extensionContext, ExtensionRegistry registry) { |
193 | 193 |
|
194 | 194 | Object instance = instantiateTestClass(context, registry, extensionContext);
|
195 |
| - testInstanceConsumer.accept(instance); |
| 195 | + extensionContext.setTestInstance(instance); |
196 | 196 | invokeTestInstancePostProcessors(registry, extensionContext);
|
197 | 197 | return instance;
|
198 | 198 | }
|
199 | 199 |
|
200 | 200 | protected Object instantiateTestClass(JupiterEngineExecutionContext parentExecutionContext,
|
201 |
| - ExtensionRegistry registry, ExtensionContext extensionContext) { |
| 201 | + ExtensionRegistry registry, AbstractExtensionContext<?> extensionContext) { |
202 | 202 |
|
203 | 203 | Constructor<?> constructor = ReflectionUtils.getDeclaredConstructor(this.testClass);
|
204 | 204 | return executableInvoker.invoke(constructor, extensionContext, registry);
|
|
0 commit comments