Files
ebean/src/test/java/com/avaje/tests/lib/EbeanTestCase.java
T

45 lines
1.2 KiB
Java

package com.avaje.tests.lib;
import com.avaje.ebeaninternal.api.SpiEbeanServer;
import junit.framework.TestCase;
import junit.framework.TestResult;
import com.avaje.ebean.Ebean;
import com.avaje.ebean.EbeanServer;
import com.avaje.ebean.Transaction;
/**
* The base class for all Ebean test to get access to the Ebean server and do
* some cleanup stuff after a test has run
*/
public abstract class EbeanTestCase extends TestCase {
@Override
public void run(TestResult testResult) {
try {
super.run(testResult);
} finally {
Transaction tx = getServer().currentTransaction();
if (tx != null && tx.isActive()) {
// transaction left running after the test, rollback it to make
// the environment ready for the next test
tx.rollback();
}
}
}
public EbeanServer getServer() {
return Ebean.getServer(null);
}
/**
* MS SQL Server does not allow setting explicit values on identity columns
* so tests that do this need to be skipped for SQL Server.
*/
public boolean isMsSqlServer() {
SpiEbeanServer spi = (SpiEbeanServer)Ebean.getDefaultServer();
return spi.getDatabasePlatform().getName().startsWith("mssqlserver");
}
}