Skip to content

Commit 4c55341

Browse files
committed
Remove testInstance parameter from TestInstancePostProcessor
Issue: #910
1 parent 3640af5 commit 4c55341

File tree

6 files changed

+18
-16
lines changed

6 files changed

+18
-16
lines changed

junit-jupiter-api/src/main/java/org/junit/jupiter/api/extension/TestInstancePostProcessor.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@
3030
public interface TestInstancePostProcessor extends Extension {
3131

3232
/**
33-
* Callback for post-processing the supplied test instance.
33+
* Callback for post-processing the test instance in the supplied
34+
* {@link ExtensionContext}.
3435
*
35-
* @param testInstance the instance to post-process; never {@code null}
3636
* @param context the current extension context; never {@code null}
37+
* @see ExtensionContext#getTestInstance()
3738
*/
38-
void postProcessTestInstance(Object testInstance, ExtensionContext context) throws Exception;
39+
void postProcessTestInstance(ExtensionContext context) throws Exception;
3940

4041
}

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/descriptor/ClassTestDescriptor.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ private Object instantiateAndPostProcessTestInstance(JupiterEngineExecutionConte
193193

194194
Object instance = instantiateTestClass(context, registry, extensionContext);
195195
testInstanceConsumer.accept(instance);
196-
invokeTestInstancePostProcessors(instance, registry, extensionContext);
196+
invokeTestInstancePostProcessors(registry, extensionContext);
197197
return instance;
198198
}
199199

@@ -204,11 +204,9 @@ protected Object instantiateTestClass(JupiterEngineExecutionContext parentExecut
204204
return executableInvoker.invoke(constructor, extensionContext, registry);
205205
}
206206

207-
private void invokeTestInstancePostProcessors(Object instance, ExtensionRegistry registry,
208-
ExtensionContext context) {
209-
207+
private void invokeTestInstancePostProcessors(ExtensionRegistry registry, ExtensionContext context) {
210208
registry.stream(TestInstancePostProcessor.class).forEach(
211-
extension -> executeAndMaskThrowable(() -> extension.postProcessTestInstance(instance, context)));
209+
extension -> executeAndMaskThrowable(() -> extension.postProcessTestInstance(context)));
212210
}
213211

214212
private void invokeBeforeAllCallbacks(JupiterEngineExecutionContext context) {

junit-jupiter-engine/src/test/java/org/junit/jupiter/api/extension/KitchenSinkExtension.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void afterAll(ExtensionContext context) throws Exception {
8585
// --- Dependency Injection ------------------------------------------------
8686

8787
@Override
88-
public void postProcessTestInstance(Object testInstance, ExtensionContext context) throws Exception {
88+
public void postProcessTestInstance(ExtensionContext context) throws Exception {
8989
}
9090

9191
@Override
@@ -118,7 +118,6 @@ public boolean supportsTestTemplate(ExtensionContext context) {
118118

119119
@Override
120120
public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext context) {
121-
122121
return null;
123122
}
124123

junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestInstanceLifecycleTests.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -877,9 +877,8 @@ public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext con
877877
}
878878

879879
@Override
880-
public void postProcessTestInstance(Object testInstance, ExtensionContext context) {
881-
assertNotNull(testInstance);
882-
context.getTestInstance().ifPresent(instance -> assertSame(testInstance, instance));
880+
public void postProcessTestInstance(ExtensionContext context) {
881+
Object testInstance = context.getTestInstance().orElse(null);
883882
instanceMap.put(postProcessTestInstanceKey(context.getTestClass().get()), testInstance);
884883
}
885884

junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/TestTemplateInvocationTests.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -508,9 +508,11 @@ public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContex
508508

509509
private static class SingleInvocationContextProviderWithDisabledInvocations
510510
extends SingleInvocationContextProvider {
511+
511512
@Override
512513
public Stream<TestTemplateInvocationContext> provideTestTemplateInvocationContexts(ExtensionContext context) {
513514
return Stream.of(new TestTemplateInvocationContext() {
515+
514516
@Override
515517
public List<Extension> getAdditionalExtensions() {
516518
return singletonList(new AlwaysDisabledExecutionCondition());
@@ -645,7 +647,8 @@ public String getDisplayName(int invocationIndex) {
645647

646648
@Override
647649
public List<Extension> getAdditionalExtensions() {
648-
return singletonList((TestInstancePostProcessor) (testInstance, context) -> {
650+
return singletonList((TestInstancePostProcessor) (context) -> {
651+
Object testInstance = context.getTestInstance().orElse(null);
649652
Field field = testInstance.getClass().getDeclaredField("parameterInstanceVariable");
650653
field.setAccessible(true);
651654
field.set(testInstance, argument);

junit-jupiter-engine/src/test/java/org/junit/jupiter/engine/extension/TestInstancePostProcessorTests.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ void test() {
159159
private static class FooInstancePostProcessor implements TestInstancePostProcessor {
160160

161161
@Override
162-
public void postProcessTestInstance(Object testInstance, ExtensionContext context) throws Exception {
162+
public void postProcessTestInstance(ExtensionContext context) throws Exception {
163+
Object testInstance = context.getTestInstance().orElse(null);
163164
if (testInstance instanceof Named) {
164165
((Named) testInstance).setName("foo");
165166
}
@@ -170,7 +171,8 @@ public void postProcessTestInstance(Object testInstance, ExtensionContext contex
170171
private static class BarInstancePostProcessor implements TestInstancePostProcessor {
171172

172173
@Override
173-
public void postProcessTestInstance(Object testInstance, ExtensionContext context) throws Exception {
174+
public void postProcessTestInstance(ExtensionContext context) throws Exception {
175+
Object testInstance = context.getTestInstance().orElse(null);
174176
if (testInstance instanceof Named) {
175177
((Named) testInstance).setName("bar");
176178
}

0 commit comments

Comments
 (0)