Skip to content

Commit f60051c

Browse files
Use TestInstances API from JUnit Jupiter (#2719)
Co-authored-by: Richard North <[email protected]>
1 parent b04540b commit f60051c

File tree

1 file changed

+6
-21
lines changed

1 file changed

+6
-21
lines changed

modules/junit-jupiter/src/main/java/org/testcontainers/junit/jupiter/TestcontainersExtension.java

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.junit.jupiter.api.extension.ExtensionContext.Namespace;
1313
import org.junit.jupiter.api.extension.ExtensionContext.Store;
1414
import org.junit.jupiter.api.extension.ExtensionContext.Store.CloseableResource;
15-
import org.junit.jupiter.api.extension.TestInstancePostProcessor;
1615
import org.junit.platform.commons.support.AnnotationSupport;
1716
import org.junit.platform.commons.util.AnnotationUtils;
1817
import org.junit.platform.commons.util.Preconditions;
@@ -23,7 +22,8 @@
2322
import org.testcontainers.lifecycle.TestLifecycleAware;
2423

2524
import java.lang.reflect.Field;
26-
import java.lang.reflect.Method;
25+
import java.util.ArrayList;
26+
import java.util.Collections;
2727
import java.util.LinkedHashSet;
2828
import java.util.List;
2929
import java.util.Optional;
@@ -34,20 +34,13 @@
3434
import static java.util.stream.Collectors.toList;
3535
import static org.testcontainers.junit.jupiter.FilesystemFriendlyNameGenerator.filesystemFriendlyNameOf;
3636

37-
class TestcontainersExtension implements BeforeEachCallback, BeforeAllCallback, AfterEachCallback, AfterAllCallback, ExecutionCondition, TestInstancePostProcessor {
37+
class TestcontainersExtension implements BeforeEachCallback, BeforeAllCallback, AfterEachCallback, AfterAllCallback, ExecutionCondition {
3838

3939
private static final Namespace NAMESPACE = Namespace.create(TestcontainersExtension.class);
4040

41-
private static final String TEST_INSTANCE = "testInstance";
4241
private static final String SHARED_LIFECYCLE_AWARE_CONTAINERS = "sharedLifecycleAwareContainers";
4342
private static final String LOCAL_LIFECYCLE_AWARE_CONTAINERS = "localLifecycleAwareContainers";
4443

45-
@Override
46-
public void postProcessTestInstance(final Object testInstance, final ExtensionContext context) {
47-
Store store = context.getStore(NAMESPACE);
48-
store.put(TEST_INSTANCE, testInstance);
49-
}
50-
5144
@Override
5245
public void beforeAll(ExtensionContext context) {
5346
Class<?> testClass = context.getTestClass()
@@ -156,17 +149,9 @@ boolean isDockerAvailable() {
156149
}
157150

158151
private Set<Object> collectParentTestInstances(final ExtensionContext context) {
159-
Set<Object> testInstances = new LinkedHashSet<>();
160-
Optional<ExtensionContext> current = Optional.of(context);
161-
while (current.isPresent()) {
162-
ExtensionContext ctx = current.get();
163-
Object testInstance = ctx.getStore(NAMESPACE).remove(TEST_INSTANCE);
164-
if (testInstance != null) {
165-
testInstances.add(testInstance);
166-
}
167-
current = ctx.getParent();
168-
}
169-
return testInstances;
152+
List<Object> allInstances = new ArrayList<>(context.getRequiredTestInstances().getAllInstances());
153+
Collections.reverse(allInstances);
154+
return new LinkedHashSet<>(allInstances);
170155
}
171156

172157
private List<StoreAdapter> findSharedContainers(Class<?> testClass) {

0 commit comments

Comments
 (0)