-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix @InjectMock and @InjectSpy handling of @nested tests
Fixes: #19391
- 3.17.5
- 3.17.4
- 3.17.3
- 3.17.2
- 3.17.1
- 3.17.0
- 3.17.0.CR1
- 3.16.4
- 3.16.3
- 3.16.2
- 3.16.1
- 3.16.0
- 3.16.0.CR1
- 3.15.2
- 3.15.1
- 3.15.0
- 3.15.0.CR1
- 3.14.4
- 3.14.3
- 3.14.2
- 3.14.1
- 3.14.0
- 3.14.0.CR1
- 3.13.3
- 3.13.2
- 3.13.1
- 3.13.0
- 3.13.0.CR1
- 3.12.3
- 3.12.2
- 3.12.1
- 3.12.0
- 3.12.0.CR1
- 3.11.3
- 3.11.2
- 3.11.1
- 3.11.0
- 3.11.0.CR1
- 3.10.2
- 3.10.1
- 3.10.0
- 3.10.0.CR1
- 3.9.5
- 3.9.4
- 3.9.3
- 3.9.2
- 3.9.1
- 3.9.0
- 3.9.0.CR2
- 3.9.0.CR1
- 3.8.6
- 3.8.5
- 3.8.4
- 3.8.3
- 3.8.2
- 3.8.1
- 3.8.0
- 3.8.0.CR1
- 3.7.4
- 3.7.3
- 3.7.2
- 3.7.1
- 3.7.0
- 3.7.0.CR1
- 3.6.9
- 3.6.8
- 3.6.7
- 3.6.6
- 3.6.5
- 3.6.4
- 3.6.3
- 3.6.2
- 3.6.1
- 3.6.0
- 3.6.0.CR1
- 3.5.3
- 3.5.2
- 3.5.1
- 3.5.0
- 3.5.0.CR1
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.4.0.CR1
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.3.0.CR1
- 3.2.12.Final
- 3.2.11.Final
- 3.2.10.Final
- 3.2.9.Final
- 3.2.8.Final
- 3.2.7.Final
- 3.2.6.Final
- 3.2.5.Final
- 3.2.4.Final
- 3.2.3.Final
- 3.2.2.Final
- 3.2.1.Final
- 3.2.0.Final
- 3.2.0.CR1
- 3.1.3.Final
- 3.1.2.Final
- 3.1.1.Final
- 3.1.0.Final
- 3.1.0.CR1
- 3.0.4.Final
- 3.0.3.Final
- 3.0.2.Final
- 3.0.1.Final
- 3.0.0.Final
- 3.0.0.CR2
- 3.0.0.CR1
- 3.0.0.Beta1
- 3.0.0.Alpha6
- 3.0.0.Alpha5
- 3.0.0.Alpha4
- 3.0.0.Alpha3
- 3.0.0.Alpha2
- 3.0.0.Alpha1
- 2.16.12.Final
- 2.16.11.Final
- 2.16.10.Final
- 2.16.9.Final
- 2.16.8.Final
- 2.16.7.Final
- 2.16.6.Final
- 2.16.5.Final
- 2.16.4.Final
- 2.16.3.Final
- 2.16.2.Final
- 2.16.1.Final
- 2.16.0.Final
- 2.16.0.CR1
- 2.15.3.Final
- 2.15.2.Final
- 2.15.1.Final
- 2.15.0.Final
- 2.15.0.CR1
- 2.14.3.Final
- 2.14.2.Final
- 2.14.1.Final
- 2.14.0.Final
- 2.14.0.CR1
- 2.13.9.Final
- 2.13.8.Final
- 2.13.7.Final
- 2.13.6.Final
- 2.13.5.Final
- 2.13.4.Final
- 2.13.3.Final
- 2.13.2.Final
- 2.13.1.Final
- 2.13.0.Final
- 2.13.0.CR1
- 2.12.3.Final
- 2.12.2.Final
- 2.12.1.Final
- 2.12.0.Final
- 2.12.0.CR1
- 2.11.3.Final
- 2.11.2.Final
- 2.11.1.Final
- 2.11.0.Final
- 2.11.0.CR1
- 2.10.4.Final
- 2.10.3.Final
- 2.10.2.Final
- 2.10.1.Final
- 2.10.0.Final
- 2.10.0.CR1
- 2.9.2.Final
- 2.9.1.Final
- 2.9.0.Final
- 2.9.0.CR1
- 2.8.3.Final
- 2.8.2.Final
- 2.8.1.Final
- 2.8.0.Final
- 2.8.0.CR1
- 2.7.7.Final
- 2.7.6.Final
- 2.7.5.Final
- 2.7.4.Final
- 2.7.3.Final
- 2.7.2.Final
- 2.7.1.Final
- 2.7.0.Final
- 2.7.0.CR1
- 2.6.3.Final
- 2.6.2.Final
- 2.6.1.Final
- 2.6.0.Final
- 2.6.0.CR1
- 2.5.4.Final
- 2.5.3.Final
- 2.5.2.Final
- 2.5.1.Final
- 2.5.0.Final
- 2.5.0.CR1
- 2.4.2.Final
- 2.4.1.Final
- 2.4.0.Final
- 2.4.0.CR1
- 2.3.1.Final
- 2.3.0.Final
- 2.3.0.CR1
Showing
8 changed files
with
154 additions
and
14 deletions.
There are no files selected for viewing
49 changes: 49 additions & 0 deletions
49
integration-tests/injectmock/src/test/java/io/quarkus/it/mockbean/NestedTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
package io.quarkus.it.mockbean; | ||
|
||
import static io.restassured.RestAssured.given; | ||
import static org.hamcrest.Matchers.is; | ||
|
||
import org.junit.jupiter.api.Nested; | ||
import org.junit.jupiter.api.Test; | ||
import org.mockito.Mockito; | ||
|
||
import io.quarkus.test.junit.QuarkusTest; | ||
import io.quarkus.test.junit.mockito.InjectMock; | ||
|
||
@QuarkusTest | ||
public class NestedTest { | ||
|
||
@InjectMock | ||
MessageService messageService; | ||
|
||
@Nested | ||
public class ActualTest { | ||
|
||
@InjectMock | ||
SuffixService suffixService; | ||
|
||
@Test | ||
public void testGreet() { | ||
Mockito.when(messageService.getMessage()).thenReturn("hi"); | ||
Mockito.when(suffixService.getSuffix()).thenReturn("!"); | ||
|
||
given() | ||
.when().get("/greeting") | ||
.then() | ||
.statusCode(200) | ||
.body(is("HI!")); | ||
} | ||
|
||
@Test | ||
public void testGreetAgain() { | ||
Mockito.when(messageService.getMessage()).thenReturn("yolo"); | ||
Mockito.when(suffixService.getSuffix()).thenReturn("!!!"); | ||
|
||
given() | ||
.when().get("/greeting") | ||
.then() | ||
.statusCode(200) | ||
.body(is("YOLO!!!")); | ||
} | ||
} | ||
} |
14 changes: 14 additions & 0 deletions
14
.../src/main/java/io/quarkus/test/junit/mockito/internal/ResetOuterMockitoMocksCallback.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package io.quarkus.test.junit.mockito.internal; | ||
|
||
import io.quarkus.test.junit.callback.QuarkusTestAfterAllCallback; | ||
import io.quarkus.test.junit.callback.QuarkusTestContext; | ||
|
||
public class ResetOuterMockitoMocksCallback implements QuarkusTestAfterAllCallback { | ||
|
||
@Override | ||
public void afterAll(QuarkusTestContext context) { | ||
if (context.getOuterInstance() != null) { | ||
MockitoMocksTracker.reset(context.getOuterInstance()); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1 change: 1 addition & 0 deletions
1
...in/resources/META-INF/services/io.quarkus.test.junit.callback.QuarkusTestAfterAllCallback
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
io.quarkus.test.junit.mockito.internal.ResetOuterMockitoMocksCallback |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11 changes: 11 additions & 0 deletions
11
...work/junit5/src/main/java/io/quarkus/test/junit/callback/QuarkusTestAfterAllCallback.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package io.quarkus.test.junit.callback; | ||
|
||
/** | ||
* Can be implemented by classes that shall be called after all test methods in a {@code @QuarkusTest} have been run. | ||
* <p> | ||
* The implementing class has to be {@linkplain java.util.ServiceLoader deployed as service provider on the class path}. | ||
*/ | ||
public interface QuarkusTestAfterAllCallback { | ||
|
||
void afterAll(QuarkusTestContext context); | ||
} |
23 changes: 23 additions & 0 deletions
23
test-framework/junit5/src/main/java/io/quarkus/test/junit/callback/QuarkusTestContext.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package io.quarkus.test.junit.callback; | ||
|
||
/** | ||
* Context object passed to {@link QuarkusTestAfterAllCallback} | ||
*/ | ||
public class QuarkusTestContext { | ||
|
||
private final Object testInstance; | ||
private final Object outerInstance; | ||
|
||
public QuarkusTestContext(Object testInstance, Object outerInstance) { | ||
this.testInstance = testInstance; | ||
this.outerInstance = outerInstance; | ||
} | ||
|
||
public Object getTestInstance() { | ||
return testInstance; | ||
} | ||
|
||
public Object getOuterInstance() { | ||
return outerInstance; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters