Author: tomdz
Date: Tue Aug 9 14:48:26 2005
New Revision: 231122
URL: http://svn.apache.org/viewcvs?rev=231122&view=rev
Log:
Enhanced the dynasql tests for caseSensitive databases
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
URL:
http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java?rev=231122&r1=231121&r2=231122&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
(original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
Tue Aug 9 14:48:26 2005
@@ -25,6 +25,8 @@
import javax.sql.DataSource;
import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.beanutils.DynaBean;
+import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.ddlutils.builder.BuilderUtils;
import org.apache.ddlutils.dynabean.DynaSqlException;
@@ -218,6 +220,35 @@
catch (Exception ex)
{
throw new DynaSqlException(ex);
+ }
+ }
+
+ /**
+ * Determines the value of the bean's property that has the given name.
Depending on the
+ * case-setting of the current builder, the case of teh name is considered
or not.
+ *
+ * @param bean The bean
+ * @param propName The name of the property
+ * @return The value
+ */
+ protected Object getPropertyValue(DynaBean bean, String propName)
+ {
+ if (getBuilder().isCaseSensitive())
+ {
+ return bean.get(propName);
+ }
+ else
+ {
+ DynaProperty[] props = bean.getDynaClass().getDynaProperties();
+
+ for (int idx = 0; idx < props.length; idx++)
+ {
+ if (propName.equalsIgnoreCase(props[idx].getName()))
+ {
+ return bean.get(props[idx].getName());
+ }
+ }
+ throw new IllegalArgumentException("The bean has no property with
the name "+propName);
}
}
}
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java
URL:
http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java?rev=231122&r1=231121&r2=231122&view=diff
==============================================================================
---
db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java
(original)
+++
db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java
Tue Aug 9 14:48:26 2005
@@ -12,22 +12,22 @@
createDatabase(
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='ddlutils'>\n"+
- " <table name='testtable'>\n"+
- " <column name='id' type='INTEGER' primaryKey='true'/>\n"+
- " <column name='text' type='VARCHAR' size='15'/>\n"+
+ " <table name='TestTable'>\n"+
+ " <column name='Id' type='INTEGER' primaryKey='true'/>\n"+
+ " <column name='Text' type='VARCHAR' size='15'/>\n"+
" </table>\n"+
"</database>");
insertData(
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<data>\n"+
- " <testtable id='1' text='Text 1'/>\n"+
- " <testtable id='2' text='Text 2'/>\n"+
- " <testtable id='3' text='Text 3'/>"+
+ " <TestTable Id='1' Text='Text 1'/>\n"+
+ " <TestTable Id='2' Text='Text 2'/>\n"+
+ " <TestTable Id='3' Text='Text 3'/>"+
"</data>");
DynaSql dynaSql = new DynaSql(getBuilder(), getDataSource(),
getModel());
- DynaSqlIterator it = (DynaSqlIterator)dynaSql.query("SELECT *
FROM testtable");
+ DynaSqlIterator it = (DynaSqlIterator)dynaSql.query("SELECT *
FROM TestTable");
DynaBean bean = null;
assertTrue(it.hasNext());
@@ -37,27 +37,27 @@
bean = (DynaBean)it.next();
assertEquals(new Integer(1),
- bean.get("id"));
+ getPropertyValue(bean, "Id"));
assertEquals("Text 1",
- bean.get("text"));
+ getPropertyValue(bean, "Text"));
assertTrue(it.hasNext());
bean = (DynaBean)it.next();
assertEquals(new Integer(2),
- bean.get("id"));
+ getPropertyValue(bean, "Id"));
assertEquals("Text 2",
- bean.get("text"));
+ getPropertyValue(bean, "Text"));
assertTrue(it.hasNext());
bean = (DynaBean)it.next();
assertEquals(new Integer(3),
- bean.get("id"));
+ getPropertyValue(bean, "Id"));
assertEquals("Text 3",
- bean.get("text"));
+ getPropertyValue(bean, "Text"));
assertFalse(it.hasNext());
assertFalse(it.isConnectionOpen());
@@ -68,22 +68,22 @@
createDatabase(
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='ddlutils'>\n"+
- " <table name='testtable'>\n"+
- " <column name='id' type='INTEGER' primaryKey='true'/>\n"+
- " <column name='text' type='VARCHAR' size='15'/>\n"+
+ " <table name='TestTable'>\n"+
+ " <column name='Id' type='INTEGER' primaryKey='true'/>\n"+
+ " <column name='Text' type='VARCHAR' size='15'/>\n"+
" </table>\n"+
"</database>");
insertData(
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<data>\n"+
- " <testtable id='1' text='Text 1'/>\n"+
- " <testtable id='2' text='Text 2'/>\n"+
- " <testtable id='3' text='Text 3'/>"+
+ " <TestTable Id='1' Text='Text 1'/>\n"+
+ " <TestTable Id='2' Text='Text 2'/>\n"+
+ " <TestTable Id='3' Text='Text 3'/>"+
"</data>");
DynaSql dynaSql = new DynaSql(getBuilder(), getDataSource(),
getModel());
- List beans = dynaSql.fetch("SELECT * FROM testtable");
+ List beans = dynaSql.fetch("SELECT * FROM TestTable");
assertEquals(3,
beans.size());
@@ -91,23 +91,23 @@
DynaBean bean = (DynaBean)beans.get(0);
assertEquals(new Integer(1),
- bean.get("id"));
+ getPropertyValue(bean, "Id"));
assertEquals("Text 1",
- bean.get("text"));
+ getPropertyValue(bean, "Text"));
bean = (DynaBean)beans.get(1);
assertEquals(new Integer(2),
- bean.get("id"));
+ getPropertyValue(bean, "Id"));
assertEquals("Text 2",
- bean.get("text"));
+ getPropertyValue(bean, "Text"));
bean = (DynaBean)beans.get(2);
assertEquals(new Integer(3),
- bean.get("id"));
+ getPropertyValue(bean, "Id"));
assertEquals("Text 3",
- bean.get("text"));
+ getPropertyValue(bean, "Text"));
}
public void testJoinQuery() throws Exception
@@ -115,28 +115,28 @@
createDatabase(
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='ddlutils'>\n"+
- " <table name='testtable1'>\n"+
- " <column name='id1' type='INTEGER' primaryKey='true'/>\n"+
- " <column name='id2' type='INTEGER'/>\n"+
+ " <table name='TestTable1'>\n"+
+ " <column name='Id1' type='INTEGER' primaryKey='true'/>\n"+
+ " <column name='Id2' type='INTEGER'/>\n"+
" </table>\n"+
- " <table name='testtable2'>\n"+
- " <column name='id' type='INTEGER' primaryKey='true'/>\n"+
- " <column name='text' type='VARCHAR' size='15'/>\n"+
+ " <table name='TestTable2'>\n"+
+ " <column name='Id' type='INTEGER' primaryKey='true'/>\n"+
+ " <column name='Text' type='VARCHAR' size='15'/>\n"+
" </table>\n"+
"</database>");
insertData(
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<data>\n"+
- " <testtable1 id1='1'/>\n"+
- " <testtable1 id1='2' id2='3'/>\n"+
- " <testtable2 id='1' text='Text 1'/>\n"+
- " <testtable2 id='2' text='Text 2'/>\n"+
- " <testtable2 id='3' text='Text 3'/>"+
+ " <TestTable1 Id1='1'/>\n"+
+ " <TestTable1 Id1='2' Id2='3'/>\n"+
+ " <TestTable2 Id='1' Text='Text 1'/>\n"+
+ " <TestTable2 Id='2' Text='Text 2'/>\n"+
+ " <TestTable2 Id='3' Text='Text 3'/>"+
"</data>");
DynaSql dynaSql = new DynaSql(getBuilder(), getDataSource(),
getModel());
- DynaSqlIterator it = (DynaSqlIterator)dynaSql.query("SELECT id1,
text FROM testtable1, testtable2 WHERE id2 = id");
+ DynaSqlIterator it = (DynaSqlIterator)dynaSql.query("SELECT Id1,
Text FROM TestTable1, TestTable2 WHERE Id2 = Id");
DynaBean bean = null;
assertTrue(it.hasNext());
@@ -144,9 +144,9 @@
bean = (DynaBean)it.next();
assertEquals(new Integer(2),
- bean.get("id1"));
+ getPropertyValue(bean, "Id1"));
assertEquals("Text 3",
- bean.get("text"));
+ getPropertyValue(bean, "Text"));
assertFalse(it.hasNext());
assertFalse(it.isConnectionOpen());