Author: tomdz
Date: Mon Nov  3 15:48:04 2008
New Revision: 711127

URL: http://svn.apache.org/viewvc?rev=711127&view=rev
Log:
Added tests for DDLUTILS-208

Modified:
    db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestAlteration.java

Modified: 
db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestAlteration.java
URL: 
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestAlteration.java?rev=711127&r1=711126&r2=711127&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestAlteration.java 
(original)
+++ db/ddlutils/trunk/src/test/java/org/apache/ddlutils/io/TestAlteration.java 
Mon Nov  3 15:48:04 2008
@@ -101,6 +101,163 @@
     }
 
     /**
+     * Test for DDLUTILS-208.
+     */
+    public void testChangeColumnOrderWithAutoIncrementPK()
+    {
+        final String model1Xml; 
+        final String model2Xml; 
+
+        if (SybasePlatform.DATABASENAME.equals(getPlatform().getName()))
+        {
+            model1Xml = 
+                "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' 
name='roundtriptest'>\n"+
+                "  <table name='roundtrip'>\n"+
+                "    <column name='pk' type='NUMERIC' size='12,0' 
primaryKey='true' required='true' autoIncrement='true'/>\n"+
+                "    <column name='avalue1' type='VARCHAR' size='32'/>\n"+
+                "    <column name='avalue4' type='VARCHAR' size='5'/>\n"+
+                "    <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
+                "    <column name='avalue2' type='INTEGER'/>\n"+
+                "  </table>\n"+
+                "</database>";
+            model2Xml = 
+                "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' 
name='roundtriptest'>\n"+
+                "  <table name='roundtrip'>\n"+
+                "    <column name='pk' type='NUMERIC' size='12,0' 
primaryKey='true' required='true' autoIncrement='true'/>\n"+
+                "    <column name='avalue1' type='VARCHAR' size='32'/>\n"+
+                "    <column name='avalue2' type='INTEGER'/>\n"+
+                "    <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
+                "    <column name='avalue4' type='VARCHAR' size='5'/>\n"+
+                "  </table>\n"+
+                "</database>";
+        }
+        else
+        {
+            model1Xml = 
+                "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' 
name='roundtriptest'>\n"+
+                "  <table name='roundtrip'>\n"+
+                "    <column name='pk' type='INTEGER' primaryKey='true' 
required='true' autoIncrement='true'/>\n"+
+                "    <column name='avalue1' type='VARCHAR' size='32'/>\n"+
+                "    <column name='avalue4' type='VARCHAR' size='5'/>\n"+
+                "    <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
+                "    <column name='avalue2' type='INTEGER'/>\n"+
+                "  </table>\n"+
+                "</database>";
+            model2Xml = 
+                "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' 
name='roundtriptest'>\n"+
+                "  <table name='roundtrip'>\n"+
+                "    <column name='pk' type='INTEGER' primaryKey='true' 
required='true' autoIncrement='true'/>\n"+
+                "    <column name='avalue1' type='VARCHAR' size='32'/>\n"+
+                "    <column name='avalue2' type='INTEGER'/>\n"+
+                "    <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
+                "    <column name='avalue4' type='VARCHAR' size='5'/>\n"+
+                "  </table>\n"+
+                "</database>";
+        }
+
+        createDatabase(model1Xml);
+
+        insertRow("roundtrip", new Object[] { null, "test", "value", null, 
null });
+
+        alterDatabase(model2Xml);
+
+        assertEquals(getAdjustedModel(),
+                     readModelFromDatabase("roundtriptest"));
+
+        List beans = getRows("roundtrip");
+
+        assertEquals((Object)"test", beans.get(0), "avalue1");
+        assertEquals((Object)null, beans.get(0), "avalue2");
+        assertEquals(new Double(1.0), beans.get(0), "avalue3");
+        assertEquals((Object)"value", beans.get(0), "avalue4");
+    }
+
+    /**
+     * Test for DDLUTILS-208.
+     */
+    public void testChangeColumnOrderWithAutoIncrementColumn()
+    {
+        if (!getPlatformInfo().isNonPrimaryKeyIdentityColumnsSupported())
+        {
+            return;
+        }
+
+        final String model1Xml; 
+        final String model2Xml; 
+
+        if (SybasePlatform.DATABASENAME.equals(getPlatform().getName()))
+        {
+            model1Xml = 
+                "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' 
name='roundtriptest'>\n"+
+                "  <table name='roundtrip'>\n"+
+                "    <column name='pk' type='INTEGER' primaryKey='true' 
required='true'/>\n"+
+                "    <column name='avalue1' type='VARCHAR' size='32'/>\n"+
+                "    <column name='avalue4' type='VARCHAR' size='5'/>\n"+
+                "    <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
+                "    <column name='avalue2' type='NUMERIC' size='12,0' 
required='true' autoIncrement='true'/>\n"+
+                "  </table>\n"+
+                "</database>";
+            model2Xml = 
+                "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' 
name='roundtriptest'>\n"+
+                "  <table name='roundtrip'>\n"+
+                "    <column name='pk' type='INTEGER' primaryKey='true' 
required='true'/>\n"+
+                "    <column name='avalue1' type='VARCHAR' size='32'/>\n"+
+                "    <column name='avalue2' type='NUMERIC' size='12,0' 
required='true' autoIncrement='true'/>\n"+
+                "    <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
+                "    <column name='avalue4' type='VARCHAR' size='5'/>\n"+
+                "  </table>\n"+
+                "</database>";
+        }
+        else
+        {
+            model1Xml = 
+                "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' 
name='roundtriptest'>\n"+
+                "  <table name='roundtrip'>\n"+
+                "    <column name='pk' type='INTEGER' primaryKey='true' 
required='true'/>\n"+
+                "    <column name='avalue1' type='VARCHAR' size='32'/>\n"+
+                "    <column name='avalue4' type='VARCHAR' size='5'/>\n"+
+                "    <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
+                "    <column name='avalue2' type='INTEGER' required='true' 
autoIncrement='true'/>\n"+
+                "  </table>\n"+
+                "</database>";
+            model2Xml = 
+                "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+                "<database xmlns='" + DatabaseIO.DDLUTILS_NAMESPACE + "' 
name='roundtriptest'>\n"+
+                "  <table name='roundtrip'>\n"+
+                "    <column name='pk' type='INTEGER' primaryKey='true' 
required='true' autoIncrement='true'/>\n"+
+                "    <column name='avalue1' type='VARCHAR' size='32'/>\n"+
+                "    <column name='avalue2' type='INTEGER' required='true' 
autoIncrement='true'/>\n"+
+                "    <column name='avalue3' type='DOUBLE' default='1.0'/>\n"+
+                "    <column name='avalue4' type='VARCHAR' size='5'/>\n"+
+                "  </table>\n"+
+                "</database>";
+        }
+
+        createDatabase(model1Xml);
+
+        insertRow("roundtrip", new Object[] { new Integer(1), "test", "value", 
null, null });
+
+        alterDatabase(model2Xml);
+
+        assertEquals(getAdjustedModel(),
+                     readModelFromDatabase("roundtriptest"));
+
+        List beans = getRows("roundtrip");
+
+        assertEquals((Object)"test",  beans.get(0), "avalue1");
+        assertEquals(new Integer(1),  beans.get(0), "avalue2");
+        assertEquals(new Double(1.0), beans.get(0), "avalue3");
+        assertEquals((Object)"value", beans.get(0), "avalue4");
+    }
+
+    /**
      * Tests the removal of a column.
      */
     public void testDropColumn()


Reply via email to