mirror of
https://github.com/Athou/commafeed.git
synced 2026-09-23 12:35:07 +00:00
40 lines
1.3 KiB
Java
40 lines
1.3 KiB
Java
package com.commafeed;
|
|
|
|
import io.quarkus.runtime.ShutdownEvent;
|
|
import io.quarkus.runtime.StartupEvent;
|
|
import io.quarkus.test.junit.callback.QuarkusTestBeforeEachCallback;
|
|
import io.quarkus.test.junit.callback.QuarkusTestMethodContext;
|
|
|
|
import jakarta.enterprise.inject.spi.CDI;
|
|
import jakarta.persistence.EntityManager;
|
|
|
|
import org.hibernate.Session;
|
|
import org.kohsuke.MetaInfServices;
|
|
|
|
/** Resets database between tests */
|
|
@MetaInfServices
|
|
public class DatabaseReset implements QuarkusTestBeforeEachCallback {
|
|
|
|
@Override
|
|
public void beforeEach(QuarkusTestMethodContext context) {
|
|
// 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();
|
|
}
|
|
}
|