Skip to content

Commit 7a206db

Browse files
Support for Nested tests
1 parent 26494e6 commit 7a206db

File tree

3 files changed

+33
-11
lines changed

3 files changed

+33
-11
lines changed

src/main/java/org/codehaus/plexus/testing/PlexusExtension.java

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,9 @@ public PlexusContainer get() {
9898
public void beforeEach(ExtensionContext context) throws Exception {
9999
setTestBasedir(getDefaultBasedir(), context);
100100

101-
((DefaultPlexusContainer) getContainer(context))
102-
.addPlexusInjector(
103-
Collections.emptyList(), binder -> binder.requestInjection(context.getRequiredTestInstance()));
101+
context.getRequiredTestInstances().getAllInstances().forEach(testInstance -> ((DefaultPlexusContainer)
102+
getContainer(context))
103+
.addPlexusInjector(Collections.emptyList(), binder -> binder.requestInjection(testInstance)));
104104
}
105105

106106
private PlexusContainer setupContainer(ExtensionContext context) {
@@ -175,17 +175,19 @@ protected void customizeContainerConfiguration(ContainerConfiguration containerC
175175

176176
private void testInstanceCustomizeContainerConfiguration(
177177
ContainerConfiguration containerConfiguration, ExtensionContext context) {
178-
Object testInstance = context.getRequiredTestInstance();
179-
if (testInstance instanceof PlexusTestConfiguration) {
180-
((PlexusTestConfiguration) testInstance).customizeConfiguration(containerConfiguration);
181-
}
178+
context.getRequiredTestInstances().getAllInstances().forEach(testInstance -> {
179+
if (testInstance instanceof PlexusTestConfiguration) {
180+
((PlexusTestConfiguration) testInstance).customizeConfiguration(containerConfiguration);
181+
}
182+
});
182183
}
183184

184185
private void testInstanceCustomizeContainer(PlexusContainer container, ExtensionContext context) {
185-
Object testInstance = context.getRequiredTestInstance();
186-
if (testInstance instanceof PlexusTestConfiguration) {
187-
((PlexusTestConfiguration) testInstance).customizeContainer(container);
188-
}
186+
context.getRequiredTestInstances().getAllInstances().forEach(testInstance -> {
187+
if (testInstance instanceof PlexusTestConfiguration) {
188+
((PlexusTestConfiguration) testInstance).customizeContainer(container);
189+
}
190+
});
189191
}
190192

191193
protected void customizeContext(Context context) {}

src/test/java/org/codehaus/plexus/testing/PlexusTestCustomizeTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import javax.inject.Inject;
2323

2424
import org.codehaus.plexus.PlexusContainer;
25+
import org.junit.jupiter.api.Nested;
2526
import org.junit.jupiter.api.Test;
2627
import org.junit.jupiter.api.extension.ExtendWith;
2728
import org.mockito.Mock;
@@ -62,5 +63,14 @@ void dependencyShouldBeInjected() {
6263
assertNotNull(testJavaxComponent);
6364
assertSame(testJavaxComponent.getTestComponent2(), mockComponent2);
6465
}
66+
67+
@Nested
68+
class NestedTest {
69+
@Test
70+
void nestedDependencyShouldAlsoBeInjected() {
71+
assertNotNull(testJavaxComponent);
72+
assertSame(testJavaxComponent.getTestComponent2(), mockComponent2);
73+
}
74+
}
6575
}
6676
// END SNIPPET: test-customize-class

src/test/java/org/codehaus/plexus/testing/PlexusTestJavaxTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
// START SNIPPET: test-class
2222
import javax.inject.Inject;
2323

24+
import org.junit.jupiter.api.Nested;
2425
import org.junit.jupiter.api.Test;
2526

2627
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -36,5 +37,14 @@ void dependencyShouldBeInjected() {
3637
assertNotNull(testJavaxComponent);
3738
assertNotNull(testJavaxComponent.getTestComponent2());
3839
}
40+
41+
@Nested
42+
class NestedTest {
43+
@Test
44+
void nestedDependencyShouldAlsoBeInjected() {
45+
assertNotNull(testJavaxComponent);
46+
assertNotNull(testJavaxComponent.getTestComponent2());
47+
}
48+
}
3949
}
4050
// END SNIPPET: test-class

0 commit comments

Comments
 (0)