Author: tomdz
Date: Sat Mar 8 04:02:12 2008
New Revision: 634941
URL: http://svn.apache.org/viewvc?rev=634941&view=rev
Log:
Added test for DDLUTILS-179: Output trunked when using the method
write(Database, OutputStream) of DatabaseIO
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?rev=634941&r1=634940&r2=634941&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestMisc.java Sat Mar 8
04:02:12 2008
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
@@ -30,6 +32,7 @@
import junit.framework.Test;
import org.apache.commons.beanutils.DynaBean;
+import org.apache.ddlutils.model.Database;
import org.apache.ddlutils.platform.hsqldb.HsqlDbPlatform;
import org.apache.ddlutils.platform.sybase.SybasePlatform;
import org.dom4j.Document;
@@ -1067,5 +1070,87 @@
assertEquals(getAdjustedModel(),
readModelFromDatabase("roundtriptest"));
+ }
+
+ /**
+ * Test for DDLUTILS-179.
+ */
+ public void testDdlUtils179() throws Exception
+ {
+ final String modelXml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='A'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true'
required='true'/>\n"+
+ " <column name='fk' type='INTEGER' required='false'/>\n"+
+ " <foreign-key name='AtoA' foreignTable='A'>\n"+
+ " <reference local='fk' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ " <table name='B'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true'
required='true'/>\n"+
+ " <column name='fk1' type='INTEGER' required='false'/>\n"+
+ " <column name='fk2' type='INTEGER' required='false'/>\n"+
+ " <foreign-key name='BtoB' foreignTable='B'>\n"+
+ " <reference local='fk1' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " <foreign-key name='BtoG' foreignTable='G'>\n"+
+ " <reference local='fk2' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ " <table name='C'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true'
required='true'/>\n"+
+ " <column name='fk' type='INTEGER' required='false'/>\n"+
+ " <foreign-key name='CtoD' foreignTable='D'>\n"+
+ " <reference local='fk' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ " <table name='D'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true'
required='true'/>\n"+
+ " <column name='fk' type='INTEGER' required='false'/>\n"+
+ " <foreign-key name='DtoF' foreignTable='F'>\n"+
+ " <reference local='fk' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ " <table name='E'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true'
required='true'/>\n"+
+ " </table>\n"+
+ " <table name='F'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true'
required='true'/>\n"+
+ " <column name='fk' type='INTEGER' required='false'/>\n"+
+ " <foreign-key name='FtoC' foreignTable='C'>\n"+
+ " <reference local='fk' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ " <table name='G'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true'
required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+
+ createDatabase(modelXml);
+
+ Database readModel = readModelFromDatabase("roundtriptest");
+
+ assertEquals(getAdjustedModel(),
+ readModel);
+
+ File tmpFile = File.createTempFile("model", ".xml");
+
+ try
+ {
+ DatabaseIO dbIO = new DatabaseIO();
+ FileOutputStream out = new FileOutputStream(tmpFile);
+
+ dbIO.write(readModel, out);
+ out.flush();
+ out.close();
+
+ assertEquals(getAdjustedModel(),
+ dbIO.read(tmpFile));
+ }
+ finally
+ {
+ tmpFile.delete();
+ }
}
}