From: <fg...@us...> - 2008-01-22 21:17:51
|
Revision: 543 http://openutils.svn.sourceforge.net/openutils/?rev=543&view=rev Author: fgiust Date: 2008-01-22 13:17:56 -0800 (Tue, 22 Jan 2008) Log Message: ----------- minor changes Modified Paths: -------------- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitTestContext.java trunk/openutils-testing-junit/src/main/java/it/openutils/testing/junit/AbstractDbUnitJunitSpringContextTests.java trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/AbstractDbUnitTestNGSpringContextTests.java Modified: trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitTestContext.java =================================================================== --- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitTestContext.java 2008-01-21 09:07:23 UTC (rev 542) +++ trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitTestContext.java 2008-01-22 21:17:56 UTC (rev 543) @@ -15,7 +15,11 @@ */ package it.openutils.testing; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStream; import java.net.URL; import java.sql.SQLException; import java.util.HashMap; @@ -32,8 +36,10 @@ import org.dbunit.dataset.DataSetException; import org.dbunit.dataset.FilteredDataSet; import org.dbunit.dataset.IDataSet; +import org.dbunit.dataset.excel.XlsDataSet; import org.dbunit.dataset.filter.ITableFilter; import org.dbunit.dataset.filter.SequenceTableFilter; +import org.dbunit.dataset.xml.XmlDataSet; import org.dbunit.operation.DatabaseOperation; import org.dbunit.operation.DeleteAllOperation; import org.dbunit.operation.DeleteOperation; @@ -99,7 +105,7 @@ { DbUnitExecution singleDbUnitExecution = testcase.getClass().getAnnotation(DbUnitExecution.class); - DbUnitExecution[] executions; + DbUnitExecution[] executions = null; if (singleDbUnitExecution != null) { executions = new DbUnitExecution[]{singleDbUnitExecution }; @@ -107,43 +113,48 @@ else { DbUnitConfiguration dbUnitConfiguration = testcase.getClass().getAnnotation(DbUnitConfiguration.class); - executions = dbUnitConfiguration.dbUnitExecutions(); + if (dbUnitConfiguration != null) + { + executions = dbUnitConfiguration.dbUnitExecutions(); + } } - - for (DbUnitExecution dbUnitExecution : executions) + if (executions != null) { - String[] datasets = dbUnitExecution.datasets(); - String dataSourceName = dbUnitExecution.dataSource(); - String schema = dbUnitExecution.schema(); - if (StringUtils.isEmpty(schema)) + for (DbUnitExecution dbUnitExecution : executions) { - schema = null; - } + String[] datasets = dbUnitExecution.datasets(); + String dataSourceName = dbUnitExecution.dataSource(); + String schema = dbUnitExecution.schema(); + if (StringUtils.isEmpty(schema)) + { + schema = null; + } - IDatabaseConnection connection = new DatabaseConnection( - getDatasource(dataSourceName).getConnection(), - schema); + IDatabaseConnection connection = new DatabaseConnection( + getDatasource(dataSourceName).getConnection(), + schema); - try - { - ITableFilter tableFilter = new RegExpTableFilter(dbUnitExecution.excludedTables()); + try + { + ITableFilter tableFilter = new RegExpTableFilter(dbUnitExecution.excludedTables()); - if (dbUnitExecution.truncateAll()) - { - truncateAll(connection, tableFilter, dataSourceName, getDatabaseOperation(dbUnitExecution - .truncateOperation())); + if (dbUnitExecution.truncateAll()) + { + truncateAll(connection, tableFilter, dataSourceName, getDatabaseOperation(dbUnitExecution + .truncateOperation())); + } + + DatabaseOperation dbOperation = getDatabaseOperation(dbUnitExecution.insertOperation()); + for (String datasetFile : datasets) + { + importDataSet(createDataset(datasetFile), connection, tableFilter, dataSourceName, dbOperation); + } } - - DatabaseOperation dbOperation = getDatabaseOperation(dbUnitExecution.insertOperation()); - for (String datasetFile : datasets) + finally { - importDataSet(createDataset(datasetFile), connection, tableFilter, dataSourceName, dbOperation); + connection.close(); } } - finally - { - connection.close(); - } } } @@ -310,4 +321,40 @@ } return (DataSource) applicationContext.getBean(name); } + + /** + * Exports a list of table to an xml/xsl file + * @param file The file name we save the dataset to + * @param dataSource datasource to use + * @param schema optional schema name + * @param tableNames optional list of table names + * @throws IOException An IO Exception. + * @throws DataSetException A dataset exception. + * @throws SQLException A SQL Exception. + */ + public void exportDataset(File file, DataSource dataSource, String schema, String[] tableNames) throws IOException, + DataSetException, SQLException + { + IDatabaseConnection connection = new DatabaseConnection(dataSource.getConnection(), schema); + + IDataSet fullDataSet = connection.createDataSet(); + + if (tableNames != null && tableNames.length > 0) + { + fullDataSet = new FilteredDataSet(tableNames, fullDataSet); + } + + OutputStream fos = new BufferedOutputStream(new FileOutputStream(file)); + if (file.getName().toLowerCase().endsWith(".xls")) + { + XlsDataSet.write(fullDataSet, fos); + } + else + { + XmlDataSet.write(fullDataSet, fos); + } + fos.close(); + + log.info("Dataset exported at {}", file.getAbsolutePath()); + } } Modified: trunk/openutils-testing-junit/src/main/java/it/openutils/testing/junit/AbstractDbUnitJunitSpringContextTests.java =================================================================== --- trunk/openutils-testing-junit/src/main/java/it/openutils/testing/junit/AbstractDbUnitJunitSpringContextTests.java 2008-01-21 09:07:23 UTC (rev 542) +++ trunk/openutils-testing-junit/src/main/java/it/openutils/testing/junit/AbstractDbUnitJunitSpringContextTests.java 2008-01-22 21:17:56 UTC (rev 543) @@ -38,7 +38,7 @@ /** * DBUnit text context. */ - private DbUnitTestContext dbUnitTestContext; + protected DbUnitTestContext dbUnitTestContext; /** * Setup the Database before running the test method. Modified: trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/AbstractDbUnitTestNGSpringContextTests.java =================================================================== --- trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/AbstractDbUnitTestNGSpringContextTests.java 2008-01-21 09:07:23 UTC (rev 542) +++ trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/AbstractDbUnitTestNGSpringContextTests.java 2008-01-22 21:17:56 UTC (rev 543) @@ -38,7 +38,7 @@ /** * DBUnit text context. */ - private DbUnitTestContext dbUnitTestContext; + protected DbUnitTestContext dbUnitTestContext; /** * Setup the Database before running the test method. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |