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 2006/05/06 14:10:42 UTC
svn commit: r400299 - in /db/ddlutils/trunk/src/test/org/apache/ddlutils:
TestDatabaseWriterBase.java io/TestAlteration.java
Author: tomdz
Date: Sat May 6 05:10:40 2006
New Revision: 400299
URL: http://svn.apache.org/viewcvs?rev=400299&view=rev
Log:
Changed the alteration tests to be more readable
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.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=400299&r1=400298&r2=400299&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java Sat May 6 05:10:40 2006
@@ -248,6 +248,19 @@
/**
* Alters the database to match the given model.
*
+ * @param schemaXml The model XML
+ */
+ protected Database alterDatabase(String schemaXml) throws DynaSqlException
+ {
+ Database model = parseDatabaseFromString(schemaXml);
+
+ alterDatabase(model);
+ return model;
+ }
+
+ /**
+ * Alters the database to match the given model.
+ *
* @param model The model
*/
protected void alterDatabase(Database model) throws DynaSqlException
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java?rev=400299&r1=400298&r2=400299&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java Sat May 6 05:10:40 2006
@@ -16,21 +16,10 @@
* limitations under the License.
*/
-import java.sql.Types;
import java.util.List;
import junit.framework.Test;
-import org.apache.ddlutils.model.Column;
-import org.apache.ddlutils.model.Database;
-import org.apache.ddlutils.model.ForeignKey;
-import org.apache.ddlutils.model.Index;
-import org.apache.ddlutils.model.IndexColumn;
-import org.apache.ddlutils.model.NonUniqueIndex;
-import org.apache.ddlutils.model.Reference;
-import org.apache.ddlutils.model.Table;
-import org.apache.ddlutils.model.UniqueIndex;
-
/**
* Performs tests for the alteration of databases.
*
@@ -54,7 +43,7 @@
*/
public void testChangeDatatype1()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -62,19 +51,23 @@
" <column name='avalue' type='INTEGER' required='false'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='DOUBLE' required='false'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Integer(2) });
- model.getTable(0).getColumn(1).setTypeCode(Types.DOUBLE);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -86,7 +79,7 @@
*/
public void testChangeDatatype2()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -94,20 +87,23 @@
" <column name='avalue' type='SMALLINT' required='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='VARCHAR' size='20' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Short((short)2) });
- model.getTable(0).getColumn(1).setTypeCode(Types.VARCHAR);
- model.getTable(0).getColumn(1).setSize("20");
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -119,7 +115,7 @@
*/
public void testChangeNull()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -127,19 +123,23 @@
" <column name='avalue' type='INTEGER' required='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER' required='false'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Integer(2) });
- model.getTable(0).getColumn(1).setRequired(false);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -151,7 +151,7 @@
*/
public void testAddDefault()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -159,19 +159,23 @@
" <column name='avalue' type='DOUBLE'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='DOUBLE' default='2.0'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Double(2.0) });
- model.getTable(0).getColumn(1).setDefaultValue("1.0");
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -183,7 +187,7 @@
*/
public void testChangeDefault()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -191,19 +195,23 @@
" <column name='avalue' type='INTEGER' default='1'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER' default='20'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Integer(2) });
- model.getTable(0).getColumn(1).setDefaultValue("20");
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -215,7 +223,7 @@
*/
public void testDropDefault()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -223,19 +231,23 @@
" <column name='avalue' type='VARCHAR' size='20' default='test'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='VARCHAR' size='20'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1) });
- model.getTable(0).getColumn(1).setDefaultValue(null);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -247,7 +259,7 @@
*/
public void testMakeAutoIncrement()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -255,23 +267,26 @@
" <column name='avalue' type='INTEGER'/>\n"+
" </table>\n"+
"</database>";
-
- Database model = createDatabase(modelXml);
-
- insertRow("roundtrip", new Object[] { new Integer(1), new Integer(2) });
-
// since some databases require/automatically make the column required
- // we use it like this in this test in order to avoid problems when
+ // we also make the column required in order to avoid problems when
// comparing the model from the live database with our assumed one
- model.getTable(0).getColumn(1).setAutoIncrement(true);
- model.getTable(0).getColumn(1).setRequired(true);
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER' autoIncrement='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+
+ createDatabase(model1Xml);
- alterDatabase(model);
+ insertRow("roundtrip", new Object[] { new Integer(1), new Integer(2) });
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -283,7 +298,7 @@
*/
public void testDropAutoIncrement()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -291,19 +306,23 @@
" <column name='avalue' type='INTEGER' autoIncrement='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER' autoIncrement='false'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1) });
- model.getTable(0).getColumn(1).setAutoIncrement(false);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -315,32 +334,30 @@
*/
public void testAddColumn()
{
- final String modelXml =
+ final String model1Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ final String model2Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
" <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER' default='2' required='true'/>\n"+
" </table>\n"+
"</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1) });
- Column newColumn = new Column();
-
- newColumn.setName("avalue");
- newColumn.setTypeCode(Types.INTEGER);
- newColumn.setDefaultValue("2");
- newColumn.setRequired(true);
- model.getTable(0).addColumn(newColumn);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -352,7 +369,7 @@
*/
public void testDropColumn()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -360,19 +377,22 @@
" <column name='avalue' type='VARCHAR' size='50'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), "test" });
- model.getTable(0).removeColumn(1);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -384,7 +404,7 @@
*/
public void testAddColumnToPK()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -392,19 +412,23 @@
" <column name='avalue' type='VARCHAR' size='50' required='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='VARCHAR' size='50' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), "test" });
- model.getTable(0).getColumn(1).setPrimaryKey(true);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -416,7 +440,7 @@
*/
public void testRemoveColumnFromPK()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -424,19 +448,23 @@
" <column name='avalue' type='VARCHAR' size='50' primaryKey='true' required='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='VARCHAR' size='50' primaryKey='false' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), "test" });
- model.getTable(0).getColumn(1).setPrimaryKey(false);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -448,33 +476,30 @@
*/
public void testAddPKColumn()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
" <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER' default='0' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1) });
- Column newColumn = new Column();
-
- newColumn.setName("avalue");
- newColumn.setTypeCode(Types.INTEGER);
- newColumn.setPrimaryKey(true);
- newColumn.setRequired(true);
- newColumn.setDefaultValue("0");
- model.getTable(0).addColumn(newColumn);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -486,7 +511,7 @@
*/
public void testDropPKColumn()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -494,19 +519,22 @@
" <column name='avalue' type='VARCHAR' size='50' primaryKey='true' required='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), "test" });
- model.getTable(0).removeColumn(1);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -518,7 +546,7 @@
*/
public void testAddIndex()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -527,25 +555,28 @@
" <column name='avalue2' type='INTEGER' required='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue1' type='VARCHAR' size='50'/>\n"+
+ " <column name='avalue2' type='INTEGER' required='true'/>\n"+
+ " <index name='test'>\n"+
+ " <index-column name='avalue1'/>\n"+
+ " <index-column name='avalue2'/>\n"+
+ " </index>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), null, new Integer(2) });
- Index newIndex = new NonUniqueIndex();
-
- newIndex.setName("test");
- newIndex.addColumn(new IndexColumn(model.getTable(0).getColumn(1).getName()));
- newIndex.addColumn(new IndexColumn(model.getTable(0).getColumn(2).getName()));
-
- model.getTable(0).addIndex(newIndex);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -558,32 +589,34 @@
*/
public void testAddUniqueIndex()
{
- final String modelXml =
+ final String model1Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER'/>\n"+
+ " </table>\n"+
+ "</database>";
+ final String model2Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
" <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
" <column name='avalue' type='INTEGER'/>\n"+
+ " <unique name='test'>\n"+
+ " <unique-column name='avalue'/>\n"+
+ " </unique>\n"+
" </table>\n"+
"</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Integer(2) });
- Index newIndex = new UniqueIndex();
-
- newIndex.setName("test");
- newIndex.addColumn(new IndexColumn(model.getTable(0).getColumn(1).getName()));
-
- model.getTable(0).addIndex(newIndex);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -595,7 +628,7 @@
*/
public void testDropUniqueIndex()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -608,19 +641,24 @@
" </unique>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue1' type='DOUBLE'/>\n"+
+ " <column name='avalue2' type='VARCHAR' size='50'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Double(2.0), "test" });
- model.getTable(0).removeIndex(0);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -633,7 +671,7 @@
*/
public void testAddColumnToIndex()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -645,19 +683,28 @@
" </index>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue1' type='DOUBLE'/>\n"+
+ " <column name='avalue2' type='VARCHAR' size='40'/>\n"+
+ " <index name='test_index'>\n"+
+ " <index-column name='avalue1'/>\n"+
+ " <index-column name='avalue2'/>\n"+
+ " </index>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Double(2.0), "test" });
- model.getTable(0).getIndex(0).addColumn(new IndexColumn(model.getTable(0).getColumn(2).getName()));
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -670,7 +717,7 @@
*/
public void testRemoveColumnFromUniqueIndex()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -683,19 +730,27 @@
" </unique>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue1' type='DOUBLE'/>\n"+
+ " <column name='avalue2' type='INTEGER'/>\n"+
+ " <unique name='test_index'>\n"+
+ " <unique-column name='avalue1'/>\n"+
+ " </unique>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1), new Double(2.0), new Integer(3) });
- model.getTable(0).getIndex(0).removeColumn(1);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip");
@@ -708,7 +763,18 @@
*/
public void testAddFK()
{
- final String modelXml =
+ final String model1Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip1'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ " <table name='roundtrip2'>\n"+
+ " <column name='pk' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ final String model2Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip1'>\n"+
@@ -717,26 +783,21 @@
" <table name='roundtrip2'>\n"+
" <column name='pk' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
" <column name='avalue' type='INTEGER' required='true'/>\n"+
+ " <foreign-key name='test' foreignTable='roundtrip1'>\n"+
+ " <reference local='avalue' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
" </table>\n"+
"</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip1", new Object[] { new Integer(1) });
insertRow("roundtrip2", new Object[] { "2", new Integer(1) });
- ForeignKey newFk = new ForeignKey("test");
-
- newFk.setForeignTable(model.getTable(0));
- newFk.addReference(new Reference(model.getTable(1).getColumn(1), model.getTable(0).getColumn(0)));
- model.getTable(1).addForeignKey(newFk);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans1 = getRows("roundtrip1");
List beans2 = getRows("roundtrip2");
@@ -751,7 +812,7 @@
*/
public void testDropFK()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip1'>\n"+
@@ -768,20 +829,29 @@
" </foreign-key>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip1'>\n"+
+ " <column name='pk1' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='pk2' type='DOUBLE' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ " <table name='roundtrip2'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue1' type='DOUBLE' required='true'/>\n"+
+ " <column name='avalue2' type='INTEGER' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip1", new Object[] { new Integer(1), new Double(2.0) });
insertRow("roundtrip2", new Object[] { new Integer(2), new Double(2.0), new Integer(1) });
- model.getTable(1).removeForeignKey(0);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans1 = getRows("roundtrip1");
List beans2 = getRows("roundtrip2");
@@ -798,7 +868,7 @@
*/
public void testAddReferenceToFK()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip1'>\n"+
@@ -812,37 +882,33 @@
" </foreign-key>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip1'>\n"+
+ " <column name='pk1' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='pk2' type='DOUBLE' default='0.0' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ " <table name='roundtrip2'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue1' type='INTEGER' required='true'/>\n"+
+ " <column name='avalue2' type='DOUBLE' default='0.0' required='true'/>\n"+
+ " <foreign-key foreignTable='roundtrip1'>\n"+
+ " <reference local='avalue1' foreign='pk1'/>\n"+
+ " <reference local='avalue2' foreign='pk2'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip1", new Object[] { new Integer(1) });
insertRow("roundtrip2", new Object[] { new Integer(2), new Integer(1) });
- Column newPkColumn = new Column();
-
- newPkColumn.setName("pk2");
- newPkColumn.setTypeCode(Types.DOUBLE);
- newPkColumn.setPrimaryKey(true);
- newPkColumn.setRequired(true);
- newPkColumn.setDefaultValue("0.0");
- model.getTable(0).addColumn(newPkColumn);
-
- Column newFkColumn = new Column();
-
- newFkColumn.setName("avalue2");
- newFkColumn.setTypeCode(Types.DOUBLE);
- newFkColumn.setRequired(true);
- newFkColumn.setDefaultValue("0.0");
- model.getTable(1).addColumn(newFkColumn);
-
- model.getTable(1).getForeignKey(0).addReference(new Reference(newFkColumn, newPkColumn));
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans1 = getRows("roundtrip1");
List beans2 = getRows("roundtrip2");
@@ -859,7 +925,7 @@
*/
public void testRemoveReferenceFromFK()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip1'>\n"+
@@ -876,22 +942,30 @@
" </foreign-key>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip1'>\n"+
+ " <column name='pk1' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ " <table name='roundtrip2'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue2' type='INTEGER' required='true'/>\n"+
+ " <foreign-key foreignTable='roundtrip1'>\n"+
+ " <reference local='avalue2' foreign='pk1'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip1", new Object[] { new Integer(1), "test" });
insertRow("roundtrip2", new Object[] { new Integer(2), "test", new Integer(1) });
- model.getTable(0).removeColumn(1);
- model.getTable(1).removeColumn(1);
- model.getTable(1).getForeignKey(0).removeReference(1);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans1 = getRows("roundtrip1");
List beans2 = getRows("roundtrip2");
@@ -906,44 +980,36 @@
*/
public void testAddTable1()
{
- final String modelXml =
+ final String model1Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip1'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ final String model2Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip1'>\n"+
" <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
" </table>\n"+
+ " <table name='roundtrip2'>\n"+
+ " <column name='pk' type='VARCHAR' size='20' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER'/>\n"+
+ " <foreign-key foreignTable='roundtrip1'>\n"+
+ " <reference local='avalue' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
"</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip1", new Object[] { new Integer(1) });
- Table newTable = new Table();
- Column newPkColumn = new Column();
- Column newFkColumn = new Column();
- ForeignKey newFk = new ForeignKey("test");
-
- newPkColumn.setName("pk");
- newPkColumn.setTypeCode(Types.VARCHAR);
- newPkColumn.setSize("20");
- newPkColumn.setPrimaryKey(true);
- newPkColumn.setRequired(true);
- newFkColumn.setName("avalue");
- newFkColumn.setTypeCode(Types.INTEGER);
- newFk.setForeignTable(model.getTable(0));
- newFk.addReference(new Reference(newFkColumn, model.getTable(0).getColumn(0)));
- newTable.setName("roundtrip2");
- newTable.addColumn(newPkColumn);
- newTable.addColumn(newFkColumn);
- newTable.addForeignKey(newFk);
- model.addTable(newTable);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip1");
@@ -955,50 +1021,57 @@
*/
public void testAddTable2()
{
- final String modelXml =
+ final String model1Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip1'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='VARCHAR' size='32' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ final String model2Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip1'>\n"+
" <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
" <column name='avalue' type='VARCHAR' size='32' required='true'/>\n"+
" </table>\n"+
+ " <table name='roundtrip2'>\n"+
+ " <column name='pk' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER'/>\n"+
+ " </table>\n"+
+ "</database>";
+ final String model3Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip1'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='VARCHAR' size='32' required='true'/>\n"+
+ " <foreign-key foreignTable='roundtrip2'>\n"+
+ " <reference local='avalue' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ " <table name='roundtrip2'>\n"+
+ " <column name='pk' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER'/>\n"+
+ " </table>\n"+
"</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip1", new Object[] { new Integer(1), "test" });
- Table newTable = new Table();
- Column newPkColumn = new Column();
-
- newPkColumn.setName("pk");
- newPkColumn.setTypeCode(Types.VARCHAR);
- newPkColumn.setSize("32");
- newPkColumn.setPrimaryKey(true);
- newPkColumn.setRequired(true);
- newTable.setName("roundtrip2");
- newTable.addColumn(newPkColumn);
- model.addTable(newTable);
-
- alterDatabase(model);
+ alterDatabase(model2Xml);
// note that we have to split the alteration because we can only add the foreign key if
// there is a corresponding row in the new table
insertRow("roundtrip2", new Object[] { "test" });
-
- ForeignKey newFk = new ForeignKey("test");
- newFk.setForeignTable(newTable);
- newFk.addReference(new Reference(model.getTable(0).getColumn(1), newPkColumn));
- model.getTable(0).addForeignKey(newFk);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model3Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans1 = getRows("roundtrip1");
List beans2 = getRows("roundtrip2");
@@ -1013,7 +1086,7 @@
*/
public void testRemoveTable1()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip1'>\n"+
@@ -1024,20 +1097,23 @@
" <column name='avalue' type='DOUBLE' required='true'/>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip1'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip1", new Object[] { new Integer(1) });
insertRow("roundtrip2", new Object[] { new Integer(2), new Double(2.0) });
- model.removeTable(1);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip1");
@@ -1049,7 +1125,7 @@
*/
public void testRemoveTable2()
{
- final String modelXml =
+ final String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip1'>\n"+
@@ -1063,21 +1139,24 @@
" </foreign-key>\n"+
" </table>\n"+
"</database>";
+ final String model2Xml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip2'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='VARCHAR' size='20' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
- Database model = createDatabase(modelXml);
+ createDatabase(model1Xml);
insertRow("roundtrip1", new Object[] { "test" });
insertRow("roundtrip2", new Object[] { new Integer(1), "test" });
- model.getTable(1).removeForeignKey(0);
- model.removeTable(0);
-
- alterDatabase(model);
-
- Database modelFromDb = readModelFromDatabase("roundtriptest");
+ alterDatabase(model2Xml);
assertEquals(getAdjustedModel(),
- modelFromDb);
+ readModelFromDatabase("roundtriptest"));
List beans = getRows("roundtrip2");