diff --git a/src/main/java/org/codehaus/plexus/testing/PlexusExtension.java b/src/main/java/org/codehaus/plexus/testing/PlexusExtension.java index c45e782..7eb5458 100644 --- a/src/main/java/org/codehaus/plexus/testing/PlexusExtension.java +++ b/src/main/java/org/codehaus/plexus/testing/PlexusExtension.java @@ -98,9 +98,9 @@ public PlexusContainer get() { public void beforeEach(ExtensionContext context) throws Exception { setTestBasedir(getDefaultBasedir(), context); - ((DefaultPlexusContainer) getContainer(context)) - .addPlexusInjector( - Collections.emptyList(), binder -> binder.requestInjection(context.getRequiredTestInstance())); + context.getRequiredTestInstances().getAllInstances().forEach(testInstance -> ((DefaultPlexusContainer) + getContainer(context)) + .addPlexusInjector(Collections.emptyList(), binder -> binder.requestInjection(testInstance))); } private PlexusContainer setupContainer(ExtensionContext context) { @@ -175,17 +175,19 @@ protected void customizeContainerConfiguration(ContainerConfiguration containerC private void testInstanceCustomizeContainerConfiguration( ContainerConfiguration containerConfiguration, ExtensionContext context) { - Object testInstance = context.getRequiredTestInstance(); - if (testInstance instanceof PlexusTestConfiguration) { - ((PlexusTestConfiguration) testInstance).customizeConfiguration(containerConfiguration); - } + context.getRequiredTestInstances().getAllInstances().forEach(testInstance -> { + if (testInstance instanceof PlexusTestConfiguration) { + ((PlexusTestConfiguration) testInstance).customizeConfiguration(containerConfiguration); + } + }); } private void testInstanceCustomizeContainer(PlexusContainer container, ExtensionContext context) { - Object testInstance = context.getRequiredTestInstance(); - if (testInstance instanceof PlexusTestConfiguration) { - ((PlexusTestConfiguration) testInstance).customizeContainer(container); - } + context.getRequiredTestInstances().getAllInstances().forEach(testInstance -> { + if (testInstance instanceof PlexusTestConfiguration) { + ((PlexusTestConfiguration) testInstance).customizeContainer(container); + } + }); } protected void customizeContext(Context context) {} diff --git a/src/test/java/org/codehaus/plexus/testing/PlexusTestCustomizeTest.java b/src/test/java/org/codehaus/plexus/testing/PlexusTestCustomizeTest.java index 6e5af9c..0aa8dee 100644 --- a/src/test/java/org/codehaus/plexus/testing/PlexusTestCustomizeTest.java +++ b/src/test/java/org/codehaus/plexus/testing/PlexusTestCustomizeTest.java @@ -22,6 +22,7 @@ import javax.inject.Inject; import org.codehaus.plexus.PlexusContainer; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; @@ -62,5 +63,14 @@ void dependencyShouldBeInjected() { assertNotNull(testJavaxComponent); assertSame(testJavaxComponent.getTestComponent2(), mockComponent2); } + + @Nested + class NestedTest { + @Test + void nestedDependencyShouldAlsoBeInjected() { + assertNotNull(testJavaxComponent); + assertSame(testJavaxComponent.getTestComponent2(), mockComponent2); + } + } } // END SNIPPET: test-customize-class diff --git a/src/test/java/org/codehaus/plexus/testing/PlexusTestJavaxTest.java b/src/test/java/org/codehaus/plexus/testing/PlexusTestJavaxTest.java index b2a07b3..082cea8 100644 --- a/src/test/java/org/codehaus/plexus/testing/PlexusTestJavaxTest.java +++ b/src/test/java/org/codehaus/plexus/testing/PlexusTestJavaxTest.java @@ -21,6 +21,7 @@ // START SNIPPET: test-class import javax.inject.Inject; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -36,5 +37,14 @@ void dependencyShouldBeInjected() { assertNotNull(testJavaxComponent); assertNotNull(testJavaxComponent.getTestComponent2()); } + + @Nested + class NestedTest { + @Test + void nestedDependencyShouldAlsoBeInjected() { + assertNotNull(testJavaxComponent); + assertNotNull(testJavaxComponent.getTestComponent2()); + } + } } // END SNIPPET: test-class