package org.needle4j.junit.testrule;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.needle4j.configuration.NeedleConfiguration;
import org.needle4j.db.DatabaseTestcase;
import org.needle4j.db.operation.DBOperation;
public class DatabaseTestRule extends DatabaseTestcase implements TestRule {
/**
* @see org.needle4j.db.DatabaseTestcase#DatabaseTestcase()
*/
public DatabaseTestRule() {
super();
}
/**
* @see org.needle4j.db.DatabaseTestcase#DatabaseTestcase(DBOperation)
*/
public DatabaseTestRule(final DBOperation dbOperation) {
super(dbOperation);
}
/**
* @see org.needle4j.db.DatabaseTestcase#DatabaseTestcase(String,
* DBOperation)
*/
public DatabaseTestRule(final String persistenceUnitName, final DBOperation dbOperation) {
super(persistenceUnitName, dbOperation);
}
/**
* @see org.needle4j.db.DatabaseTestcase#DatabaseTestcase(String)
*/
public DatabaseTestRule(final String persistenceUnitName) {
super(persistenceUnitName);
}
DatabaseTestRule(final NeedleConfiguration configuration) {
super(configuration);
}
@Override
public Statement apply(final Statement base, final Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
try {
before();
base.evaluate();
} finally {
after();
}
}
};
}
}