package fr.mch.mdo.tools;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import fr.mch.mdo.test.MdoLoadingDatabaseTestCase;
import fr.mch.mdo.test.MdoTestCase;
import fr.mch.mdo.test.resources.ITestResources;
/**
* This class will generate HSQLDB database from memory to files.
*
* @author Mathieu
*
*/
public class GenerateHsqlDatabaseTestCase extends MdoLoadingDatabaseTestCase
{
/**
* This field is also initialized in the getConnection method.
*/
private String sqlDialectName = "HSQLDIALECT";
/**
* Create the test case
*
* @param testName
* name of the test case
*/
public GenerateHsqlDatabaseTestCase(String testName) {
super(testName);
}
@Override
protected Connection getConnection() {
// Must be initialized again there because this method is called in the super constructor.
// So for the parent the field sqlDialectName is not yet initialized.
sqlDialectName = "HSQLDIALECT";
String generatedDatabaseFolder = "/home/mathieu/tmp/database/montagnesdor";
// Files to be loaded: Must be override here
fileURLs = new URL[] { ITestResources.class.getResource("montagnesdorStructure.sql"), ITestResources.class.getResource("montagnesdorDatas.sql")};
fileURLs = new URL[] { ITestResources.class.getResource("montagnesdorStructure.sql"),
ITestResources.class.getResource("DataMigrationKimsan93.sql"),
ITestResources.class.getResource("DataMigrationProductWork.sql"),
ITestResources.class.getResource("DataMigrationProductCategoryWork.sql"),
ITestResources.class.getResource("DataMigrationDinnerTableWork.sql"),
ITestResources.class.getResource("DataMigrationRevenueWork.sql"),
ITestResources.class.getResource("DataMigrationProductSoldWork.sql"), // Will take a very long time
};
// Connection with standard SQL
Connection connection = null;
try {
Class.forName("org.hsqldb.jdbcDriver");
connection = DriverManager.getConnection("jdbc:hsqldb:file:" + generatedDatabaseFolder + ";shutdown=true", "SA", "");
assertNotNull("Check connection", connection);
// SQL dialect from Hibernate configuration
// Format the Hibernate SQL dialect string to java SqlDialect enum
// name
assertNotNull("Check SQL Dialect", sqlDialectName);
} catch (Exception e) {
fail(MdoTestCase.DEFAULT_FAILED_MESSAGE);
}
return connection;
}
@Override
protected String getSqlDialectName() {
return sqlDialectName;
}
/**
* This is a dummy test for generating HSQLDB files database.
*/
public void testDummy() {
assertTrue("This is a dummy test for generating HSQLDB files database.", true);
}
public static void main(String[] args) {
new GenerateHsqlDatabaseTestCase(GenerateHsqlDatabaseTestCase.class.getName());
}
}