|
From: <mla...@us...> - 2002-08-04 01:07:16
|
Update of /cvsroot/dbunit/dbunit/src/test/org/dbunit/database
In directory usw-pr-cvs1:/tmp/cvs-serv24183/dbunit/src/test/org/dbunit/database
Modified Files:
DatabaseDataSetTest.java
Log Message:
I added a system property that allows schema, table and column names escaping.
The property value is an escape pattern where the ? is replaced by the name.
For example, the pattern "[?]" is expanded as "[MY_NAME]" for a table named
"MY_TABLE".
Attention this feature is not compatible with the qualified names name feature!
Index: DatabaseDataSetTest.java
===================================================================
RCS file: /cvsroot/dbunit/dbunit/src/test/org/dbunit/database/DatabaseDataSetTest.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** DatabaseDataSetTest.java 3 Aug 2002 02:26:41 -0000 1.14
--- DatabaseDataSetTest.java 4 Aug 2002 01:07:13 -0000 1.15
***************
*** 37,40 ****
--- 37,42 ----
public class DatabaseDataSetTest extends AbstractDataSetTest
{
+ private static final String ESCAPE_PATTERN_KEY = "dbunit.name.escapePattern";
+
private IDatabaseConnection _connection;
***************
*** 114,117 ****
--- 116,143 ----
String sql = DatabaseDataSet.getSelectStatement(schemaName, metaData);
assertEquals("select statement", expected, sql);
+ }
+
+ public void testGetSelectStatementWithEscapedNames() throws Exception
+ {
+ String schemaName = "schema";
+ String tableName = "table";
+ Column[] columns = new Column[]{
+ new Column("c1", DataType.UNKNOWN),
+ new Column("c2", DataType.UNKNOWN),
+ new Column("c3", DataType.UNKNOWN),
+ };
+ String expected = "select 'c1', 'c2', 'c3' from 'schema'.'table'";
+
+ try
+ {
+ System.setProperty(ESCAPE_PATTERN_KEY, "'?'");
+ ITableMetaData metaData = new DefaultTableMetaData(tableName, columns);
+ String sql = DatabaseDataSet.getSelectStatement(schemaName, metaData);
+ assertEquals("select statement", expected, sql);
+ }
+ finally
+ {
+ System.getProperties().remove(ESCAPE_PATTERN_KEY);
+ }
}
|