package net.codjo.dataprocess.server.util;
import net.codjo.database.common.api.DatabaseFactory;
import net.codjo.database.common.api.DatabaseHelper;
import net.codjo.database.common.api.JdbcFixture;
import net.codjo.database.common.api.structure.SqlTable;
import net.codjo.datagen.DatagenFixture;
import net.codjo.dataprocess.common.Log;
import net.codjo.tokio.JDBCScenario;
import net.codjo.tokio.TokioFixture;
import net.codjo.tokio.model.Table;
import java.io.File;
import java.util.Iterator;
/**
*
*/
public class TestUtils {
private TestUtils() {
}
public static void initScript(JdbcFixture fixture, DatagenFixture datagen, String tableFileName) {
fixture.advanced().executeCreateTableScriptFile(new File(datagen.getSqlPath(), tableFileName));
}
public static void loadDataFromTokioFile(Class classz, String tokioFilePath, String scenario,
boolean deleteTable)
throws Exception {
DatabaseFactory databaseFactory = new DatabaseFactory();
DatabaseHelper databaseHelper = databaseFactory.createDatabaseHelper();
TokioFixture tokioFixture = new TokioFixture(classz, tokioFilePath);
tokioFixture.doSetUp();
JDBCScenario jdbcScenario = tokioFixture.getJDBCScenario(scenario);
String str;
if (deleteTable) {
str = "' (Seules les tables du fichier seront effac�es avant insertion des donn�es).";
}
else {
str = "' (Aucune table ne sera effac�e).";
}
if (Log.isInfoEnabled()) {
Log.info(classz, "Insertion des donn�es issues de '" + tokioFilePath + str);
}
Iterator iterator = jdbcScenario.getScenario().inputTables();
while (iterator.hasNext()) {
Table table = (Table)iterator.next();
if (deleteTable) {
SqlTable sqlTable = SqlTable.table(table.getName());
databaseHelper.truncateTable(tokioFixture.getConnection(), sqlTable);
}
jdbcScenario.insertInputTableInDb(tokioFixture.getConnection(), table.getName());
if (Log.isInfoEnabled()) {
Log.info(classz, " Table : " + table.getName());
}
}
}
}