Author: tomdz
Date: Sun Mar 9 08:17:37 2008
New Revision: 635258
URL: http://svn.apache.org/viewvc?rev=635258&view=rev
Log:
Fixes for the Ant task tests
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/RunAllTests.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/RoundtripTestBase.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestDropTablesCommand.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestTaskBase.java
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/RunAllTests.java
URL:
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/RunAllTests.java?rev=635258&r1=635257&r2=635258&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/RunAllTests.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/RunAllTests.java Sun Mar 9
08:17:37 2008
@@ -53,6 +53,7 @@
import org.apache.ddlutils.platform.TestSapDbPlatform;
import org.apache.ddlutils.platform.TestSqlBuilder;
import org.apache.ddlutils.platform.TestSybasePlatform;
+import org.apache.ddlutils.task.TestDropTablesCommand;
import junit.framework.Test;
import junit.framework.TestCase;
@@ -133,6 +134,7 @@
suite.addTestSuite(TestChangeColumn.class);
suite.addTestSuite(TestDropColumn.class);
suite.addTestSuite(TestMisc.class);
+ suite.addTestSuite(TestDropTablesCommand.class);
}
return suite;
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
URL:
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java?rev=635258&r1=635257&r2=635258&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
(original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/TestDatabaseWriterBase.java
Sun Mar 9 08:17:37 2008
@@ -23,6 +23,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
+import java.io.StringWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
@@ -41,17 +42,28 @@
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.dbcp.BasicDataSource;
+import org.apache.ddlutils.dynabean.SqlDynaBean;
+import org.apache.ddlutils.dynabean.SqlDynaClass;
+import org.apache.ddlutils.dynabean.SqlDynaProperty;
+import org.apache.ddlutils.io.BinaryObjectsHelper;
import org.apache.ddlutils.io.DataReader;
import org.apache.ddlutils.io.DataToDatabaseSink;
+import org.apache.ddlutils.io.DatabaseIO;
+import org.apache.ddlutils.model.CascadeActionEnum;
import org.apache.ddlutils.model.CloneHelper;
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.Reference;
import org.apache.ddlutils.model.Table;
+import org.apache.ddlutils.model.TypeMap;
import org.apache.ddlutils.platform.CreationParameters;
import org.apache.ddlutils.platform.DefaultValueHelper;
import org.apache.ddlutils.platform.firebird.FirebirdPlatform;
import org.apache.ddlutils.platform.interbase.InterbasePlatform;
+import org.apache.ddlutils.util.StringUtilsExt;
/**
* Base class for database writer tests.
@@ -707,5 +719,368 @@
}
throw new IllegalArgumentException("The bean has no property with
the name "+propName);
}
+ }
+
+
+ /**
+ * Compares the specified attribute value of the given bean with the
expected object.
+ *
+ * @param expected The expected object
+ * @param bean The bean
+ * @param attrName The attribute name
+ */
+ protected void assertEquals(Object expected, Object bean, String attrName)
+ {
+ DynaBean dynaBean = (DynaBean)bean;
+ Object value = dynaBean.get(attrName);
+
+ if ((value instanceof byte[]) && !(expected instanceof byte[]) &&
(dynaBean instanceof SqlDynaBean))
+ {
+ SqlDynaClass dynaClass =
(SqlDynaClass)((SqlDynaBean)dynaBean).getDynaClass();
+ Column column =
((SqlDynaProperty)dynaClass.getDynaProperty(attrName)).getColumn();
+
+ if (TypeMap.isBinaryType(column.getTypeCode()))
+ {
+ value = new BinaryObjectsHelper().deserialize((byte[])value);
+ }
+ }
+ if (expected == null)
+ {
+ assertNull(value);
+ }
+ else
+ {
+ assertEquals(expected, value);
+ }
+ }
+
+ /**
+ * Asserts that the two given database models are equal, and if not,
writes both of them
+ * in XML form to <code>stderr</code>.
+ *
+ * @param expected The expected model
+ * @param actual The actual model
+ * @param caseSensitive Whether case matters when comparing
+ */
+ protected void assertEquals(Database expected, Database actual, boolean
caseSensitive)
+ {
+ try
+ {
+ assertEquals("Model names do not match.",
+ expected.getName(),
+ actual.getName());
+ assertEquals("Not the same number of tables.",
+ expected.getTableCount(),
+ actual.getTableCount());
+ for (int tableIdx = 0; tableIdx < actual.getTableCount();
tableIdx++)
+ {
+ assertEquals(expected.getTable(tableIdx),
+ actual.getTable(tableIdx),
+ caseSensitive);
+ }
+ }
+ catch (Throwable ex)
+ {
+ StringWriter writer = new StringWriter();
+ DatabaseIO dbIo = new DatabaseIO();
+
+ dbIo.write(expected, writer);
+
+ getLog().error("Expected model:\n" + writer.toString());
+
+ writer = new StringWriter();
+ dbIo.write(actual, writer);
+
+ getLog().error("Actual model:\n" + writer.toString());
+
+ if (ex instanceof Error)
+ {
+ throw (Error)ex;
+ }
+ else
+ {
+ throw new DdlUtilsException(ex);
+ }
+ }
+ }
+
+ /**
+ * Asserts that the two given database tables are equal.
+ *
+ * @param expected The expected table
+ * @param actual The actual table
+ * @param caseSensitive Whether case matters when comparing
+ */
+ protected void assertEquals(Table expected, Table actual, boolean
caseSensitive)
+ {
+ if (caseSensitive)
+ {
+ assertEquals("Table names do not match.",
+
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxTableNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxTableNameLength()));
+ }
+ else
+ {
+ assertEquals("Table names do not match (ignoring case).",
+
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxTableNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxTableNameLength()));
+ }
+ assertEquals("Not the same number of columns in table
"+actual.getName()+".",
+ expected.getColumnCount(),
+ actual.getColumnCount());
+ for (int columnIdx = 0; columnIdx < actual.getColumnCount();
columnIdx++)
+ {
+ assertEquals(expected.getColumn(columnIdx),
+ actual.getColumn(columnIdx),
+ caseSensitive);
+ }
+ assertEquals("Not the same number of foreign keys in table
"+actual.getName()+".",
+ expected.getForeignKeyCount(),
+ actual.getForeignKeyCount());
+ // order is not assumed with the way foreignkeys are returned.
+ for (int expectedFkIdx = 0; expectedFkIdx <
expected.getForeignKeyCount(); expectedFkIdx++)
+ {
+ ForeignKey expectedFk = expected.getForeignKey(expectedFkIdx);
+ String expectedName =
getPlatform().getSqlBuilder().shortenName(expectedFk.getName(),
getSqlBuilder().getMaxForeignKeyNameLength());
+
+ for (int actualFkIdx = 0; actualFkIdx <
actual.getForeignKeyCount(); actualFkIdx++)
+ {
+ ForeignKey actualFk = actual.getForeignKey(actualFkIdx);
+ String actualName =
getPlatform().getSqlBuilder().shortenName(actualFk.getName(),
getSqlBuilder().getMaxForeignKeyNameLength());
+
+ if (StringUtilsExt.equals(expectedName, actualName,
caseSensitive))
+ {
+ assertEquals(expectedFk,
+ actualFk,
+ caseSensitive);
+ }
+ }
+ }
+ assertEquals("Not the same number of indices in table
"+actual.getName()+".",
+ expected.getIndexCount(),
+ actual.getIndexCount());
+ for (int indexIdx = 0; indexIdx < actual.getIndexCount(); indexIdx++)
+ {
+ assertEquals(expected.getIndex(indexIdx),
+ actual.getIndex(indexIdx),
+ caseSensitive);
+ }
+ }
+
+ /**
+ * Asserts that the two given columns are equal.
+ *
+ * @param expected The expected column
+ * @param actual The actual column
+ * @param caseSensitive Whether case matters when comparing
+ */
+ protected void assertEquals(Column expected, Column actual, boolean
caseSensitive)
+ {
+ if (caseSensitive)
+ {
+ assertEquals("Column names do not match.",
+
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxColumnNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxColumnNameLength()));
+ }
+ else
+ {
+ assertEquals("Column names do not match (ignoring case).",
+
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()));
+ }
+ assertEquals("Primary key status not the same for column
"+actual.getName()+".",
+ expected.isPrimaryKey(),
+ actual.isPrimaryKey());
+ assertEquals("Required status not the same for column
"+actual.getName()+".",
+ expected.isRequired(),
+ actual.isRequired());
+ if (getPlatformInfo().getIdentityStatusReadingSupported())
+ {
+ // we're only comparing this if the platform can actually read the
+ // auto-increment status back from an existing database
+ assertEquals("Auto-increment status not the same for column
"+actual.getName()+".",
+ expected.isAutoIncrement(),
+ actual.isAutoIncrement());
+ }
+ assertEquals("Type not the same for column "+actual.getName()+".",
+ expected.getType(),
+ actual.getType());
+ assertEquals("Type code not the same for column "+actual.getName()+".",
+ expected.getTypeCode(),
+ actual.getTypeCode());
+ assertEquals("Parsed default values do not match for column
"+actual.getName()+".",
+ expected.getParsedDefaultValue(),
+ actual.getParsedDefaultValue());
+
+ // comparing the size makes only sense for types where it is relevant
+ if ((expected.getTypeCode() == Types.NUMERIC) ||
+ (expected.getTypeCode() == Types.DECIMAL))
+ {
+ assertEquals("Precision not the same for column
"+actual.getName()+".",
+ expected.getSizeAsInt(),
+ actual.getSizeAsInt());
+ assertEquals("Scale not the same for column "+actual.getName()+".",
+ expected.getScale(),
+ actual.getScale());
+ }
+ else if ((expected.getTypeCode() == Types.CHAR) ||
+ (expected.getTypeCode() == Types.VARCHAR) ||
+ (expected.getTypeCode() == Types.BINARY) ||
+ (expected.getTypeCode() == Types.VARBINARY))
+ {
+ assertEquals("Size not the same for column "+actual.getName()+".",
+ expected.getSize(),
+ actual.getSize());
+ }
+ }
+
+ /**
+ * Asserts that the two given foreign keys are equal.
+ *
+ * @param expected The expected foreign key
+ * @param actual The actual foreign key
+ * @param caseSensitive Whether case matters when comparing
+ */
+ protected void assertEquals(ForeignKey expected, ForeignKey actual,
boolean caseSensitive)
+ {
+ if (caseSensitive)
+ {
+ assertEquals("Foreign key names do not match.",
+
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxForeignKeyNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxForeignKeyNameLength()));
+ assertEquals("Referenced table names do not match.",
+
getPlatform().getSqlBuilder().shortenName(expected.getForeignTableName(),
getSqlBuilder().getMaxTableNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getForeignTableName(),
getSqlBuilder().getMaxTableNameLength()));
+ }
+ else
+ {
+ assertEquals("Foreign key names do not match (ignoring case).",
+
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxForeignKeyNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxForeignKeyNameLength()));
+ assertEquals("Referenced table names do not match (ignoring
case).",
+
getPlatform().getSqlBuilder().shortenName(expected.getForeignTableName().toUpperCase(),
getSqlBuilder().getMaxTableNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getForeignTableName().toUpperCase(),
getSqlBuilder().getMaxTableNameLength()));
+ }
+ if ((expected.getOnUpdate() == CascadeActionEnum.NONE) ||
(expected.getOnUpdate() == CascadeActionEnum.RESTRICT))
+ {
+ assertTrue("Not the same onUpdate setting in foreign key
"+actual.getName()+".",
+ (actual.getOnUpdate() == CascadeActionEnum.NONE) ||
(actual.getOnUpdate() == CascadeActionEnum.RESTRICT));
+ }
+ else
+ {
+ assertEquals("Not the same onUpdate setting in foreign key
"+actual.getName()+".",
+ expected.getOnUpdate(),
+ actual.getOnUpdate());
+ }
+ if ((expected.getOnDelete() == CascadeActionEnum.NONE) ||
(expected.getOnDelete() == CascadeActionEnum.RESTRICT))
+ {
+ assertTrue("Not the same onDelete setting in foreign key
"+actual.getName()+".",
+ (actual.getOnDelete() == CascadeActionEnum.NONE) ||
(actual.getOnDelete() == CascadeActionEnum.RESTRICT));
+ }
+ else
+ {
+ assertEquals("Not the same onDelete setting in foreign key
"+actual.getName()+".",
+ expected.getOnDelete(),
+ actual.getOnDelete());
+ }
+ assertEquals("Not the same number of references in foreign key
"+actual.getName()+".",
+ expected.getReferenceCount(),
+ actual.getReferenceCount());
+ for (int refIdx = 0; refIdx < actual.getReferenceCount(); refIdx++)
+ {
+ assertEquals(expected.getReference(refIdx),
+ actual.getReference(refIdx),
+ caseSensitive);
+ }
+ }
+
+ /**
+ * Asserts that the two given references are equal.
+ *
+ * @param expected The expected reference
+ * @param actual The actual reference
+ * @param caseSensitive Whether case matters when comparing
+ */
+ protected void assertEquals(Reference expected, Reference actual, boolean
caseSensitive)
+ {
+ if (caseSensitive)
+ {
+ assertEquals("Local column names do not match.",
+
getPlatform().getSqlBuilder().shortenName(expected.getLocalColumnName(),
getSqlBuilder().getMaxColumnNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getLocalColumnName(),
getSqlBuilder().getMaxColumnNameLength()));
+ assertEquals("Foreign column names do not match.",
+
getPlatform().getSqlBuilder().shortenName(expected.getForeignColumnName(),
getSqlBuilder().getMaxColumnNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getForeignColumnName(),
getSqlBuilder().getMaxColumnNameLength()));
+ }
+ else
+ {
+ assertEquals("Local column names do not match (ignoring case).",
+
getPlatform().getSqlBuilder().shortenName(expected.getLocalColumnName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getLocalColumnName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()));
+ assertEquals("Foreign column names do not match (ignoring case).",
+
getPlatform().getSqlBuilder().shortenName(expected.getForeignColumnName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getForeignColumnName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()));
+ }
+ }
+
+ /**
+ * Asserts that the two given indices are equal.
+ *
+ * @param expected The expected index
+ * @param actual The actual index
+ * @param caseSensitive Whether case matters when comparing
+ */
+ protected void assertEquals(Index expected, Index actual, boolean
caseSensitive)
+ {
+ if (caseSensitive)
+ {
+ assertEquals("Index names do not match.",
+
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxConstraintNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxConstraintNameLength()));
+ }
+ else
+ {
+ assertEquals("Index names do not match (ignoring case).",
+
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxConstraintNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxConstraintNameLength()));
+ }
+ assertEquals("Unique status not the same for index
"+actual.getName()+".",
+ expected.isUnique(),
+ actual.isUnique());
+ assertEquals("Not the same number of columns in index
"+actual.getName()+".",
+ expected.getColumnCount(),
+ actual.getColumnCount());
+ for (int columnIdx = 0; columnIdx < actual.getColumnCount();
columnIdx++)
+ {
+ assertEquals(expected.getColumn(columnIdx),
+ actual.getColumn(columnIdx),
+ caseSensitive);
+ }
+ }
+
+ /**
+ * Asserts that the two given index columns are equal.
+ *
+ * @param expected The expected index column
+ * @param actual The actual index column
+ * @param caseSensitive Whether case matters when comparing
+ */
+ protected void assertEquals(IndexColumn expected, IndexColumn actual,
boolean caseSensitive)
+ {
+ if (caseSensitive)
+ {
+ assertEquals("Index column names do not match.",
+
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxColumnNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxColumnNameLength()));
+ }
+ else
+ {
+ assertEquals("Index column names do not match (ignoring case).",
+
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()),
+
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()));
+ }
+ assertEquals("Size not the same for index column
"+actual.getName()+".",
+ expected.getSize(),
+ actual.getSize());
}
}
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/RoundtripTestBase.java
URL:
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/RoundtripTestBase.java?rev=635258&r1=635257&r2=635258&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/RoundtripTestBase.java
(original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/RoundtripTestBase.java
Sun Mar 9 08:17:37 2008
@@ -19,10 +19,8 @@
* under the License.
*/
-import java.io.StringWriter;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
-import java.sql.Types;
import java.util.List;
import junit.framework.TestSuite;
@@ -32,10 +30,6 @@
import org.apache.ddlutils.PlatformFactory;
import org.apache.ddlutils.PlatformInfo;
import org.apache.ddlutils.TestDatabaseWriterBase;
-import org.apache.ddlutils.dynabean.SqlDynaBean;
-import org.apache.ddlutils.dynabean.SqlDynaClass;
-import org.apache.ddlutils.dynabean.SqlDynaProperty;
-import org.apache.ddlutils.model.CascadeActionEnum;
import org.apache.ddlutils.model.Column;
import org.apache.ddlutils.model.Database;
import org.apache.ddlutils.model.ForeignKey;
@@ -43,7 +37,6 @@
import org.apache.ddlutils.model.IndexColumn;
import org.apache.ddlutils.model.Reference;
import org.apache.ddlutils.model.Table;
-import org.apache.ddlutils.model.TypeMap;
/**
* Base class for database roundtrip (creation & reconstruction from the
database).
@@ -260,38 +253,6 @@
}
/**
- * Compares the specified attribute value of the given bean with the
expected object.
- *
- * @param expected The expected object
- * @param bean The bean
- * @param attrName The attribute name
- */
- protected void assertEquals(Object expected, Object bean, String attrName)
- {
- DynaBean dynaBean = (DynaBean)bean;
- Object value = dynaBean.get(attrName);
-
- if ((value instanceof byte[]) && !(expected instanceof byte[]) &&
(dynaBean instanceof SqlDynaBean))
- {
- SqlDynaClass dynaClass =
(SqlDynaClass)((SqlDynaBean)dynaBean).getDynaClass();
- Column column =
((SqlDynaProperty)dynaClass.getDynaProperty(attrName)).getColumn();
-
- if (TypeMap.isBinaryType(column.getTypeCode()))
- {
- value = new BinaryObjectsHelper().deserialize((byte[])value);
- }
- }
- if (expected == null)
- {
- assertNull(value);
- }
- else
- {
- assertEquals(expected, value);
- }
- }
-
- /**
* Asserts that the two given database models are equal, and if not,
writes both of them
* in XML form to <code>stderr</code>.
*
@@ -300,43 +261,7 @@
*/
protected void assertEquals(Database expected, Database actual)
{
- try
- {
- assertEquals("Model names do not match.",
- expected.getName(),
- actual.getName());
- assertEquals("Not the same number of tables.",
- expected.getTableCount(),
- actual.getTableCount());
- for (int tableIdx = 0; tableIdx < actual.getTableCount();
tableIdx++)
- {
- assertEquals(expected.getTable(tableIdx),
- actual.getTable(tableIdx));
- }
- }
- catch (Throwable ex)
- {
- StringWriter writer = new StringWriter();
- DatabaseIO dbIo = new DatabaseIO();
-
- dbIo.write(expected, writer);
-
- getLog().error("Expected model:\n" + writer.toString());
-
- writer = new StringWriter();
- dbIo.write(actual, writer);
-
- getLog().error("Actual model:\n" + writer.toString());
-
- if (ex instanceof Error)
- {
- throw (Error)ex;
- }
- else
- {
- throw new DdlUtilsException(ex);
- }
- }
+ assertEquals(expected, actual, _useDelimitedIdentifiers);
}
/**
@@ -347,55 +272,7 @@
*/
protected void assertEquals(Table expected, Table actual)
{
- if (_useDelimitedIdentifiers)
- {
- assertEquals("Table names do not match.",
-
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxTableNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxTableNameLength()));
- }
- else
- {
- assertEquals("Table names do not match (ignoring case).",
-
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxTableNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxTableNameLength()));
- }
- assertEquals("Not the same number of columns in table
"+actual.getName()+".",
- expected.getColumnCount(),
- actual.getColumnCount());
- for (int columnIdx = 0; columnIdx < actual.getColumnCount();
columnIdx++)
- {
- assertEquals(expected.getColumn(columnIdx),
- actual.getColumn(columnIdx));
- }
- assertEquals("Not the same number of foreign keys in table
"+actual.getName()+".",
- expected.getForeignKeyCount(),
- actual.getForeignKeyCount());
- // order is not assumed with the way foreignkeys are returned.
- for (int expectedFkIdx = 0; expectedFkIdx <
expected.getForeignKeyCount(); expectedFkIdx++)
- {
- ForeignKey expectedFk = expected.getForeignKey(expectedFkIdx);
- String expectedName =
getPlatform().getSqlBuilder().shortenName(expectedFk.getName(),
getSqlBuilder().getMaxForeignKeyNameLength());
-
- for (int actualFkIdx = 0; actualFkIdx <
actual.getForeignKeyCount(); actualFkIdx++)
- {
- ForeignKey actualFk = actual.getForeignKey(actualFkIdx);
- String actualName =
getPlatform().getSqlBuilder().shortenName(actualFk.getName(),
getSqlBuilder().getMaxForeignKeyNameLength());
-
- if ((_useDelimitedIdentifiers &&
expectedName.equals(actualName)) ||
- (!_useDelimitedIdentifiers &&
expectedName.equalsIgnoreCase(actualName)))
- {
- assertEquals(expectedFk, actualFk);
- }
- }
- }
- assertEquals("Not the same number of indices in table
"+actual.getName()+".",
- expected.getIndexCount(),
- actual.getIndexCount());
- for (int indexIdx = 0; indexIdx < actual.getIndexCount(); indexIdx++)
- {
- assertEquals(expected.getIndex(indexIdx),
- actual.getIndex(indexIdx));
- }
+ assertEquals(expected, actual, _useDelimitedIdentifiers);
}
/**
@@ -406,62 +283,7 @@
*/
protected void assertEquals(Column expected, Column actual)
{
- if (_useDelimitedIdentifiers)
- {
- assertEquals("Column names do not match.",
-
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxColumnNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxColumnNameLength()));
- }
- else
- {
- assertEquals("Column names do not match (ignoring case).",
-
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()));
- }
- assertEquals("Primary key status not the same for column
"+actual.getName()+".",
- expected.isPrimaryKey(),
- actual.isPrimaryKey());
- assertEquals("Required status not the same for column
"+actual.getName()+".",
- expected.isRequired(),
- actual.isRequired());
- if (getPlatformInfo().getIdentityStatusReadingSupported())
- {
- // we're only comparing this if the platform can actually read
the
- // auto-increment status back from an existing database
- assertEquals("Auto-increment status not the same for column
"+actual.getName()+".",
- expected.isAutoIncrement(),
- actual.isAutoIncrement());
- }
- assertEquals("Type not the same for column "+actual.getName()+".",
- expected.getType(),
- actual.getType());
- assertEquals("Type code not the same for column "+actual.getName()+".",
- expected.getTypeCode(),
- actual.getTypeCode());
- assertEquals("Parsed default values do not match for column
"+actual.getName()+".",
- expected.getParsedDefaultValue(),
- actual.getParsedDefaultValue());
-
- // comparing the size makes only sense for types where it is relevant
- if ((expected.getTypeCode() == Types.NUMERIC) ||
- (expected.getTypeCode() == Types.DECIMAL))
- {
- assertEquals("Precision not the same for column
"+actual.getName()+".",
- expected.getSizeAsInt(),
- actual.getSizeAsInt());
- assertEquals("Scale not the same for column "+actual.getName()+".",
- expected.getScale(),
- actual.getScale());
- }
- else if ((expected.getTypeCode() == Types.CHAR) ||
- (expected.getTypeCode() == Types.VARCHAR) ||
- (expected.getTypeCode() == Types.BINARY) ||
- (expected.getTypeCode() == Types.VARBINARY))
- {
- assertEquals("Size not the same for column "+actual.getName()+".",
- expected.getSize(),
- actual.getSize());
- }
+ assertEquals(expected, actual, _useDelimitedIdentifiers);
}
/**
@@ -472,54 +294,7 @@
*/
protected void assertEquals(ForeignKey expected, ForeignKey actual)
{
- if (_useDelimitedIdentifiers)
- {
- assertEquals("Foreign key names do not match.",
-
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxForeignKeyNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxForeignKeyNameLength()));
- assertEquals("Referenced table names do not match.",
-
getPlatform().getSqlBuilder().shortenName(expected.getForeignTableName(),
getSqlBuilder().getMaxTableNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getForeignTableName(),
getSqlBuilder().getMaxTableNameLength()));
- }
- else
- {
- assertEquals("Foreign key names do not match (ignoring case).",
-
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxForeignKeyNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxForeignKeyNameLength()));
- assertEquals("Referenced table names do not match (ignoring
case).",
-
getPlatform().getSqlBuilder().shortenName(expected.getForeignTableName().toUpperCase(),
getSqlBuilder().getMaxTableNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getForeignTableName().toUpperCase(),
getSqlBuilder().getMaxTableNameLength()));
- }
- if ((expected.getOnUpdate() == CascadeActionEnum.NONE) ||
(expected.getOnUpdate() == CascadeActionEnum.RESTRICT))
- {
- assertTrue("Not the same onUpdate setting in foreign key
"+actual.getName()+".",
- (actual.getOnUpdate() == CascadeActionEnum.NONE) ||
(actual.getOnUpdate() == CascadeActionEnum.RESTRICT));
- }
- else
- {
- assertEquals("Not the same onUpdate setting in foreign key
"+actual.getName()+".",
- expected.getOnUpdate(),
- actual.getOnUpdate());
- }
- if ((expected.getOnDelete() == CascadeActionEnum.NONE) ||
(expected.getOnDelete() == CascadeActionEnum.RESTRICT))
- {
- assertTrue("Not the same onDelete setting in foreign key
"+actual.getName()+".",
- (actual.getOnDelete() == CascadeActionEnum.NONE) ||
(actual.getOnDelete() == CascadeActionEnum.RESTRICT));
- }
- else
- {
- assertEquals("Not the same onDelete setting in foreign key
"+actual.getName()+".",
- expected.getOnDelete(),
- actual.getOnDelete());
- }
- assertEquals("Not the same number of references in foreign key
"+actual.getName()+".",
- expected.getReferenceCount(),
- actual.getReferenceCount());
- for (int refIdx = 0; refIdx < actual.getReferenceCount(); refIdx++)
- {
- assertEquals(expected.getReference(refIdx),
- actual.getReference(refIdx));
- }
+ assertEquals(expected, actual, _useDelimitedIdentifiers);
}
/**
@@ -530,24 +305,7 @@
*/
protected void assertEquals(Reference expected, Reference actual)
{
- if (_useDelimitedIdentifiers)
- {
- assertEquals("Local column names do not match.",
-
getPlatform().getSqlBuilder().shortenName(expected.getLocalColumnName(),
getSqlBuilder().getMaxColumnNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getLocalColumnName(),
getSqlBuilder().getMaxColumnNameLength()));
- assertEquals("Foreign column names do not match.",
-
getPlatform().getSqlBuilder().shortenName(expected.getForeignColumnName(),
getSqlBuilder().getMaxColumnNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getForeignColumnName(),
getSqlBuilder().getMaxColumnNameLength()));
- }
- else
- {
- assertEquals("Local column names do not match (ignoring case).",
-
getPlatform().getSqlBuilder().shortenName(expected.getLocalColumnName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getLocalColumnName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()));
- assertEquals("Foreign column names do not match (ignoring case).",
-
getPlatform().getSqlBuilder().shortenName(expected.getForeignColumnName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getForeignColumnName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()));
- }
+ assertEquals(expected, actual, _useDelimitedIdentifiers);
}
/**
@@ -558,29 +316,7 @@
*/
protected void assertEquals(Index expected, Index actual)
{
- if (_useDelimitedIdentifiers)
- {
- assertEquals("Index names do not match.",
-
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxConstraintNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxConstraintNameLength()));
- }
- else
- {
- assertEquals("Index names do not match (ignoring case).",
-
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxConstraintNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxConstraintNameLength()));
- }
- assertEquals("Unique status not the same for index
"+actual.getName()+".",
- expected.isUnique(),
- actual.isUnique());
- assertEquals("Not the same number of columns in index
"+actual.getName()+".",
- expected.getColumnCount(),
- actual.getColumnCount());
- for (int columnIdx = 0; columnIdx < actual.getColumnCount();
columnIdx++)
- {
- assertEquals(expected.getColumn(columnIdx),
- actual.getColumn(columnIdx));
- }
+ assertEquals(expected, actual, _useDelimitedIdentifiers);
}
/**
@@ -591,20 +327,6 @@
*/
protected void assertEquals(IndexColumn expected, IndexColumn actual)
{
- if (_useDelimitedIdentifiers)
- {
- assertEquals("Index column names do not match.",
-
getPlatform().getSqlBuilder().shortenName(expected.getName(),
getSqlBuilder().getMaxColumnNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName(),
getSqlBuilder().getMaxColumnNameLength()));
- }
- else
- {
- assertEquals("Index column names do not match (ignoring case).",
-
getPlatform().getSqlBuilder().shortenName(expected.getName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()),
-
getPlatform().getSqlBuilder().shortenName(actual.getName().toUpperCase(),
getSqlBuilder().getMaxColumnNameLength()));
- }
- assertEquals("Size not the same for index column
"+actual.getName()+".",
- expected.getSize(),
- actual.getSize());
+ assertEquals(expected, actual, _useDelimitedIdentifiers);
}
}
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestDropTablesCommand.java
URL:
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestDropTablesCommand.java?rev=635258&r1=635257&r2=635258&view=diff
==============================================================================
---
db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestDropTablesCommand.java
(original)
+++
db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestDropTablesCommand.java
Sun Mar 9 08:17:37 2008
@@ -39,7 +39,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -64,7 +65,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -89,7 +91,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -122,7 +125,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -155,7 +159,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -183,7 +188,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -215,7 +221,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -250,7 +257,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -295,7 +303,8 @@
task.execute();
assertEquals(adjustModel(parseDatabaseFromString(model2Xml)),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -332,7 +341,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -384,7 +394,8 @@
task.execute();
assertEquals(adjustModel(parseDatabaseFromString(model2Xml)),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ true);
}
/**
@@ -428,7 +439,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ true);
}
/**
@@ -480,7 +492,8 @@
task.execute();
assertEquals(adjustModel(parseDatabaseFromString(model2Xml)),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ true);
}
/**
@@ -532,7 +545,8 @@
task.execute();
assertEquals(adjustModel(parseDatabaseFromString(model2Xml)),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ true);
}
/**
@@ -576,7 +590,8 @@
task.execute();
assertEquals(new Database("roundtriptest"),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -613,7 +628,8 @@
task.execute();
assertEquals(getAdjustedModel(),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -658,7 +674,8 @@
task.execute();
assertEquals(adjustModel(parseDatabaseFromString(model2Xml)),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -710,7 +727,8 @@
task.execute();
assertEquals(adjustModel(parseDatabaseFromString(model2Xml)),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ true);
}
/**
@@ -764,7 +782,8 @@
task.execute();
assertEquals(adjustModel(parseDatabaseFromString(model2Xml)),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ true);
}
/**
@@ -823,7 +842,8 @@
task.execute();
assertEquals(adjustModel(parseDatabaseFromString(model2Xml)),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ true);
}
/**
@@ -860,7 +880,8 @@
task.execute();
assertEquals(getAdjustedModel(),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
/**
@@ -897,6 +918,7 @@
task.execute();
assertEquals(getAdjustedModel(),
- readModelFromDatabase("roundtriptest"));
+ readModelFromDatabase("roundtriptest"),
+ false);
}
}
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestTaskBase.java
URL:
http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestTaskBase.java?rev=635258&r1=635257&r2=635258&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestTaskBase.java
(original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/task/TestTaskBase.java Sun
Mar 9 08:17:37 2008
@@ -19,6 +19,8 @@
* under the License.
*/
+import java.util.Properties;
+
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.ddlutils.TestDatabaseWriterBase;
import org.apache.tools.ant.Project;
@@ -31,6 +33,15 @@
public abstract class TestTaskBase extends TestDatabaseWriterBase
{
/**
+ * [EMAIL PROTECTED]
+ */
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ getPlatform().setDelimitedIdentifierModeOn(false);
+ }
+
+ /**
* Returns an instance of the [EMAIL PROTECTED] DatabaseToDdlTask},
already configured with
* a project and the tested database.
*
@@ -38,10 +49,15 @@
*/
protected DatabaseToDdlTask getDatabaseToDdlTaskInstance()
{
- DatabaseToDdlTask task = new DatabaseToDdlTask();
+ DatabaseToDdlTask task = new DatabaseToDdlTask();
+ Properties props = getTestProperties();
+ String catalog =
props.getProperty(DDLUTILS_CATALOG_PROPERTY);
+ String schema =
props.getProperty(DDLUTILS_SCHEMA_PROPERTY);
task.setProject(new Project());
task.addConfiguredDatabase((BasicDataSource)getDataSource());
+ task.setCatalogPattern(catalog);
+ task.setSchemaPattern(schema);
return task;
}
}