|
From: <fg...@us...> - 2007-05-23 17:59:53
|
Revision: 328
http://svn.sourceforge.net/openutils/?rev=328&view=rev
Author: fgiust
Date: 2007-05-23 10:59:52 -0700 (Wed, 23 May 2007)
Log Message:
-----------
make default table filter overridable
Modified Paths:
--------------
trunk/openutils-testing-junit/src/main/java/it/openutils/testing/junit/DbUnitTestCase.java
trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/DbUnitTestCase.java
Modified: trunk/openutils-testing-junit/src/main/java/it/openutils/testing/junit/DbUnitTestCase.java
===================================================================
--- trunk/openutils-testing-junit/src/main/java/it/openutils/testing/junit/DbUnitTestCase.java 2007-05-04 16:49:46 UTC (rev 327)
+++ trunk/openutils-testing-junit/src/main/java/it/openutils/testing/junit/DbUnitTestCase.java 2007-05-23 17:59:52 UTC (rev 328)
@@ -21,12 +21,15 @@
import javax.sql.DataSource;
import org.apache.commons.lang.ClassUtils;
+import org.apache.commons.lang.StringUtils;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.DatabaseSequenceFilter;
import org.dbunit.database.IDatabaseConnection;
+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.AbstractTableFilter;
import org.dbunit.dataset.filter.ITableFilter;
import org.dbunit.dataset.filter.SequenceTableFilter;
import org.dbunit.dataset.xml.XmlDataSet;
@@ -63,6 +66,27 @@
}
/**
+ * Returns the table filter that will be used to exclude certain tables from sort/deletion. This may be overridden
+ * by subclasses, and is needed when tables have circular references (not handled by dbunit DatabaseSequenceFilter)
+ * @return an <code>ITableFilter</code>
+ */
+ protected ITableFilter getTableFilter()
+ {
+ return new AbstractTableFilter()
+ {
+
+ @Override
+ public boolean isValidName(String tableName) throws DataSetException
+ {
+ // default excludes:
+ // $ = oracle recycle bin tables
+ // JBPM = jbpm tables, with circular references
+ return !StringUtils.contains(tableName, "$") && !StringUtils.contains(tableName, "JBPM");
+ }
+ };
+ }
+
+ /**
* {@inheritDoc}
*/
@SuppressWarnings("unchecked")
@@ -118,8 +142,12 @@
{
log.debug("Generating sorted dataset for initial cleanup");
IDataSet unsortedTruncateDataSet = connection.createDataSet();
- ITableFilter filter = new DatabaseSequenceFilter(connection);
+
+ ITableFilter filter = new DatabaseSequenceFilter(connection, new FilteredDataSet(
+ getTableFilter(),
+ unsortedTruncateDataSet).getTableNames());
truncateDataSet = new FilteredDataSet(filter, unsortedTruncateDataSet);
+ truncateDataSet = new FilteredDataSet(getTableFilter(), truncateDataSet);
log.debug("Sorted dataset generated");
}
Modified: trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/DbUnitTestCase.java
===================================================================
--- trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/DbUnitTestCase.java 2007-05-04 16:49:46 UTC (rev 327)
+++ trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/DbUnitTestCase.java 2007-05-23 17:59:52 UTC (rev 328)
@@ -95,6 +95,27 @@
}
/**
+ * Returns the table filter that will be used to exclude certain tables from sort/deletion. This may be overridden
+ * by subclasses, and is needed when tables have circular references (not handled by dbunit DatabaseSequenceFilter)
+ * @return an <code>ITableFilter</code>
+ */
+ protected ITableFilter getTableFilter()
+ {
+ return new AbstractTableFilter()
+ {
+
+ @Override
+ public boolean isValidName(String tableName) throws DataSetException
+ {
+ // default excludes:
+ // $ = oracle recycle bin tables
+ // JBPM = jbpm tables, with circular references
+ return !StringUtils.contains(tableName, "$") && !StringUtils.contains(tableName, "JBPM");
+ }
+ };
+ }
+
+ /**
* Setup the Database before running the test method.
* @throws Exception Any exception.
*/
@@ -198,19 +219,11 @@
log.debug("Generating sorted dataset for initial cleanup");
IDataSet unsortedTruncateDataSet = connection.createDataSet();
- ITableFilter filter = new DatabaseSequenceFilter(connection);
+ ITableFilter filter = new DatabaseSequenceFilter(connection, new FilteredDataSet(
+ getTableFilter(),
+ unsortedTruncateDataSet).getTableNames());
truncateDataSet = new FilteredDataSet(filter, unsortedTruncateDataSet);
-
- truncateDataSet = new FilteredDataSet(new AbstractTableFilter()
- {
-
- @Override
- public boolean isValidName(String tableName) throws DataSetException
- {
- return !StringUtils.contains(tableName, "$");
- }
- }, truncateDataSet);
-
+ truncateDataSet = new FilteredDataSet(getTableFilter(), truncateDataSet);
log.debug("Sorted dataset generated");
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|