package net.rrm.ehour.persistence.dao;
import net.rrm.ehour.persistence.dbvalidator.DerbyDbValidator;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import org.dbunit.operation.DatabaseOperation;
import org.springframework.jdbc.datasource.DataSourceUtils;
import javax.sql.DataSource;
import java.io.File;
import java.sql.Connection;
import java.util.List;
public abstract class DatabasePopulator {
public static void setUpDatabase(DataSource dataSource, List<String> dataSetFileNames, String dbVersion) throws Exception {
DerbyDbValidator validator = new DerbyDbValidator(dbVersion, dataSource);
validator.checkDatabaseState();
Connection con = DataSourceUtils.getConnection(dataSource);
con.setAutoCommit(false);
IDatabaseConnection connection = new DatabaseConnection(con);
for (String dataSetFileName : dataSetFileNames) {
FlatXmlDataSet additionalDataSet = new FlatXmlDataSetBuilder().build(new File("src/test/resources/datasets/" + dataSetFileName));
DatabaseOperation.CLEAN_INSERT.execute(connection, additionalDataSet);
}
}
}