Search in sources :

Example 16 with IDatabaseConnection

use of org.dbunit.database.IDatabaseConnection in project head by mifos.

the class DataSetUpgradeUtil method upgrade.

private void upgrade(String fileName, ApplicationContext applicationContext) throws Exception {
    System.out.println("Upgrading: " + fileName);
    dbUnitUtilities = new DbUnitUtilities();
    IDataSet dataSet = null;
    try {
        dataSet = dbUnitUtilities.getDataSetFromFile(fileName);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Class.forName("com.mysql.jdbc.Driver");
    Connection jdbcConnection = null;
    try {
        // TODO use same db cxn info that Mifos uses! (local.properties)
        jdbcConnection = DriverManager.getConnection(getUrl(databaseName, port, params), user, password);
        jdbcConnection.setAutoCommit(false);
        resetDatabase(databaseName, jdbcConnection);
        SqlExecutor.execute(new FileInputStream(schemaFileName), jdbcConnection);
        jdbcConnection.commit();
        jdbcConnection.setAutoCommit(true);
        IDatabaseConnection databaseConnection = new DatabaseConnection(jdbcConnection);
        databaseConnection.getConfig().setProperty(DatabaseConfig.FEATURE_CASE_SENSITIVE_TABLE_NAMES, Boolean.FALSE);
        DatabaseOperation.CLEAN_INSERT.execute(databaseConnection, dataSet);
    } finally {
        if (jdbcConnection != null) {
            jdbcConnection.close();
        }
    }
    System.setProperty(TestingService.TEST_MODE_SYSTEM_PROPERTY, "acceptance");
    ApplicationInitializer applicationInitializer = new ApplicationInitializer();
    applicationInitializer.dbUpgrade(applicationContext);
    applicationContext.getBean(DatabaseUpgradeSupport.class).contraction();
    applicationInitializer.setAttributesOnContext(null);
    StaticHibernateUtil.closeSession();
    System.out.println(" upgrade done!");
}
Also used : Connection(java.sql.Connection) IDatabaseConnection(org.dbunit.database.IDatabaseConnection) DatabaseConnection(org.dbunit.database.DatabaseConnection) ApplicationInitializer(org.mifos.framework.ApplicationInitializer) IDatabaseConnection(org.dbunit.database.IDatabaseConnection) DatabaseConnection(org.dbunit.database.DatabaseConnection) DatabaseUpgradeSupport(org.mifos.db.upgrade.DatabaseUpgradeSupport) IOException(java.io.IOException) IDatabaseConnection(org.dbunit.database.IDatabaseConnection) IDataSet(org.dbunit.dataset.IDataSet) FileInputStream(java.io.FileInputStream)

Example 17 with IDatabaseConnection

use of org.dbunit.database.IDatabaseConnection in project sonarqube by SonarSource.

the class AbstractDbTester method assertDbUnit.

public void assertDbUnit(Class testClass, String filename, String[] excludedColumnNames, String... tables) {
    IDatabaseConnection connection = null;
    try {
        connection = dbUnitConnection();
        IDataSet dataSet = connection.createDataSet();
        String path = "/" + testClass.getName().replace('.', '/') + "/" + filename;
        InputStream inputStream = testClass.getResourceAsStream(path);
        if (inputStream == null) {
            throw new IllegalStateException(String.format("File '%s' does not exist", path));
        }
        IDataSet expectedDataSet = dbUnitDataSet(inputStream);
        for (String table : tables) {
            DiffCollectingFailureHandler diffHandler = new DiffCollectingFailureHandler();
            ITable filteredTable = DefaultColumnFilter.excludedColumnsTable(dataSet.getTable(table), excludedColumnNames);
            ITable filteredExpectedTable = DefaultColumnFilter.excludedColumnsTable(expectedDataSet.getTable(table), excludedColumnNames);
            Assertion.assertEquals(filteredExpectedTable, filteredTable, diffHandler);
            // Evaluate the differences and ignore some column values
            List diffList = diffHandler.getDiffList();
            for (Object o : diffList) {
                Difference diff = (Difference) o;
                if (!"[ignore]".equals(diff.getExpectedValue())) {
                    throw new DatabaseUnitException(diff.toString());
                }
            }
        }
    } catch (DatabaseUnitException e) {
        e.printStackTrace();
        fail(e.getMessage());
    } catch (Exception e) {
        throw translateException("Error while checking results", e);
    } finally {
        closeQuietly(connection);
    }
}
Also used : DiffCollectingFailureHandler(org.dbunit.assertion.DiffCollectingFailureHandler) InputStream(java.io.InputStream) DatabaseUnitException(org.dbunit.DatabaseUnitException) ITable(org.dbunit.dataset.ITable) Lists.asList(com.google.common.collect.Lists.asList) List(java.util.List) Lists.newArrayList(com.google.common.collect.Lists.newArrayList) ArrayList(java.util.ArrayList) ImmutableList(com.google.common.collect.ImmutableList) IDatabaseConnection(org.dbunit.database.IDatabaseConnection) Difference(org.dbunit.assertion.Difference) IDataSet(org.dbunit.dataset.IDataSet) SQLException(java.sql.SQLException) DatabaseUnitException(org.dbunit.DatabaseUnitException)

Aggregations

IDatabaseConnection (org.dbunit.database.IDatabaseConnection)17 IDataSet (org.dbunit.dataset.IDataSet)11 DatabaseConnection (org.dbunit.database.DatabaseConnection)9 Connection (java.sql.Connection)8 SQLException (java.sql.SQLException)4 DatabaseUnitException (org.dbunit.DatabaseUnitException)4 ITable (org.dbunit.dataset.ITable)3 FlatXmlDataSet (org.dbunit.dataset.xml.FlatXmlDataSet)3 FileOutputStream (java.io.FileOutputStream)2 StringReader (java.io.StringReader)2 DataSourceDatabaseTester (org.dbunit.DataSourceDatabaseTester)2 IDatabaseTester (org.dbunit.IDatabaseTester)2 ImmutableList (com.google.common.collect.ImmutableList)1 Lists.asList (com.google.common.collect.Lists.asList)1 Lists.newArrayList (com.google.common.collect.Lists.newArrayList)1 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 ArrayList (java.util.ArrayList)1