Return-Path: Delivered-To: apmail-db-ddlutils-dev-archive@www.apache.org Received: (qmail 78065 invoked from network); 28 Dec 2005 15:50:50 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 28 Dec 2005 15:50:50 -0000 Received: (qmail 29193 invoked by uid 500); 28 Dec 2005 15:50:49 -0000 Delivered-To: apmail-db-ddlutils-dev-archive@db.apache.org Received: (qmail 29115 invoked by uid 500); 28 Dec 2005 15:50:48 -0000 Mailing-List: contact ddlutils-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ddlutils-dev@db.apache.org Delivered-To: mailing list ddlutils-dev@db.apache.org Received: (qmail 29098 invoked by uid 500); 28 Dec 2005 15:50:48 -0000 Delivered-To: apmail-db-ddlutils-commits@db.apache.org Received: (qmail 29093 invoked by uid 99); 28 Dec 2005 15:50:48 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Dec 2005 07:50:48 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Wed, 28 Dec 2005 07:50:45 -0800 Received: (qmail 77934 invoked by uid 65534); 28 Dec 2005 15:50:24 -0000 Message-ID: <20051228155024.77933.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r359553 [1/2] - in /db/ddlutils/trunk/src/test/org/apache/ddlutils/io: ConstraintsTestBase.java DatatypesTestBase.java RoundtripTestBase.java TestDerbyConstraints.java TestDerbyDatatypes.java Date: Wed, 28 Dec 2005 15:50:22 -0000 To: ddlutils-commits@db.apache.org From: tomdz@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: tomdz Date: Wed Dec 28 07:50:15 2005 New Revision: 359553 URL: http://svn.apache.org/viewcvs?rev=359553&view=rev Log: Restructured tests to allow for running against other databases Added: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/ConstraintsTestBase.java db/ddlutils/trunk/src/test/org/apache/ddlutils/io/DatatypesTestBase.java Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/RoundtripTestBase.java db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDerbyConstraints.java db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDerbyDatatypes.java Added: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/ConstraintsTestBase.java URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/ConstraintsTestBase.java?rev=359553&view=auto ============================================================================== --- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/ConstraintsTestBase.java (added) +++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/ConstraintsTestBase.java Wed Dec 28 07:50:15 2005 @@ -0,0 +1,268 @@ +package org.apache.ddlutils.io; + +/* + * Copyright 1999-2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Performs the constraint tests. + * + * @author Thomas Dudziak + * @version $Revision: 289996 $ + */ +public abstract class ConstraintsTestBase extends RoundtripTestBase +{ + /** Test model with a nullable column. */ + protected static final String TEST_NULL_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a not-nullable column. */ + protected static final String TEST_NOT_NULL_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a auto-increment INTEGER column. */ + protected static final String TEST_AUTO_INCREMENT_INTEGER_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a auto-increment DOUBLE column. */ + protected static final String TEST_AUTO_INCREMENT_DOUBLE_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a auto-increment primary key column. */ + protected static final String TEST_PRIMARY_KEY_AUTO_INCREMENT_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple index. */ + protected static final String TEST_INDEX_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with an unique index with two columns. */ + protected static final String TEST_UNIQUE_INDEX_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with an index with two columns, one of which a pk field. */ + protected static final String TEST_PRIMARY_KEY_INDEX_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with two tables and a simple foreign key relationship between them. */ + protected static final String TEST_SIMPLE_FOREIGN_KEY_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + "
\n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with two tables and overlapping foreign keys between them. */ + protected static final String TEST_OVERLAPPING_FOREIGN_KEYS_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with two tables and circular foreign key relationships between them. */ + protected static final String TEST_CIRCULAR_FOREIGN_KEYS_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + + /** + * Tests a nullable column. + */ + protected void performConstraintsTest(String modelXml) + { + if (checkPlatform()) + { + createDatabase(modelXml); + + assertEquals(getAdjustedModel(), + getPlatform().readModelFromDatabase("roundtriptest")); + } + } + + /** + * Tests a nullable column. + */ + public void testNullableColumn() + { + performConstraintsTest(TEST_NULL_MODEL); + } + + /** + * Tests a not-nullable column. + */ + public void testNotNullableColumn() + { + performConstraintsTest(TEST_NOT_NULL_MODEL); + } + + /** + * Tests an auto-increment INTEGER column. + */ + public void testAutoIncrementIntegerColumn() + { + performConstraintsTest(TEST_AUTO_INCREMENT_INTEGER_MODEL); + } + + /** + * Tests an auto-increment primary key column. + */ + public void testPrimaryKeyAutoIncrementColumn() + { + performConstraintsTest(TEST_PRIMARY_KEY_AUTO_INCREMENT_MODEL); + } + + /** + * Tests a simple index. + */ + public void testIndex() + { + performConstraintsTest(TEST_INDEX_MODEL); + } + + /** + * Tests an unique index for two columns. + */ + public void testUniqueIndex() + { + performConstraintsTest(TEST_UNIQUE_INDEX_MODEL); + } + + /** + * Tests an index for two columns, one of which a pk column. + */ + public void testPrimaryKeyIndex() + { + performConstraintsTest(TEST_PRIMARY_KEY_INDEX_MODEL); + } + + /** + * Tests two tables with a simple foreign key relationship between them. + */ + public void testSimpleForeignKey() + { + performConstraintsTest(TEST_SIMPLE_FOREIGN_KEY_MODEL); + } + + /** + * Tests two tables with overlapping foreign key relationships between them. + */ + public void testOverlappingForeignKeys() + { + performConstraintsTest(TEST_OVERLAPPING_FOREIGN_KEYS_MODEL); + } + + /** + * Tests two tables with circular foreign key relationships between them. + */ + public void testCircularForeignKeys() + { + performConstraintsTest(TEST_CIRCULAR_FOREIGN_KEYS_MODEL); + } +} Added: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/DatatypesTestBase.java URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/DatatypesTestBase.java?rev=359553&view=auto ============================================================================== --- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/DatatypesTestBase.java (added) +++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/DatatypesTestBase.java Wed Dec 28 07:50:15 2005 @@ -0,0 +1,873 @@ +package org.apache.ddlutils.io; + +import java.math.BigDecimal; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.TreeSet; + +/** + * Performs roundtrip datatype tests. + * + * @author Thomas Dudziak + * @version $Revision: $ + */ +public abstract class DatatypesTestBase extends RoundtripTestBase +{ + /** Test model with a simple BIT column. */ + protected static final String TEST_BIT_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a BIT column with a default value. */ + protected static final String TEST_BIT_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple BOOLEAN column. */ + protected static final String TEST_BOOLEAN_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a BOOLEAN column with a default value. */ + protected static final String TEST_BOOLEAN_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple TINYINT column. */ + protected static final String TEST_TINYINT_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a TINYINT column with a default value. */ + protected static final String TEST_TINYINT_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple SMALLINT column. */ + protected static final String TEST_SMALLINT_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a SMALLINT column with a default value. */ + protected static final String TEST_SMALLINT_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple INTEGER column. */ + protected static final String TEST_INTEGER_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a INTEGER column with a default value. */ + protected static final String TEST_INTEGER_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple BIGINT column. */ + protected static final String TEST_BIGINT_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a BIGINT column with a default value. */ + protected static final String TEST_BIGINT_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple REAL column. */ + protected static final String TEST_REAL_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a REAL column with a default value. */ + protected static final String TEST_REAL_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple FLOAT column. */ + protected static final String TEST_FLOAT_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a FLOAT column with a default value. */ + protected static final String TEST_FLOAT_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple DOUBLE column. */ + protected static final String TEST_DOUBLE_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a DOUBLE column with a default value. */ + protected static final String TEST_DOUBLE_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple DECIMAL column. */ + protected static final String TEST_DECIMAL_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a DECIMAL column with a default value. */ + protected static final String TEST_DECIMAL_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple DECIMAL column with a scale. */ + protected static final String TEST_DECIMAL_MODEL_WITH_SCALE = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a DECIMAL column with a scale and default value. */ + protected static final String TEST_DECIMAL_MODEL_WITH_SCALE_AND_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple NUMERIC column. */ + protected static final String TEST_NUMERIC_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a NUMERIC column with a default value. */ + protected static final String TEST_NUMERIC_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple NUMERIC column with a scale. */ + protected static final String TEST_NUMERIC_MODEL_WITH_SCALE = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a NUMERIC column with a scale and default value. */ + protected static final String TEST_NUMERIC_MODEL_WITH_SCALE_AND_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple CHAR column. */ + protected static final String TEST_CHAR_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a CHAR column with a default value. */ + protected static final String TEST_CHAR_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple VARCHAR column. */ + protected static final String TEST_VARCHAR_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a VARCHAR column with a default value. */ + protected static final String TEST_VARCHAR_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple LONGVARCHAR column. */ + protected static final String TEST_LONGVARCHAR_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a LONGVARCHAR column with a default value. */ + protected static final String TEST_LONGVARCHAR_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple DATE column. */ + protected static final String TEST_DATE_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a DATE column with a default value. */ + protected static final String TEST_DATE_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple TIME column. */ + protected static final String TEST_TIME_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a TIME column with a default value. */ + protected static final String TEST_TIME_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple TIMESTAMP column. */ + protected static final String TEST_TIMESTAMP_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a TIMESTAMP column with a default value. */ + protected static final String TEST_TIMESTAMP_MODEL_WITH_DEFAULT = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple BINARY column. */ + protected static final String TEST_BINARY_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple VARBINARY column. */ + protected static final String TEST_VARBINARY_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple LONGVARBINARY column. */ + protected static final String TEST_LONGVARBINARY_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple BLOB column. */ + protected static final String TEST_BLOB_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + /** Test model with a simple CLOB column. */ + protected static final String TEST_CLOB_MODEL = + "\n"+ + "\n"+ + " \n"+ + " \n"+ + " \n"+ + "
\n"+ + "
"; + + // TODO: special columns (java_object, array, distinct, ...) + + /** + * Performs a data type test. + * + * @param modelXml The model as XML + * @param value1 The non-pk value for the first row + * @param value2 The non-pk value for the second row + */ + protected void performDataTypeTest(String modelXml, Object value1, Object value2) + { + performDataTypeTest(modelXml, value1, value2, value1, value2); + } + + /** + * Performs a data type test for a model with a default value. + * + * @param modelXml The model as XML + * @param value1 The non-pk value for the first row; use null for + * the default value + * @param value2 The non-pk value for the second row; use null for + * the default value + * @param defaultValue The default value + */ + protected void performDataTypeTest(String modelXml, Object value1, Object value2, Object defaultValue) + { + performDataTypeTest(modelXml, + value1, + value2, + value1 == null ? defaultValue : value1, + value2 == null ? defaultValue : value2); + } + + /** + * Performs a data type test. + * + * @param modelXml The model as XML + * @param inserted1 The non-pk value to insert for the first row + * @param inserted2 The non-pk value to insert for the second row + * @param expected1 The expected non-pk value for the first row + * @param expected2 The expected non-pk value for the second row + */ + protected void performDataTypeTest(String modelXml, Object inserted1, Object inserted2, Object expected1, Object expected2) + { + if (checkPlatform()) + { + createDatabase(modelXml); + insertRow("ROUNDTRIP", new Object[] { new Integer(1), inserted1 }); + insertRow("ROUNDTRIP", new Object[] { new Integer(2), inserted2 }); + + List beans = getRows("ROUNDTRIP"); + + assertEquals(expected1, beans.get(0), "VALUE"); + assertEquals(expected2, beans.get(1), "VALUE"); + + assertEquals(getAdjustedModel(), + getPlatform().readModelFromDatabase("roundtriptest")); + } + } + + /** + * Tests a simple BIT column. + */ + public void testBit() + { + performDataTypeTest(TEST_BIT_MODEL, Boolean.TRUE, Boolean.FALSE); + } + + /** + * Tests a BIT column with a default value. + */ + public void testBitWithDefault() + { + performDataTypeTest(TEST_BIT_MODEL_WITH_DEFAULT, null, Boolean.TRUE, Boolean.FALSE); + } + + /** + * Tests a simple BOOLEAN column. + */ + public void testBoolean() + { + performDataTypeTest(TEST_BOOLEAN_MODEL, Boolean.FALSE, Boolean.TRUE); + } + + /** + * Tests a BOOLEAN column with a default value. + */ + public void testBooleanWithDefault() + { + performDataTypeTest(TEST_BOOLEAN_MODEL_WITH_DEFAULT, Boolean.TRUE, null, Boolean.TRUE); + } + + /** + * Tests a simple TINYINT column. + */ + public void testTinyInt() + { + performDataTypeTest(TEST_TINYINT_MODEL, new Integer(254), new Integer(-254)); + } + + /** + * Tests a TINYINT column with a default value. + */ + public void testTinyIntWithDefault() + { + performDataTypeTest(TEST_TINYINT_MODEL_WITH_DEFAULT, new Integer(128), null, new Integer(-200)); + } + + /** + * Tests a simple SMALLINT column. + */ + public void testSmallInt() + { + performDataTypeTest(TEST_SMALLINT_MODEL, new Integer(-32768), new Integer(32767)); + } + + /** + * Tests a SMALLINT column with a default value. + */ + public void testSmallIntWithDefault() + { + performDataTypeTest(TEST_SMALLINT_MODEL_WITH_DEFAULT, new Integer(256), null, new Integer(-32768)); + } + + /** + * Tests a simple INTEGER column. + */ + public void testInteger() + { + performDataTypeTest(TEST_INTEGER_MODEL, new Integer(0), new Integer(-2147483648)); + } + + /** + * Tests a INTEGER column with a default value. + */ + public void testIntegerWithDefault() + { + performDataTypeTest(TEST_INTEGER_MODEL_WITH_DEFAULT, null, new Integer(2147483646), new Integer(2147483647)); + } + + /** + * Tests a simple BIGINT column. + */ + public void testBigInt() + { + performDataTypeTest(TEST_BIGINT_MODEL, new Long(9223372036854775807l), new Long(0l)); + } + + /** + * Tests a BIGINT column with a default value. + */ + public void testBigIntWithDefault() + { + performDataTypeTest(TEST_BIGINT_MODEL_WITH_DEFAULT, null, new Long(-1l), new Long(-9223372036854775808l)); + } + + /** + * Tests a simple REAL column. + */ + public void testReal() + { + performDataTypeTest(TEST_REAL_MODEL, new Float(123456789.98765f), new Float(0.0f)); + } + + /** + * Tests a REAL column with a default value. + */ + public void testRealWithDefault() + { + performDataTypeTest(TEST_REAL_MODEL_WITH_DEFAULT, new Float(1e+20f), null, new Float(-1.0123456f)); + } + + /** + * Tests a simple FLOAT column. + */ + public void testFloat() + { + performDataTypeTest(TEST_FLOAT_MODEL, new Double(-1.0), new Double(Float.MIN_VALUE)); + } + + /** + * Tests a FLOAT column with a default value. + */ + public void testFloatWithDefault() + { + performDataTypeTest(TEST_FLOAT_MODEL_WITH_DEFAULT, null, new Double(1e+150), new Double(1234567890.012345678901234)); + } + + /** + * Tests a simple DOUBLE column. + */ + public void testDouble() + { + performDataTypeTest(TEST_DOUBLE_MODEL, new Double(Float.MAX_VALUE), new Double(1.01)); + } + + /** + * Tests a DOUBLE column with a default value. + */ + public void testDoubleWithDefault() + { + performDataTypeTest(TEST_DOUBLE_MODEL_WITH_DEFAULT, new Double(-1e+150), null, new Double(-9876543210.987654321098765)); + } + + /** + * Tests a simple DECIMAL column. + */ + public void testDecimal() + { + performDataTypeTest(TEST_DECIMAL_MODEL, new BigDecimal("0"), new BigDecimal("-123456789012345")); + } + + /** + * Tests a DECIMAL column with a default value. + */ + public void testDecimalWithDefault() + { + performDataTypeTest(TEST_DECIMAL_MODEL_WITH_DEFAULT, null, new BigDecimal("-1"), new BigDecimal("123456789012345")); + } + + /** + * Tests a simple DECIMAL column with a scale. + */ + public void testDecimalWithScale() + { + performDataTypeTest(TEST_DECIMAL_MODEL_WITH_SCALE, new BigDecimal("0.0100000"), new BigDecimal("-87654321.1234567")); + } + + /** + * Tests a DECIMAL column with a scale and default value. + */ + public void testDecimalWithScaleAndDefault() + { + performDataTypeTest(TEST_DECIMAL_MODEL_WITH_SCALE_AND_DEFAULT, new BigDecimal("1.0000000"), null, new BigDecimal("12345678.7654321")); + } + + /** + * Tests a simple NUMERIC column. + */ + public void testNumeric() + { + performDataTypeTest(TEST_NUMERIC_MODEL, new BigDecimal("543210987654321"), new BigDecimal("-2")); + } + + /** + * Tests a NUMERIC column with a default value. + */ + public void testNumericWithDefault() + { + performDataTypeTest(TEST_NUMERIC_MODEL_WITH_DEFAULT, null, new BigDecimal("100"), new BigDecimal("-123456789012345")); + } + + /** + * Tests a simple NUMERIC column with a scale. + */ + public void testNumericWithScale() + { + performDataTypeTest(TEST_NUMERIC_MODEL_WITH_SCALE, new BigDecimal("1234567.89012345"), new BigDecimal("1.00000000")); + } + + /** + * Tests a NUMERIC column with a scale and default value. + */ + public void testNumericWithScaleAndDefault() + { + performDataTypeTest(TEST_NUMERIC_MODEL_WITH_SCALE_AND_DEFAULT, null, new BigDecimal("1e-8"), new BigDecimal("-1234567.87654321")); + } + + /** + * Tests a simple CHAR column. + */ + public void testChar() + { + performDataTypeTest(TEST_CHAR_MODEL, null, "1234567890"); + } + + /** + * Tests a CHAR column with a default value. + */ + public void testCharWithDefault() + { + performDataTypeTest(TEST_CHAR_MODEL_WITH_DEFAULT, null, "12345", "some value ", "12345 "); + } + + /** + * Tests a simple VARCHAR column. + */ + public void testVarChar() + { + performDataTypeTest(TEST_VARCHAR_MODEL, "123456789012345678", null); + } + + /** + * Tests a VARCHAR column with a default value. + */ + public void testVarCharWithDefault() + { + String value = "1234567890123456789012345678901234567890123456789012345678901234"+ + "1234567890123456789012345678901234567890123456789012345678901234"+ + "1234567890123456789012345678901234567890123456789012345678901234"+ + "12345678901234567890123456789012345678901234567890123456789012"; + + performDataTypeTest(TEST_VARCHAR_MODEL_WITH_DEFAULT, null, value, "some value"); + } + + /** + * Tests a simple LONGVARCHAR column. + */ + public void testLongVarChar() + { + performDataTypeTest(TEST_LONGVARCHAR_MODEL, null, "some not too long text"); + } + + /** + * Tests a LONGVARCHAR column with a default value. + */ + public void testLongVarCharWithDefault() + { + String value = "1234567890123456789012345678901234567890123456789012345678901234"+ + "1234567890123456789012345678901234567890123456789012345678901234"+ + "1234567890123456789012345678901234567890123456789012345678901234"+ + "1234567890123456789012345678901234567890123456789012345678901234"; + + performDataTypeTest(TEST_LONGVARCHAR_MODEL_WITH_DEFAULT, null, value, "some value"); + } + + /** + * Tests a simple DATE column. + */ + public void testDate() + { + // we would use Calendar but that might give Locale problems + performDataTypeTest(TEST_DATE_MODEL, null, new Date(103, 12, 25)); + } + + /** + * Tests a DATE column with a default value. + */ + public void testDateWithDefault() + { + // we would use Calendar but that might give Locale problems + performDataTypeTest(TEST_DATE_MODEL_WITH_DEFAULT, new Date(105, 0, 1), null, new Date(100, 0, 1)); + } + + /** + * Tests a simple TIME column. + */ + public void testTime() + { + // we would use Calendar but that might give Locale problems + performDataTypeTest(TEST_TIME_MODEL, new Time(03, 47, 15), null); + } + + /** + * Tests a TIME column with a default value. + */ + public void testTimeWithDefault() + { + // we would use Calendar but that might give Locale problems + performDataTypeTest(TEST_TIME_MODEL_WITH_DEFAULT, new Time(23, 59, 59), null, new Time(11, 27, 03)); + } + + /** + * Tests a simple TIMESTAMP column. + */ + public void testTimestamp() + { + // we would use Calendar but that might give Locale problems + // also we leave out the fractional part because databases differe + // in their support here + performDataTypeTest(TEST_TIMESTAMP_MODEL, new Timestamp(70, 0, 1, 0, 0, 0, 0), new Timestamp(100, 10, 11, 10, 10, 10, 0)); + } + + /** + * Tests a TIMESTAMP column with a default value. + */ + public void testTimestampWithDefault() + { + // we would use Calendar but that might give Locale problems + // also we leave out the fractional part because databases differe + // in their support here + performDataTypeTest(TEST_TIMESTAMP_MODEL_WITH_DEFAULT, new Timestamp(90, 9, 21, 20, 25, 39, 0), null, new Timestamp(85, 5, 17, 16, 17, 18, 0)); + } + + /** + * Tests a simple BINARY column. + */ + public void testBinary() + { + HashMap value1 = new HashMap(); + ArrayList value2 = new ArrayList(); + + value1.put("test", "some value"); + value2.add("some other value"); + + BinaryObjectsHelper helper = new BinaryObjectsHelper(); + + performDataTypeTest(TEST_BINARY_MODEL, + helper.serialize(value1), helper.serialize(value2), + value1, value2); + } + + /** + * Tests a simple VARBINARY column. + */ + public void testVarBinary() + { + TreeSet value1 = new TreeSet(); + String value2 = "a value, nothing special"; + + value1.add("o look, a value !"); + + BinaryObjectsHelper helper = new BinaryObjectsHelper(); + + performDataTypeTest(TEST_VARBINARY_MODEL, + helper.serialize(value1), helper.serialize(value2), + value1, value2); + } + + /** + * Tests a simple LONGVARBINARY column. + */ + public void testLongVarBinary() + { + HashMap value = new HashMap(); + + value.put("test1", "some value"); + value.put(null, "some other value"); + + BinaryObjectsHelper helper = new BinaryObjectsHelper(); + + performDataTypeTest(TEST_LONGVARBINARY_MODEL, + helper.serialize(value), null, + value, null); + } + + /** + * Tests a simple BLOB column. + */ + public void testBlob() + { + HashMap value = new HashMap(); + + value.put("test1", "some value"); + value.put(null, "some other value"); + + BinaryObjectsHelper helper = new BinaryObjectsHelper(); + + performDataTypeTest(TEST_BLOB_MODEL, + helper.serialize(value), null, + value, null); + } + + /** + * Tests a simple CLOB column. + */ + public void testClob() + { + String value = "1234567890123456789012345678901234567890123456789012345678901234"+ + "1234567890123456789012345678901234567890123456789012345678901234"+ + "1234567890123456789012345678901234567890123456789012345678901234"+ + "1234567890123456789012345678901234567890123456789012345678901234"; + + performDataTypeTest(TEST_CLOB_MODEL, null, value); + } +} Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/RoundtripTestBase.java URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/RoundtripTestBase.java?rev=359553&r1=359552&r2=359553&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 Wed Dec 28 07:50:15 2005 @@ -39,548 +39,27 @@ */ public abstract class RoundtripTestBase extends TestDatabaseWriterBase { - /** Test model with a simple BIT column. */ - protected static final String TEST_BIT_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a BIT column with a default value. */ - protected static final String TEST_BIT_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple BOOLEAN column. */ - protected static final String TEST_BOOLEAN_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a BOOLEAN column with a default value. */ - protected static final String TEST_BOOLEAN_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple TINYINT column. */ - protected static final String TEST_TINYINT_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a TINYINT column with a default value. */ - protected static final String TEST_TINYINT_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple SMALLINT column. */ - protected static final String TEST_SMALLINT_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a SMALLINT column with a default value. */ - protected static final String TEST_SMALLINT_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple INTEGER column. */ - protected static final String TEST_INTEGER_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a INTEGER column with a default value. */ - protected static final String TEST_INTEGER_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple BIGINT column. */ - protected static final String TEST_BIGINT_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a BIGINT column with a default value. */ - protected static final String TEST_BIGINT_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple REAL column. */ - protected static final String TEST_REAL_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a REAL column with a default value. */ - protected static final String TEST_REAL_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple FLOAT column. */ - protected static final String TEST_FLOAT_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a FLOAT column with a default value. */ - protected static final String TEST_FLOAT_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple DOUBLE column. */ - protected static final String TEST_DOUBLE_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a DOUBLE column with a default value. */ - protected static final String TEST_DOUBLE_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple DECIMAL column. */ - protected static final String TEST_DECIMAL_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a DECIMAL column with a default value. */ - protected static final String TEST_DECIMAL_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple DECIMAL column with a scale. */ - protected static final String TEST_DECIMAL_MODEL_WITH_SCALE = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a DECIMAL column with a scale and default value. */ - protected static final String TEST_DECIMAL_MODEL_WITH_SCALE_AND_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple NUMERIC column. */ - protected static final String TEST_NUMERIC_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a NUMERIC column with a default value. */ - protected static final String TEST_NUMERIC_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple NUMERIC column with a scale. */ - protected static final String TEST_NUMERIC_MODEL_WITH_SCALE = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a NUMERIC column with a scale and default value. */ - protected static final String TEST_NUMERIC_MODEL_WITH_SCALE_AND_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple CHAR column. */ - protected static final String TEST_CHAR_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a CHAR column with a default value. */ - protected static final String TEST_CHAR_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple VARCHAR column. */ - protected static final String TEST_VARCHAR_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a VARCHAR column with a default value. */ - protected static final String TEST_VARCHAR_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple LONGVARCHAR column. */ - protected static final String TEST_LONGVARCHAR_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a LONGVARCHAR column with a default value. */ - protected static final String TEST_LONGVARCHAR_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple DATE column. */ - protected static final String TEST_DATE_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a DATE column with a default value. */ - protected static final String TEST_DATE_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple TIME column. */ - protected static final String TEST_TIME_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a TIME column with a default value. */ - protected static final String TEST_TIME_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple TIMESTAMP column. */ - protected static final String TEST_TIMESTAMP_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a TIMESTAMP column with a default value. */ - protected static final String TEST_TIMESTAMP_MODEL_WITH_DEFAULT = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple BINARY column. */ - protected static final String TEST_BINARY_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple VARBINARY column. */ - protected static final String TEST_VARBINARY_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple LONGVARBINARY column. */ - protected static final String TEST_LONGVARBINARY_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple BLOB column. */ - protected static final String TEST_BLOB_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple CLOB column. */ - protected static final String TEST_CLOB_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - - /** Test model with a nullable column. */ - protected static final String TEST_NULL_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a not-nullable column. */ - protected static final String TEST_NOT_NULL_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a auto-increment INTEGER column. */ - protected static final String TEST_AUTO_INCREMENT_INTEGER_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a auto-increment DOUBLE column. */ - protected static final String TEST_AUTO_INCREMENT_DOUBLE_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a auto-increment primary key column. */ - protected static final String TEST_PRIMARY_KEY_AUTO_INCREMENT_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with a simple index. */ - protected static final String TEST_INDEX_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with an unique index with two columns. */ - protected static final String TEST_UNIQUE_INDEX_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with an index with two columns, one of which a pk field. */ - protected static final String TEST_PRIMARY_KEY_INDEX_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with two tables and a simple foreign key relationship between them. */ - protected static final String TEST_SIMPLE_FOREIGN_KEY_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - "
\n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with two tables and overlapping foreign keys between them. */ - protected static final String TEST_OVERLAPPING_FOREIGN_KEYS_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - /** Test model with two tables and circular foreign key relationships between them. */ - protected static final String TEST_CIRCULAR_FOREIGN_KEYS_MODEL = - "\n"+ - "\n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - " \n"+ - "
\n"+ - "
"; - - - // TODO: special columns (java_object, array, distinct, ...) - - // fks (incl. multiple columns, multiple overlapping fks without names, circular references) + /** + * Returns the name of the platform for which the concrete test class is intended. + * This is used to run tests only for the databases that they are intended to be run + * against. + * + * @return The platform name + */ + protected abstract String getPlatformName(); /** + * Determines whether a concrete test sub class should be run against the configured + * platform. + * + * @return true if the tests should be run against this platform + */ + protected boolean checkPlatform() + { + return getPlatformName().equals(getPlatform().getName()); + } + + /** * Inserts a row into the designated table. * * @param tableName The name of the table (case insensitive) @@ -682,7 +161,7 @@ } /** - * Compares the attribute value of the given bean with the expected object. + * Compares the specified attribute value of the given bean with the expected object. * * @param expected The expected object * @param bean The bean @@ -706,6 +185,13 @@ assertEquals(expected, value); } + /** + * Compares the two given database models, and if they are not equal, writes both of them + * in XML form to stderr. + * + * @param expected The expected model + * @param actual The actual model + */ protected void assertEquals(Database expected, Database actual) throws RuntimeException { try Modified: db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDerbyConstraints.java URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDerbyConstraints.java?rev=359553&r1=359552&r2=359553&view=diff ============================================================================== --- db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDerbyConstraints.java (original) +++ db/ddlutils/trunk/src/test/org/apache/ddlutils/io/TestDerbyConstraints.java Wed Dec 28 07:50:15 2005 @@ -1,5 +1,22 @@ package org.apache.ddlutils.io; +/* + * Copyright 1999-2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.apache.ddlutils.platform.DerbyPlatform; /** * Performs the roundtrip constraint tests against a derby database. @@ -7,123 +24,13 @@ * @author Thomas Dudziak * @version $Revision: 289996 $ */ -public class TestDerbyConstraints extends RoundtripTestBase +public class TestDerbyConstraints extends ConstraintsTestBase { /** * {@inheritDoc} */ - protected boolean hasPkUniqueIndices() - { - return true; - } - - /** - * Tests a nullable column. - */ - public void testNullableColumn() - { - createDatabase(TEST_NULL_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests a not-nullable column. - */ - public void testNotNullableColumn() + protected String getPlatformName() { - createDatabase(TEST_NOT_NULL_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests an auto-increment INTEGER column. - */ - public void testAutoIncrementIntegerColumn() - { - createDatabase(TEST_AUTO_INCREMENT_INTEGER_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests an auto-increment primary key column. - */ - public void testPrimaryKeyAutoIncrementColumn() - { - createDatabase(TEST_PRIMARY_KEY_AUTO_INCREMENT_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests a simple index. - */ - public void testIndex() - { - createDatabase(TEST_INDEX_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests an unique index for two columns. - */ - public void testUniqueIndex() - { - createDatabase(TEST_UNIQUE_INDEX_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests an index for two columns, one of which a pk column. - */ - public void testPrimaryKeyIndex() - { - createDatabase(TEST_PRIMARY_KEY_INDEX_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests two tables with a simple foreign key relationship between them. - */ - public void testSimpleForeignKey() - { - createDatabase(TEST_SIMPLE_FOREIGN_KEY_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests two tables with overlapping foreign key relationships between them. - */ - public void testOverlappingForeignKeys() - { - createDatabase(TEST_OVERLAPPING_FOREIGN_KEYS_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); - } - - /** - * Tests two tables with circular foreign key relationships between them. - */ - public void testCircularForeignKeys() - { - createDatabase(TEST_CIRCULAR_FOREIGN_KEYS_MODEL); - - assertEquals(getAdjustedModel(), - getPlatform().readModelFromDatabase("roundtriptest")); + return DerbyPlatform.DATABASENAME; } }