Skip to content

Instantly share code, notes, and snippets.

@rodrigoy
Created March 1, 2011 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rodrigoy/849316 to your computer and use it in GitHub Desktop.
Save rodrigoy/849316 to your computer and use it in GitHub Desktop.
package util;
import java.io.FileInputStream;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.dbunit.IDatabaseTester;
import org.dbunit.JdbcDatabaseTester;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
public class DbUnitHelper {
private String driver;
private String url;
private String user;
private String password;
public DbUnitHelper(EntityManager manager) {
EntityManagerFactory factory = manager.getEntityManagerFactory();
driver = (String) factory.getProperties().get("hibernate.connection.driver_class");
url = (String) factory.getProperties().get("hibernate.connection.url");
user = (String) factory.getProperties().get("hibernate.connection.user");
password = (String) factory.getProperties().get("hibernate.connection.password");
}
public void insert(String dbUnitXmlPath) {
try {
IDatabaseTester dbTester = new JdbcDatabaseTester(driver, url, user, password);
IDataSet dataSet = new FlatXmlDataSetBuilder().build(new FileInputStream(dbUnitXmlPath));
dbTester.setDataSet(dataSet);
dbTester.onSetup();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
package util;
import static org.junit.Assert.assertEquals;
import javax.persistence.EntityManager;
import javax.persistence.Persistence;
import org.junit.Test;
import domain.ValueStream;
public class DbUnitHelperSpec {
@Test
public void shouldLoadDataForTestingGivenEntityManager() {
EntityManager manager = Persistence.createEntityManagerFactory("default").createEntityManager();
new DbUnitHelper(manager).insert("test/"+this.getClass().getSimpleName() + ".xml");
//this is the test entity
ValueStream vs = manager.find(ValueStream.class, 1L);
assertEquals("Test", vs.getTeamName());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment