mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
stop the application between tests to make sure that there are no active transactions when we truncate the tables
This commit is contained in:
@@ -6,6 +6,8 @@ import jakarta.persistence.EntityManager;
|
||||
import org.hibernate.Session;
|
||||
import org.kohsuke.MetaInfServices;
|
||||
|
||||
import io.quarkus.runtime.ShutdownEvent;
|
||||
import io.quarkus.runtime.StartupEvent;
|
||||
import io.quarkus.test.junit.callback.QuarkusTestBeforeEachCallback;
|
||||
import io.quarkus.test.junit.callback.QuarkusTestMethodContext;
|
||||
|
||||
@@ -17,12 +19,17 @@ public class DatabaseReset implements QuarkusTestBeforeEachCallback {
|
||||
|
||||
@Override
|
||||
public void beforeEach(QuarkusTestMethodContext context) {
|
||||
CDI.current()
|
||||
.select(EntityManager.class)
|
||||
.get()
|
||||
.unwrap(Session.class)
|
||||
.getSessionFactory()
|
||||
.getSchemaManager()
|
||||
.truncateMappedObjects();
|
||||
// stop the application to make sure that there are no active transactions when we truncate the tables
|
||||
getBean(CommaFeedApplication.class).stop(new ShutdownEvent());
|
||||
|
||||
// truncate all tables so that we have a clean slate for the next test
|
||||
getBean(EntityManager.class).unwrap(Session.class).getSessionFactory().getSchemaManager().truncateMappedObjects();
|
||||
|
||||
// restart the application
|
||||
getBean(CommaFeedApplication.class).start(new StartupEvent());
|
||||
}
|
||||
|
||||
private static <T> T getBean(Class<T> clazz) {
|
||||
return CDI.current().select(clazz).get();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user