jlaskowski 2005/07/17 13:36:33
Modified: modules/itests/src/itest/org/openejb/test
DerbyTestDatabase.java
Log:
A testcase that shows the issue with running PetStore 1.3.2 in
Geronimo/OpenEJB.
To execute the testcase and see the issue do the following:
1. Check out the changes
2. Remove 'BUG_' from the method names of
org.openejb.test.entity.cmp2.PetstoreTests
+ BUG_test01_create()
+ BUG_test02_setterAfterCreate()
3. Go to modules/itests directory
4. Run itests
maven -Dmaven.itest.includes=**/Cmp2TestSuite.java
5. Look at
target/itest-reports/TEST-org.openejb.test.entity.cmp2.Cmp2TestSuite.txt
See http://docs.openejb.org/Creating+itests for more information about
OpenEJB itests module and how to create and run EJB tests
Revision Changes Path
1.4 +70 -11
openejb/modules/itests/src/itest/org/openejb/test/DerbyTestDatabase.java
Index: DerbyTestDatabase.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/itests/src/itest/org/openejb/test/DerbyTestDatabase.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DerbyTestDatabase.java 22 Jun 2005 11:27:18 -0000 1.3
+++ DerbyTestDatabase.java 17 Jul 2005 17:36:33 -0000 1.4
@@ -1,33 +1,90 @@
+/* ====================================================================
+ * Redistribution and use of this software and associated documentation
+ * ("Software"), with or without modification, are permitted provided
+ * that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain copyright
+ * statements and notices. Redistributions must also contain a
+ * copy of this document.
+ *
+ * 2. Redistributions in binary form must reproduce this list of
+ * conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. The name "OpenEJB" must not be used to endorse or promote
+ * products derived from this Software without prior written
+ * permission of The OpenEJB Group. For written permission,
+ * please contact [EMAIL PROTECTED]
+ *
+ * 4. Products derived from this Software may not be called "OpenEJB"
+ * nor may "OpenEJB" appear in their names without prior written
+ * permission of The OpenEJB Group. OpenEJB is a registered
+ * trademark of The OpenEJB Group.
+ *
+ * 5. Due credit should be given to the OpenEJB Project
+ * (http://www.openejb.org/).
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OPENEJB GROUP AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ * THE OPENEJB GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the OpenEJB Project. For more information
+ * please see <http://www.openejb.org/>.
+ *
+ * ====================================================================
+ */
package org.openejb.test;
import java.sql.SQLException;
-
/**
- *
+ * @version $Revision$ $Date$
*/
public class DerbyTestDatabase extends AbstractTestDatabase {
private static final String CREATE_ACCOUNT = "CREATE TABLE account ( ssn
VARCHAR(25), first_name VARCHAR(256), last_name VARCHAR(256), balance integer)";
+
private static final String DROP_ACCOUNT = "DROP TABLE account";
private static final String CREATE_ENTITY = "CREATE TABLE entity ( id
integer GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), first_name
VARCHAR(256), last_name VARCHAR(256) )";
+
private static final String DROP_ENTITY = "DROP TABLE entity";
private static final String CREATE_ENTITY_EXPLICIT_PK = "CREATE TABLE
entity_explicit_pk ( id integer, first_name VARCHAR(256), last_name
VARCHAR(256) )";
+
private static final String DROP_ENTITY_EXPLICIT_PK = "DROP TABLE
entity_explicit_pk";
-
+
private static final String CREATE_ADDRESS = "CREATE TABLE address (id
INTEGER, street VARCHAR(256), city VARCHAR(256))";
+
private static final String DROP_ADDRESS = "DROP TABLE address";
-
+
private static final String CREATE_LINE_ITEM = "CREATE TABLE line_item
(id INTEGER, quantity INTEGER, fk_order INTEGER, fk_product INTEGER)";
+
private static final String DROP_LINE_ITEM = "DROP TABLE line_item";
private static final String CREATE_ORDER = "CREATE TABLE order_table (id
INTEGER, reference VARCHAR(256), fk_shipping_address INTEGER,
fk_billing_address INTEGER)";
+
private static final String DROP_ORDER = "DROP TABLE order_table";
private static final String CREATE_PRODUCT = "CREATE TABLE product (id
INTEGER, name VARCHAR(256), product_type VARCHAR(256))";
+
private static final String DROP_PRODUCT = "DROP TABLE product";
+ private static final String CREATE_SEQUENCE_TABLE = "CREATE TABLE
SEQUENCE_TABLE (ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1,
INCREMENT BY 1), DUMMY INT)";
+
+ private static final String DROP_SEQUENCE_TABLE = "DROP TABLE
SEQUENCE_TABLE";
+
static {
System.setProperty("noBanner", "true");
}
@@ -55,7 +112,7 @@
protected String getDropEntityExplicitPK() {
return DROP_ENTITY_EXPLICIT_PK;
}
-
+
public void createCMP2Model() throws SQLException {
executeStatementIgnoreErrors(DROP_ACCOUNT);
executeStatement(CREATE_ACCOUNT);
@@ -68,11 +125,14 @@
executeStatementIgnoreErrors(DROP_ORDER);
executeStatement(CREATE_ORDER);
-
+
executeStatementIgnoreErrors(DROP_PRODUCT);
executeStatement(CREATE_PRODUCT);
+
+ executeStatementIgnoreErrors(DROP_SEQUENCE_TABLE);
+ executeStatement(CREATE_SEQUENCE_TABLE);
}
-
+
public void dropCMP2Model() throws SQLException {
executeStatementIgnoreErrors(DROP_ACCOUNT);
@@ -81,10 +141,9 @@
executeStatementIgnoreErrors(DROP_LINE_ITEM);
executeStatementIgnoreErrors(DROP_ORDER);
-
+
executeStatementIgnoreErrors(DROP_PRODUCT);
+
+ executeStatementIgnoreErrors(DROP_SEQUENCE_TABLE);
}
}
-
-
-