2929import java .util .Map ;
3030import org .bson .BsonDocument ;
3131import org .hibernate .cfg .Configuration ;
32- import org .junit .jupiter .api .AfterEach ;
32+ import org .junit .jupiter .api .extension . AfterAllCallback ;
3333import org .junit .jupiter .api .extension .BeforeAllCallback ;
3434import org .junit .jupiter .api .extension .BeforeEachCallback ;
3535import org .junit .jupiter .api .extension .ExtendWith ;
3939 * Assumes that all tests that use this {@linkplain ExtendWith#value() extension} run <a
4040 * href="https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution">sequentially</a>.
4141 */
42- public final class MongoExtension implements BeforeAllCallback , BeforeEachCallback {
42+ public final class MongoExtension implements BeforeAllCallback , BeforeEachCallback , AfterAllCallback {
4343
4444 private static final BsonDocument DISABLE_FAIL_POINT_FAIL_COMMAND = BsonDocument .parse (
4545 """
@@ -69,6 +69,12 @@ public void beforeAll(ExtensionContext context) throws Exception {
6969 }
7070 }
7171
72+ @ Override
73+ public void afterAll (ExtensionContext context ) {
74+ disableFailPoint ();
75+ STATE .mongoDatabase ().drop ();
76+ }
77+
7278 /**
7379 * {@linkplain MongoDatabase#drop() Drops} the {@link MongoConfigurator#databaseName(String) database}, thus
7480 * dropping all {@linkplain InjectMongoCollection collections}.
@@ -79,12 +85,6 @@ public void beforeEach(ExtensionContext context) {
7985 STATE .mongoDatabase ().drop ();
8086 }
8187
82- @ AfterEach
83- void afterEach () {
84- disableFailPoint ();
85- STATE .mongoDatabase ().drop ();
86- }
87-
8888 private record State (MongoClient mongoClient , MongoDatabase mongoDatabase , MongoDatabase adminDatabase ) {
8989 static State create () {
9090 @ SuppressWarnings ("unchecked" )
0 commit comments