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/07/04 01:20:18 UTC
svn commit: r418870 - in /db/ddlutils/trunk/src/test/org/apache/ddlutils:
dynabean/TestDynaSqlQueries.java io/TestAlteration.java
io/TestConstraints.java
Author: tomdz
Date: Mon Jul 3 16:20:18 2006
New Revision: 418870
URL: http://svn.apache.org/viewvc?rev=418870&view=rev
Log:
Changed tests to handle the limitations of Sybase
Modified:
db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java
db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestConstraints.java
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java?rev=418870&r1=418869&r2=418870&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/dynabean/TestDynaSqlQueries.java Mon Jul 3 16:20:18 2006
@@ -22,6 +22,7 @@
import org.apache.ddlutils.TestDatabaseWriterBase;
import org.apache.ddlutils.model.Table;
import org.apache.ddlutils.platform.ModelBasedResultSetIterator;
+import org.apache.ddlutils.platform.sybase.SybasePlatform;
/**
* Tests the sql querying.
@@ -155,14 +156,31 @@
*/
public void testAutoIncrement() throws Exception
{
- createDatabase(
- "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
- "<database name='ddlutils'>\n"+
- " <table name='TestTable'>\n"+
- " <column name='TheId' type='INTEGER' primaryKey='true' required='true' autoIncrement='true'/>\n"+
- " <column name='TheText' type='VARCHAR' size='15'/>\n"+
- " </table>\n"+
- "</database>");
+ // we need special catering for Sybase which does not support identity for INTEGER columns
+ final String modelXml;
+
+ if (SybasePlatform.DATABASENAME.equals(getPlatform().getName()))
+ {
+ modelXml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='ddlutils'>\n"+
+ " <table name='TestTable'>\n"+
+ " <column name='TheId' type='NUMERIC' size='12,0' primaryKey='true' required='true' autoIncrement='true'/>\n"+
+ " <column name='TheText' type='VARCHAR' size='15'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+ else
+ {
+ modelXml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='ddlutils'>\n"+
+ " <table name='TestTable'>\n"+
+ " <column name='TheId' type='INTEGER' primaryKey='true' required='true' autoIncrement='true'/>\n"+
+ " <column name='TheText' type='VARCHAR' size='15'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+
+ createDatabase(modelXml);
// we're inserting the rows manually via beans since we do want to
// check the back-reading of the auto-increment columns
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestAlteration.java?rev=418870&r1=418869&r2=418870&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 Mon Jul 3 16:20:18 2006
@@ -16,12 +16,14 @@
* limitations under the License.
*/
+import java.math.BigDecimal;
import java.util.List;
-import org.apache.commons.beanutils.DynaBean;
-
import junit.framework.Test;
+import org.apache.commons.beanutils.DynaBean;
+import org.apache.ddlutils.platform.sybase.SybasePlatform;
+
/**
* Performs tests for the alteration of databases.
*
@@ -339,8 +341,9 @@
{
return;
}
-
- final String model1Xml =
+
+ boolean isSybase = SybasePlatform.DATABASENAME.equals(getPlatform().getName());
+ String model1Xml =
"<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
"<database name='roundtriptest'>\n"+
" <table name='roundtrip'>\n"+
@@ -348,17 +351,31 @@
" <column name='avalue' type='INTEGER'/>\n"+
" </table>\n"+
"</database>";
+ String model2Xml;
+
// since some databases require/automatically make the column required
// we also make the column required in order to avoid problems when
// comparing the model from the live database with our assumed one
- 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>";
+ if (isSybase)
+ {
+ 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='NUMERIC' size='12,0' autoIncrement='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+ else
+ {
+ 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);
@@ -371,7 +388,14 @@
List beans = getRows("roundtrip");
- assertEquals(new Integer(2), beans.get(0), "avalue");
+ if (isSybase)
+ {
+ assertEquals(new BigDecimal(2), beans.get(0), "avalue");
+ }
+ else
+ {
+ assertEquals(new Integer(2), beans.get(0), "avalue");
+ }
}
/**
@@ -383,23 +407,45 @@
{
return;
}
-
- 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' 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>";
+
+ boolean isSybase = SybasePlatform.DATABASENAME.equals(getPlatform().getName());
+ String model1Xml;
+ String model2Xml;
+
+ if (isSybase)
+ {
+ 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='NUMERIC' size='12,0' required='true' autoIncrement='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ 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='NUMERIC' size='12,0' required='true' autoIncrement='false'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+ else
+ {
+ 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' autoIncrement='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ 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>";
+ }
createDatabase(model1Xml);
@@ -412,7 +458,14 @@
List beans = getRows("roundtrip");
- assertEquals(new Integer(1), beans.get(0), "avalue");
+ if (isSybase)
+ {
+ assertEquals(new BigDecimal(1), beans.get(0), "avalue");
+ }
+ else
+ {
+ assertEquals(new Integer(1), beans.get(0), "avalue");
+ }
}
/**
@@ -460,21 +513,37 @@
return;
}
- final String model1Xml =
+ // we need special catering for Sybase which does not support identity for INTEGER columns
+ boolean isSybase = SybasePlatform.DATABASENAME.equals(getPlatform().getName());
+ 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' autoIncrement='true' required='true'/>\n"+
- " </table>\n"+
- "</database>";
+ String model2Xml;
+
+ if (isSybase)
+ {
+ 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='NUMERIC' size='12,0' autoIncrement='true' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+ else
+ {
+ 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);
@@ -487,7 +556,14 @@
List beans = getRows("roundtrip");
- assertEquals(new Integer(1), beans.get(0), "avalue");
+ if (isSybase)
+ {
+ assertEquals(new BigDecimal(1), beans.get(0), "avalue");
+ }
+ else
+ {
+ assertEquals(new Integer(1), beans.get(0), "avalue");
+ }
}
/**
@@ -750,22 +826,37 @@
return;
}
- 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' autoIncrement='true'/>\n"+
- " </table>\n"+
- "</database>";
- final String model2Xml =
+ boolean isSybase = SybasePlatform.DATABASENAME.equals(getPlatform().getName());
+ 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>";
+ String model1Xml;
+ if (isSybase)
+ {
+ 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='NUMERIC' size='12,0' required='true' autoIncrement='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+ else
+ {
+ 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' autoIncrement='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+
createDatabase(model1Xml);
insertRow("roundtrip", new Object[] { new Integer(1) });
Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestConstraints.java
URL: http://svn.apache.org/viewvc/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestConstraints.java?rev=418870&r1=418869&r2=418870&view=diff
==============================================================================
--- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestConstraints.java (original)
+++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestConstraints.java Mon Jul 3 16:20:18 2006
@@ -17,6 +17,7 @@
*/
import org.apache.ddlutils.model.Database;
+import org.apache.ddlutils.platform.sybase.SybasePlatform;
import junit.framework.Test;
@@ -28,154 +29,6 @@
*/
public class TestConstraints extends RoundtripTestBase
{
- /** Test model with a nullable column. */
- protected static final String TEST_NULL_MODEL =
- "<?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>";
- /** Test model with a not-nullable column. */
- protected static final String TEST_NOT_NULL_MODEL =
- "<?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' required='true'/>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with a auto-increment INTEGER column. */
- protected static final String TEST_AUTO_INCREMENT_INTEGER_MODEL =
- "<?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='true' autoIncrement='true'/>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with a auto-increment DOUBLE column. */
- protected static final String TEST_AUTO_INCREMENT_DOUBLE_MODEL =
- "<?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='true' autoIncrement='true'/>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with a auto-increment primary key column. */
- protected static final String TEST_PRIMARY_KEY_AUTO_INCREMENT_MODEL =
- "<?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' autoIncrement='true'/>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with a simple index. */
- protected static final String TEST_INDEX_MODEL =
- "<?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'/>\n"+
- " <index name='TEST_INDEX'>\n"+
- " <index-column name='avalue'/>\n"+
- " </index>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with an unique index with two columns. */
- protected static final String TEST_UNIQUE_INDEX_MODEL =
- "<?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='value_1' type='DOUBLE'/>\n"+
- " <column name='value_2' type='VARCHAR' size='32'/>\n"+
- " <unique name='test_index'>\n"+
- " <unique-column name='value_2'/>\n"+
- " <unique-column name='value_1'/>\n"+
- " </unique>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with an index with two columns, one of which a pk field. */
- protected static final String TEST_PRIMARY_KEY_INDEX_MODEL =
- "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
- "<database name='roundtriptest'>\n"+
- " <table name='roundtrip'>\n"+
- " <column name='pk_1' type='INTEGER' primaryKey='true' required='true'/>\n"+
- " <column name='pk_2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
- " <column name='avalue' type='DOUBLE'/>\n"+
- " <index name='test_index'>\n"+
- " <index-column name='avalue'/>\n"+
- " <index-column name='pk_1'/>\n"+
- " </index>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with two tables and a simple foreign key relationship between them. */
- protected static final String TEST_SIMPLE_FOREIGN_KEY_MODEL =
- "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
- "<database name='roundtriptest'>\n"+
- " <table name='roundtrip_1'>\n"+
- " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
- " </table>\n"+
- " <table name='roundtrip_2'>\n"+
- " <column name='pk' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
- " <column name='avalue' type='INTEGER' required='true'/>\n"+
- " <foreign-key foreignTable='roundtrip_1'>\n"+
- " <reference local='avalue' foreign='pk'/>\n"+
- " </foreign-key>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with two tables and overlapping foreign keys between them. */
- protected static final String TEST_OVERLAPPING_FOREIGN_KEYS_MODEL =
- "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
- "<database name='roundtriptest'>\n"+
- " <table name='roundtrip_1'>\n"+
- " <column name='pk_1' type='INTEGER' primaryKey='true' required='true'/>\n"+
- " <column name='pk_2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
- " </table>\n"+
- " <table name='roundtrip_2'>\n"+
- " <column name='pk' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
- " <column name='value_1' type='INTEGER' required='true'/>\n"+
- " <column name='value_2' type='INTEGER'/>\n"+
- " <column name='value_3' type='VARCHAR' size='32'/>\n"+
- " <foreign-key name='fk_1' foreignTable='roundtrip_1'>\n"+
- " <reference local='value_1' foreign='pk_1'/>\n"+
- " <reference local='value_3' foreign='pk_2'/>\n"+
- " </foreign-key>\n"+
- " <foreign-key foreignTable='roundtrip_1'>\n"+
- " <reference local='value_2' foreign='pk_1'/>\n"+
- " <reference local='value_3' foreign='pk_2'/>\n"+
- " </foreign-key>\n"+
- " </table>\n"+
- "</database>";
- /** Test model with two tables and circular foreign key relationships between them. */
- protected static final String TEST_CIRCULAR_FOREIGN_KEYS_MODEL =
- "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
- "<database name='roundtriptest'>\n"+
- " <table name='roundtrip_1'>\n"+
- " <column name='pk_1' type='INTEGER' primaryKey='true' required='true'/>\n"+
- " <column name='pk_2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
- " <column name='value_1' type='INTEGER'/>\n"+
- " <column name='value_2' type='VARCHAR' size='32'/>\n"+
- " <foreign-key foreignTable='roundtrip_2'>\n"+
- " <reference local='value_1' foreign='pk_1'/>\n"+
- " <reference local='value_2' foreign='pk_2'/>\n"+
- " </foreign-key>\n"+
- " </table>\n"+
- " <table name='roundtrip_2'>\n"+
- " <column name='pk_1' type='INTEGER' primaryKey='true' required='true'/>\n"+
- " <column name='pk_2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
- " <column name='value_1' type='VARCHAR' size='32' required='true'/>\n"+
- " <column name='value_2' type='INTEGER' required='true'/>\n"+
- " <foreign-key foreignTable='roundtrip_1'>\n"+
- " <reference local='value_2' foreign='pk_1'/>\n"+
- " <reference local='value_1' foreign='pk_2'/>\n"+
- " </foreign-key>\n"+
- " </table>\n"+
- "</database>";
-
/**
* Parameterized test case pattern.
*
@@ -218,7 +71,16 @@
*/
public void testNullableColumn()
{
- performConstraintsTest(TEST_NULL_MODEL, true);
+ final String modelXml =
+ "<?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>";
+
+ performConstraintsTest(modelXml, true);
}
/**
@@ -226,7 +88,16 @@
*/
public void testNotNullableColumn()
{
- performConstraintsTest(TEST_NOT_NULL_MODEL, true);
+ final String modelXml =
+ "<?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' required='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+
+ performConstraintsTest(modelXml, true);
}
/**
@@ -235,11 +106,37 @@
public void testAutoIncrementIntegerColumn()
{
// only test this if the platform supports it
- if (getPlatformInfo().isNonPKIdentityColumnsSupported())
+ if (!getPlatformInfo().isNonPKIdentityColumnsSupported())
+ {
+ return;
+ }
+
+ // we need special catering for Sybase which does not support identity for INTEGER columns
+ final String modelXml;
+
+ if (SybasePlatform.DATABASENAME.equals(getPlatform().getName()))
{
- performConstraintsTest(TEST_AUTO_INCREMENT_INTEGER_MODEL,
- getPlatformInfo().getIdentityStatusReadingSupported());
+ modelXml = "<?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='NUMERIC' size='12,0' required='true' autoIncrement='true'/>\n"+
+ " </table>\n"+
+ "</database>";
}
+ else
+ {
+ modelXml = "<?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='true' autoIncrement='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+
+ performConstraintsTest(modelXml,
+ getPlatformInfo().getIdentityStatusReadingSupported());
}
/**
@@ -247,7 +144,29 @@
*/
public void testPrimaryKeyAutoIncrementColumn()
{
- performConstraintsTest(TEST_PRIMARY_KEY_AUTO_INCREMENT_MODEL,
+ // we need special catering for Sybase which does not support identity for INTEGER columns
+ final String modelXml;
+
+ if (SybasePlatform.DATABASENAME.equals(getPlatform().getName()))
+ {
+ modelXml = "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk' type='NUMERIC' size='12,0' primaryKey='true' required='true' autoIncrement='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+ else
+ {
+ modelXml = "<?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' autoIncrement='true'/>\n"+
+ " </table>\n"+
+ "</database>";
+ }
+
+ performConstraintsTest(modelXml,
getPlatformInfo().getIdentityStatusReadingSupported());
}
@@ -256,10 +175,24 @@
*/
public void testIndex()
{
- if (getPlatformInfo().isIndicesSupported())
+ if (!getPlatformInfo().isIndicesSupported())
{
- performConstraintsTest(TEST_INDEX_MODEL, true);
+ return;
}
+
+ final String modelXml =
+ "<?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'/>\n"+
+ " <index name='TEST_INDEX'>\n"+
+ " <index-column name='avalue'/>\n"+
+ " </index>\n"+
+ " </table>\n"+
+ "</database>";
+
+ performConstraintsTest(modelXml, true);
}
/**
@@ -267,10 +200,26 @@
*/
public void testUniqueIndex()
{
- if (getPlatformInfo().isIndicesSupported())
+ if (!getPlatformInfo().isIndicesSupported())
{
- performConstraintsTest(TEST_UNIQUE_INDEX_MODEL, true);
+ return;
}
+
+ final String modelXml =
+ "<?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='value_1' type='DOUBLE'/>\n"+
+ " <column name='value_2' type='VARCHAR' size='32'/>\n"+
+ " <unique name='test_index'>\n"+
+ " <unique-column name='value_2'/>\n"+
+ " <unique-column name='value_1'/>\n"+
+ " </unique>\n"+
+ " </table>\n"+
+ "</database>";
+
+ performConstraintsTest(modelXml, true);
}
/**
@@ -278,10 +227,26 @@
*/
public void testPrimaryKeyIndex()
{
- if (getPlatformInfo().isIndicesSupported())
+ if (!getPlatformInfo().isIndicesSupported())
{
- performConstraintsTest(TEST_PRIMARY_KEY_INDEX_MODEL, true);
+ return;
}
+
+ final String modelXml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip'>\n"+
+ " <column name='pk_1' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='pk_2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='DOUBLE'/>\n"+
+ " <index name='test_index'>\n"+
+ " <index-column name='avalue'/>\n"+
+ " <index-column name='pk_1'/>\n"+
+ " </index>\n"+
+ " </table>\n"+
+ "</database>";
+
+ performConstraintsTest(modelXml, true);
}
/**
@@ -289,7 +254,22 @@
*/
public void testSimpleForeignKey()
{
- performConstraintsTest(TEST_SIMPLE_FOREIGN_KEY_MODEL, true);
+ final String modelXml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip_1'>\n"+
+ " <column name='pk' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ " <table name='roundtrip_2'>\n"+
+ " <column name='pk' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " <column name='avalue' type='INTEGER' required='true'/>\n"+
+ " <foreign-key foreignTable='roundtrip_1'>\n"+
+ " <reference local='avalue' foreign='pk'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ "</database>";
+
+ performConstraintsTest(modelXml, true);
}
/**
@@ -297,7 +277,30 @@
*/
public void testOverlappingForeignKeys()
{
- performConstraintsTest(TEST_OVERLAPPING_FOREIGN_KEYS_MODEL, true);
+ final String modelXml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip_1'>\n"+
+ " <column name='pk_1' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='pk_2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " </table>\n"+
+ " <table name='roundtrip_2'>\n"+
+ " <column name='pk' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " <column name='value_1' type='INTEGER' required='true'/>\n"+
+ " <column name='value_2' type='INTEGER'/>\n"+
+ " <column name='value_3' type='VARCHAR' size='32'/>\n"+
+ " <foreign-key name='fk_1' foreignTable='roundtrip_1'>\n"+
+ " <reference local='value_1' foreign='pk_1'/>\n"+
+ " <reference local='value_3' foreign='pk_2'/>\n"+
+ " </foreign-key>\n"+
+ " <foreign-key foreignTable='roundtrip_1'>\n"+
+ " <reference local='value_2' foreign='pk_1'/>\n"+
+ " <reference local='value_3' foreign='pk_2'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ "</database>";
+
+ performConstraintsTest(modelXml, true);
}
/**
@@ -305,6 +308,31 @@
*/
public void testCircularForeignKeys()
{
- performConstraintsTest(TEST_CIRCULAR_FOREIGN_KEYS_MODEL, true);
+ final String modelXml =
+ "<?xml version='1.0' encoding='ISO-8859-1'?>\n"+
+ "<database name='roundtriptest'>\n"+
+ " <table name='roundtrip_1'>\n"+
+ " <column name='pk_1' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='pk_2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " <column name='value_1' type='INTEGER'/>\n"+
+ " <column name='value_2' type='VARCHAR' size='32'/>\n"+
+ " <foreign-key foreignTable='roundtrip_2'>\n"+
+ " <reference local='value_1' foreign='pk_1'/>\n"+
+ " <reference local='value_2' foreign='pk_2'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ " <table name='roundtrip_2'>\n"+
+ " <column name='pk_1' type='INTEGER' primaryKey='true' required='true'/>\n"+
+ " <column name='pk_2' type='VARCHAR' size='32' primaryKey='true' required='true'/>\n"+
+ " <column name='value_1' type='VARCHAR' size='32' required='true'/>\n"+
+ " <column name='value_2' type='INTEGER' required='true'/>\n"+
+ " <foreign-key foreignTable='roundtrip_1'>\n"+
+ " <reference local='value_2' foreign='pk_1'/>\n"+
+ " <reference local='value_1' foreign='pk_2'/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ "</database>";
+
+ performConstraintsTest(modelXml, true);
}
}