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()