You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-dev@db.apache.org by to...@apache.org on 2007/01/12 07:50:59 UTC
svn commit: r495497 -
/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java
Author: tomdz
Date: Thu Jan 11 22:50:58 2007
New Revision: 495497
URL: http://svn.apache.org/viewvc?view=rev&rev=495497
Log:
Added another data io test
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java?view=diff&rev=495497&r1=495496&r2=495497
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java Thu Jan 11 22:50:58 2007
@@ -95,42 +95,33 @@
SAXReader reader = new SAXReader();
Document testDoc = reader.read(new InputSource(new StringReader(dataAsXml)));
- List misc1Rows = testDoc.selectNodes("//misc1");
- List misc2Rows = testDoc.selectNodes("//misc2");
+ List misc1Rows = testDoc.selectNodes("//misc1");
+ List misc2Rows = testDoc.selectNodes("//misc2");
+ String pkColumnName = "pk";
+ String fkColumnName = "fk";
+ String valueColumnName = "avalue";
- if (misc1Rows.size() > 0)
+ if (misc1Rows.size() == 0)
{
- assertEquals(3, misc1Rows.size());
- assertEquals("10", ((Element)misc1Rows.get(0)).attributeValue("pk"));
- assertEquals("1", ((Element)misc1Rows.get(0)).attributeValue("avalue"));
- assertEquals("12", ((Element)misc1Rows.get(1)).attributeValue("pk"));
- assertEquals("2", ((Element)misc1Rows.get(1)).attributeValue("avalue"));
- assertEquals("13", ((Element)misc1Rows.get(2)).attributeValue("pk"));
- assertEquals("3", ((Element)misc1Rows.get(2)).attributeValue("avalue"));
- assertEquals(2, misc2Rows.size());
- assertEquals("1", ((Element)misc2Rows.get(0)).attributeValue("pk"));
- assertEquals("10", ((Element)misc2Rows.get(0)).attributeValue("fk"));
- assertEquals("2", ((Element)misc2Rows.get(1)).attributeValue("pk"));
- assertEquals("13", ((Element)misc2Rows.get(1)).attributeValue("fk"));
+ misc1Rows = testDoc.selectNodes("//MISC1");
+ misc2Rows = testDoc.selectNodes("//MISC2");
+ pkColumnName = pkColumnName.toUpperCase();
+ fkColumnName = fkColumnName.toUpperCase();
+ valueColumnName = valueColumnName.toUpperCase();
}
- else
- {
- misc1Rows = testDoc.selectNodes("//MISC1");
- misc2Rows = testDoc.selectNodes("//MISC2");
- assertEquals(3, misc1Rows.size());
- assertEquals("10", ((Element)misc1Rows.get(0)).attributeValue("PK"));
- assertEquals("1", ((Element)misc1Rows.get(0)).attributeValue("AVALUE"));
- assertEquals("12", ((Element)misc1Rows.get(1)).attributeValue("PK"));
- assertEquals("2", ((Element)misc1Rows.get(1)).attributeValue("AVALUE"));
- assertEquals("13", ((Element)misc1Rows.get(2)).attributeValue("PK"));
- assertEquals("3", ((Element)misc1Rows.get(2)).attributeValue("AVALUE"));
- assertEquals(2, misc2Rows.size());
- assertEquals("1", ((Element)misc2Rows.get(0)).attributeValue("PK"));
- assertEquals("10", ((Element)misc2Rows.get(0)).attributeValue("FK"));
- assertEquals("2", ((Element)misc2Rows.get(1)).attributeValue("PK"));
- assertEquals("13", ((Element)misc2Rows.get(1)).attributeValue("FK"));
- }
+ assertEquals(3, misc1Rows.size());
+ assertEquals("10", ((Element)misc1Rows.get(0)).attributeValue(pkColumnName));
+ assertEquals("1", ((Element)misc1Rows.get(0)).attributeValue(valueColumnName));
+ assertEquals("12", ((Element)misc1Rows.get(1)).attributeValue(pkColumnName));
+ assertEquals("2", ((Element)misc1Rows.get(1)).attributeValue(valueColumnName));
+ assertEquals("13", ((Element)misc1Rows.get(2)).attributeValue(pkColumnName));
+ assertEquals("3", ((Element)misc1Rows.get(2)).attributeValue(valueColumnName));
+ assertEquals(2, misc2Rows.size());
+ assertEquals("1", ((Element)misc2Rows.get(0)).attributeValue(pkColumnName));
+ assertEquals("10", ((Element)misc2Rows.get(0)).attributeValue(fkColumnName));
+ assertEquals("2", ((Element)misc2Rows.get(1)).attributeValue(pkColumnName));
+ assertEquals("13", ((Element)misc2Rows.get(1)).attributeValue(fkColumnName));
dropDatabase();
createDatabase(modelXml);
@@ -203,42 +194,33 @@
SAXReader reader = new SAXReader();
Document testDoc = reader.read(new InputSource(new StringReader(dataAsXml)));
- List misc1Rows = testDoc.selectNodes("//misc1");
- List misc2Rows = testDoc.selectNodes("//misc2");
+ List misc1Rows = testDoc.selectNodes("//misc1");
+ List misc2Rows = testDoc.selectNodes("//misc2");
+ String pkColumnName = "pk";
+ String fkColumnName = "fk";
+ String valueColumnName = "avalue";
- if (misc1Rows.size() > 0)
+ if (misc1Rows.size() == 0)
{
- assertEquals(3, misc1Rows.size());
- assertEquals("10", ((Element)misc1Rows.get(0)).attributeValue("pk"));
- assertEquals("1", ((Element)misc1Rows.get(0)).attributeValue("avalue"));
- assertEquals("12", ((Element)misc1Rows.get(1)).attributeValue("pk"));
- assertEquals("2", ((Element)misc1Rows.get(1)).attributeValue("avalue"));
- assertEquals("13", ((Element)misc1Rows.get(2)).attributeValue("pk"));
- assertEquals("3", ((Element)misc1Rows.get(2)).attributeValue("avalue"));
- assertEquals(2, misc2Rows.size());
- assertEquals("1", ((Element)misc2Rows.get(0)).attributeValue("pk"));
- assertEquals("10", ((Element)misc2Rows.get(0)).attributeValue("fk"));
- assertEquals("2", ((Element)misc2Rows.get(1)).attributeValue("pk"));
- assertEquals("13", ((Element)misc2Rows.get(1)).attributeValue("fk"));
+ misc1Rows = testDoc.selectNodes("//MISC1");
+ misc2Rows = testDoc.selectNodes("//MISC2");
+ pkColumnName = pkColumnName.toUpperCase();
+ fkColumnName = fkColumnName.toUpperCase();
+ valueColumnName = valueColumnName.toUpperCase();
}
- else
- {
- misc1Rows = testDoc.selectNodes("//MISC1");
- misc2Rows = testDoc.selectNodes("//MISC2");
- assertEquals(3, misc1Rows.size());
- assertEquals("10", ((Element)misc1Rows.get(0)).attributeValue("PK"));
- assertEquals("1", ((Element)misc1Rows.get(0)).attributeValue("AVALUE"));
- assertEquals("12", ((Element)misc1Rows.get(1)).attributeValue("PK"));
- assertEquals("2", ((Element)misc1Rows.get(1)).attributeValue("AVALUE"));
- assertEquals("13", ((Element)misc1Rows.get(2)).attributeValue("PK"));
- assertEquals("3", ((Element)misc1Rows.get(2)).attributeValue("AVALUE"));
- assertEquals(2, misc2Rows.size());
- assertEquals("1", ((Element)misc2Rows.get(0)).attributeValue("PK"));
- assertEquals("10", ((Element)misc2Rows.get(0)).attributeValue("FK"));
- assertEquals("2", ((Element)misc2Rows.get(1)).attributeValue("PK"));
- assertEquals("13", ((Element)misc2Rows.get(1)).attributeValue("FK"));
- }
+ assertEquals(3, misc1Rows.size());
+ assertEquals("10", ((Element)misc1Rows.get(0)).attributeValue(pkColumnName));
+ assertEquals("1", ((Element)misc1Rows.get(0)).attributeValue(valueColumnName));
+ assertEquals("12", ((Element)misc1Rows.get(1)).attributeValue(pkColumnName));
+ assertEquals("2", ((Element)misc1Rows.get(1)).attributeValue(valueColumnName));
+ assertEquals("13", ((Element)misc1Rows.get(2)).attributeValue(pkColumnName));
+ assertEquals("3", ((Element)misc1Rows.get(2)).attributeValue(valueColumnName));
+ assertEquals(2, misc2Rows.size());
+ assertEquals("1", ((Element)misc2Rows.get(0)).attributeValue(pkColumnName));
+ assertEquals("10", ((Element)misc2Rows.get(0)).attributeValue(fkColumnName));
+ assertEquals("2", ((Element)misc2Rows.get(1)).attributeValue(pkColumnName));
+ assertEquals("13", ((Element)misc2Rows.get(1)).attributeValue(fkColumnName));
dropDatabase();
createDatabase(modelXml);
@@ -302,34 +284,26 @@
SAXReader reader = new SAXReader();
Document testDoc = reader.read(new InputSource(new StringReader(dataAsXml)));
- List miscRows = testDoc.selectNodes("//misc");
+ List miscRows = testDoc.selectNodes("//misc");
+ String pkColumnName = "pk";
+ String fkColumnName = "fk";
- if (miscRows.size() > 0)
+ if (miscRows.size() == 0)
{
- assertEquals(4, miscRows.size());
- assertEquals("1", ((Element)miscRows.get(0)).attributeValue("pk"));
- assertNull(((Element)miscRows.get(0)).attributeValue("fk"));
- assertEquals("2", ((Element)miscRows.get(1)).attributeValue("pk"));
- assertEquals("1", ((Element)miscRows.get(1)).attributeValue("fk"));
- assertEquals("3", ((Element)miscRows.get(2)).attributeValue("pk"));
- assertEquals("2", ((Element)miscRows.get(2)).attributeValue("fk"));
- assertEquals("4", ((Element)miscRows.get(3)).attributeValue("pk"));
- assertEquals("4", ((Element)miscRows.get(3)).attributeValue("fk"));
+ miscRows = testDoc.selectNodes("//MISC");
+ pkColumnName = pkColumnName.toUpperCase();
+ fkColumnName = fkColumnName.toUpperCase();
}
- else
- {
- miscRows = testDoc.selectNodes("//MISC");
- assertEquals(4, miscRows.size());
- assertEquals("1", ((Element)miscRows.get(0)).attributeValue("PK"));
- assertNull(((Element)miscRows.get(0)).attributeValue("FK"));
- assertEquals("2", ((Element)miscRows.get(1)).attributeValue("PK"));
- assertEquals("1", ((Element)miscRows.get(1)).attributeValue("FK"));
- assertEquals("3", ((Element)miscRows.get(2)).attributeValue("PK"));
- assertEquals("2", ((Element)miscRows.get(2)).attributeValue("FK"));
- assertEquals("4", ((Element)miscRows.get(3)).attributeValue("PK"));
- assertEquals("4", ((Element)miscRows.get(3)).attributeValue("FK"));
- }
+ assertEquals(4, miscRows.size());
+ assertEquals("1", ((Element)miscRows.get(0)).attributeValue(pkColumnName));
+ assertNull(((Element)miscRows.get(0)).attributeValue(fkColumnName));
+ assertEquals("2", ((Element)miscRows.get(1)).attributeValue(pkColumnName));
+ assertEquals("1", ((Element)miscRows.get(1)).attributeValue(fkColumnName));
+ assertEquals("3", ((Element)miscRows.get(2)).attributeValue(pkColumnName));
+ assertEquals("2", ((Element)miscRows.get(2)).attributeValue(fkColumnName));
+ assertEquals("4", ((Element)miscRows.get(3)).attributeValue(pkColumnName));
+ assertEquals("4", ((Element)miscRows.get(3)).attributeValue(fkColumnName));
dropDatabase();
createDatabase(modelXml);
@@ -392,34 +366,26 @@
SAXReader reader = new SAXReader();
Document testDoc = reader.read(new InputSource(new StringReader(dataAsXml)));
- List miscRows = testDoc.selectNodes("//misc");
+ List miscRows = testDoc.selectNodes("//misc");
+ String pkColumnName = "pk";
+ String fkColumnName = "fk";
- if (miscRows.size() > 0)
+ if (miscRows.size() == 0)
{
- assertEquals(4, miscRows.size());
- assertEquals("10", ((Element)miscRows.get(0)).attributeValue("pk"));
- assertNull(((Element)miscRows.get(0)).attributeValue("fk"));
- assertEquals("11", ((Element)miscRows.get(1)).attributeValue("pk"));
- assertEquals("10", ((Element)miscRows.get(1)).attributeValue("fk"));
- assertEquals("12", ((Element)miscRows.get(2)).attributeValue("pk"));
- assertEquals("11", ((Element)miscRows.get(2)).attributeValue("fk"));
- assertEquals("13", ((Element)miscRows.get(3)).attributeValue("pk"));
- assertEquals("13", ((Element)miscRows.get(3)).attributeValue("fk"));
+ miscRows = testDoc.selectNodes("//MISC");
+ pkColumnName = pkColumnName.toUpperCase();
+ fkColumnName = fkColumnName.toUpperCase();
}
- else
- {
- miscRows = testDoc.selectNodes("//MISC");
- assertEquals(4, miscRows.size());
- assertEquals("10", ((Element)miscRows.get(0)).attributeValue("PK"));
- assertNull(((Element)miscRows.get(0)).attributeValue("FK"));
- assertEquals("11", ((Element)miscRows.get(1)).attributeValue("PK"));
- assertEquals("10", ((Element)miscRows.get(1)).attributeValue("FK"));
- assertEquals("12", ((Element)miscRows.get(2)).attributeValue("PK"));
- assertEquals("11", ((Element)miscRows.get(2)).attributeValue("FK"));
- assertEquals("13", ((Element)miscRows.get(3)).attributeValue("PK"));
- assertEquals("13", ((Element)miscRows.get(3)).attributeValue("FK"));
- }
+ assertEquals(4, miscRows.size());
+ assertEquals("10", ((Element)miscRows.get(0)).attributeValue(pkColumnName));
+ assertNull(((Element)miscRows.get(0)).attributeValue(fkColumnName));
+ assertEquals("11", ((Element)miscRows.get(1)).attributeValue(pkColumnName));
+ assertEquals("10", ((Element)miscRows.get(1)).attributeValue(fkColumnName));
+ assertEquals("12", ((Element)miscRows.get(2)).attributeValue(pkColumnName));
+ assertEquals("11", ((Element)miscRows.get(2)).attributeValue(fkColumnName));
+ assertEquals("13", ((Element)miscRows.get(3)).attributeValue(pkColumnName));
+ assertEquals("13", ((Element)miscRows.get(3)).attributeValue(fkColumnName));
dropDatabase();
createDatabase(modelXml);
@@ -438,5 +404,83 @@
assertEquals(new Integer(11), beans.get(2), "fk");
assertEquals(new Integer(13), beans.get(3), "pk");
assertEquals(new Integer(13), beans.get(3), "fk");
+ }
+
+ /**
+ * Tests the backup and restore of a self-referencing data set.
+ */
+ public void testSelfReferences() throws Exception
+ {
+ if (!getPlatformInfo().isIdentityOverrideAllowed())
+ {
+ // TODO: for testing these platforms, we need deleteRows
+ return;
+ }
+
+ final String modelXml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='misc'>\n"+
+ " <column name='id' primaryKey='true' required='true' type='SMALLINT' size='2' autoIncrement='true'/>\n"+
+ " <column name='parent_id' primaryKey='false' required='false' type='SMALLINT' size='2' autoIncrement='false'/>\n"+
+ " <foreign-key foreignTable='misc' name='misc_parent_fk'>\n"+
+ " <reference local='parent_id' foreign='id'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ "</database>";
+ final String dataXml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<data>\n"+
+ " <misc id='4' parent_id='1'/>\n"+
+ " <misc id='7' parent_id='1'/>\n"+
+ " <misc id='3' parent_id='2'/>\n"+
+ " <misc id='5' parent_id='3'/>\n"+
+ " <misc id='8' parent_id='7'/>\n"+
+ " <misc id='9' parent_id='6'/>\n"+
+ " <misc id='10' parent_id='4'/>\n"+
+ " <misc id='1'/>\n"+
+ " <misc id='2'/>\n"+
+ " <misc id='6'/>\n"+
+ " <misc id='11'/>\n"+
+ " <misc id='12' parent_id='11'/>\n"+
+ "</data>";
+
+ createDatabase(modelXml);
+
+ getPlatform().setIdentityOverrideOn(true);
+
+ DatabaseDataIO dataIO = new DatabaseDataIO();
+ StringReader stringReader = new StringReader(dataXml);
+
+ dataIO.writeDataToDatabase(getPlatform(), new Reader[] { stringReader });
+
+ List beans = getRows("misc");
+
+ assertEquals(12, beans.size());
+ // this is the order of actual insertion (the fk order)
+ assertEquals(new Integer(1), beans.get(0), "id");
+ assertNull(((DynaBean)beans.get(0)).get("parent_id"));
+ assertEquals(new Integer(4), beans.get(1), "id");
+ assertEquals(new Integer(1), beans.get(1), "parent_id");
+ assertEquals(new Integer(10), beans.get(2), "id");
+ assertEquals(new Integer(4), beans.get(2), "parent_id");
+ assertEquals(new Integer(7), beans.get(3), "id");
+ assertEquals(new Integer(1), beans.get(3), "parent_id");
+ assertEquals(new Integer(8), beans.get(4), "id");
+ assertEquals(new Integer(7), beans.get(4), "parent_id");
+ assertEquals(new Integer(2), beans.get(5), "id");
+ assertNull(((DynaBean)beans.get(5)).get("parent_id"));
+ assertEquals(new Integer(3), beans.get(6), "id");
+ assertEquals(new Integer(2), beans.get(6), "parent_id");
+ assertEquals(new Integer(5), beans.get(7), "id");
+ assertEquals(new Integer(3), beans.get(7), "parent_id");
+ assertEquals(new Integer(6), beans.get(8), "id");
+ assertNull(((DynaBean)beans.get(8)).get("parent_id"));
+ assertEquals(new Integer(9), beans.get(9), "id");
+ assertEquals(new Integer(6), beans.get(9), "parent_id");
+ assertEquals(new Integer(11), beans.get(10), "id");
+ assertNull(((DynaBean)beans.get(10)).get("parent_id"));
+ assertEquals(new Integer(12), beans.get(11), "id");
+ assertEquals(new Integer(11), beans.get(11), "parent_id");
}
}