diff options
Diffstat (limited to 'das-java/tags/1.0-incubating-beta1-rc3/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java')
-rw-r--r-- | das-java/tags/1.0-incubating-beta1-rc3/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java | 313 |
1 files changed, 0 insertions, 313 deletions
diff --git a/das-java/tags/1.0-incubating-beta1-rc3/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java b/das-java/tags/1.0-incubating-beta1-rc3/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java deleted file mode 100644 index a7d483da38..0000000000 --- a/das-java/tags/1.0-incubating-beta1-rc3/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java +++ /dev/null @@ -1,313 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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. - */ -package org.apache.tuscany.das.rdb.test; - -/* - * Generated IDs - * - * - */ - -import java.util.Iterator; - -import org.apache.tuscany.das.rdb.Command; -import org.apache.tuscany.das.rdb.DAS; -import org.apache.tuscany.das.rdb.test.data.CompanyData; -import org.apache.tuscany.das.rdb.test.data.DepartmentData; -import org.apache.tuscany.das.rdb.test.framework.DasTest; - -import commonj.sdo.DataObject; - -public class GeneratedId extends DasTest { - - protected void setUp() throws Exception { - super.setUp(); - - new CompanyData(getAutoConnection()).refresh(); - new DepartmentData(getAutoConnection()).refresh(); - - } - - protected void tearDown() throws Exception { - super.tearDown(); - } - - // Test insert into row with generated ID - public void testInsert() throws Exception { - - DAS das = DAS.FACTORY.createDAS(getConnection()); - Command insert = das.createCommand("insert into COMPANY (NAME) values (?)"); - insert.setParameter(1, "AAA Rental"); - insert.execute(); - - // Verify insert - // Verify - Command select = das.createCommand("Select ID, NAME from COMPANY"); - DataObject root = select.executeQuery(); - - assertEquals(4, root.getList("COMPANY").size()); - assertTrue(root.getInt("COMPANY[1]/ID") > 0); - - } - - // Test back to back insertions with the same command - public void testInsert2() throws Exception { - - DAS das = DAS.FACTORY.createDAS(getConnection()); - Command insert = das.createCommand("insert into COMPANY (NAME) values (?)"); - insert.setParameter(1, "AAA Rental"); - insert.execute(); - - // insert another using same command - insert.setParameter(1, "BBB Rental"); - insert.execute(); - - // Verify insert - // Verify - Command select = das.createCommand("Select ID, NAME from COMPANY"); - DataObject root = select.executeQuery(); - - assertEquals(5, root.getList("COMPANY").size()); - - } - - // Test ability to retrieve and utilize the generated key - public void testInsert3() throws Exception { - DAS das = DAS.FACTORY.createDAS(getConnection()); - Command insert = das.createCommand("insert into COMPANY (NAME) values (?)"); - insert.setParameter(1, "AAA Rental"); - insert.execute(); - // Integer key = (Integer) insert.getParameterValue("generated_key"); - Integer key = (Integer) insert.getGeneratedKey(); - - // Verify insert - Command select = das.createCommand("Select ID, NAME from COMPANY where ID = ?"); - select.setParameter(1, key); - DataObject root = select.executeQuery(); - assertEquals(key, root.get("COMPANY[1]/ID")); - - } - - // Test insert into row with generated ID and generated insert - public void testInsert4() throws Exception { - - DAS das = DAS.FACTORY.createDAS(getConfig("CompanyConfig.xml"), getConnection()); - Command select = das.getCommand("all companies"); - DataObject root = select.executeQuery(); - - DataObject company = root.createDataObject("COMPANY"); - company.setString("NAME", "Phil's Tires"); - // This shouldn't do anything - company.setInt("ID", 999); - - das.applyChanges(root); - - // Verify insert - root = select.executeQuery(); - - assertEquals(4, root.getList("COMPANY").size()); - Iterator i = root.getList("COMPANY").iterator(); - while (i.hasNext()) { - DataObject comp = (DataObject) i.next(); - assertFalse(comp.getInt("ID") == 999); - } - - } - - /** - * Test insert into row with generated ID and no attributes set - */ - public void testInsert5() throws Exception { - - DAS das = DAS.FACTORY.createDAS(getConfig("CompanyConfig.xml"), getConnection()); - Command select = das.getCommand("all companies"); - DataObject root = select.executeQuery(); - - root.createDataObject("COMPANY"); - - das.applyChanges(root); - - // Verify insert - root = select.executeQuery(); - assertEquals(4, root.getList("COMPANY").size()); - - } - - - // Test ability to propogate generated values back to owning data objects - public void testPropagateIds() throws Exception { - - DAS das = DAS.FACTORY.createDAS(getConfig("CompanyConfig.xml"), getConnection()); - Command select = das.getCommand("all companies"); - DataObject root = select.executeQuery(); - - // Create a new Company - DataObject company = root.createDataObject("COMPANY"); - company.setString("NAME", "Do-rite Pest Control"); - - // verify pre-condition (id is not there until after flush) - assertNull(company.get("ID")); - - // Flush changes - das.applyChanges(root); - - // Save the id - Integer id = (Integer) company.get("ID"); - - // Verify the change - select = das.createCommand("Select * from COMPANY where ID = ?"); - select.setParameter(1, id); - root = select.executeQuery(); - assertEquals("Do-rite Pest Control", root.getDataObject("COMPANY[1]").getString("NAME")); - - } - - /** - * Same as above but metadata provided by XML config file - */ - public void testPropagateIdsXML() throws Exception { - DAS das = DAS.FACTORY.createDAS(getConfig("basicCompanyMapping.xml"), getConnection()); - Command select = das.createCommand("Select * from COMPANY"); - DataObject root = select.executeQuery(); - - // Create a new Company - DataObject company = root.createDataObject("COMPANY"); - company.setString("NAME", "Do-rite Pest Control"); - - // verify pre-condition (id is not there until after flush) - assertNull(company.get("ID")); - - // Flush changes - das.applyChanges(root); - - // Save the id - Integer id = (Integer) company.get("ID"); - - // Verify the change - select = das.createCommand("Select * from COMPANY where ID = ?"); - select.setParameter(1, id); - root = select.executeQuery(); - assertEquals("Do-rite Pest Control", root.getDataObject("COMPANY[1]").getString("NAME")); - - } - - /** - * Test ability to correctly flush heirarchy of objects that have generated - * keys - */ - public void testFlushCreateHeirarchy() throws Exception { - - DAS das = DAS.FACTORY.createDAS(getConfig("basicCompanyDepartmentMapping.xml"), getConnection()); - String selectCompanys = "SELECT * FROM COMPANY LEFT JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.COMPANYID"; - - Command select = das.createCommand(selectCompanys); - DataObject root = select.executeQuery(); - - // Create a new Company - DataObject company = root.createDataObject("COMPANY"); - company.setString("NAME", "Do-rite Pest Control"); - - // Create a new Department - // Do not set ID or CompanyID since these are generated - // ID INT, NAME VARCHAR(30), LOCATION VARCHAR(30), NUMBER VARCHAR(10), - // COMPANYID INT, EOTM INT - DataObject department = root.createDataObject("DEPARTMENT"); - department.setString("NAME", "Do-rite Pest Control"); - department.setString("LOCATION", "The boonies"); - department.setString("DEPNUMBER", "101"); - - // Associate the new department with the new company - company.getList("departments").add(department); - - das.applyChanges(root); - - // Save the id - Integer id = (Integer) company.get("ID"); - - // Verify the change - String selectString = "SELECT * FROM COMPANY LEFT JOIN DEPARTMENT " - + "ON COMPANY.ID = DEPARTMENT.COMPANYID WHERE COMPANY.ID = ?"; - - select = das.createCommand(selectString); - select.setParameter(1, id); - root = select.executeQuery(); - assertEquals("Do-rite Pest Control", root.getDataObject("COMPANY[1]").getString("NAME")); - - } - - /** - * Test ability to correctly flush heirarchy of objects that have generated - * keys even when a created object has legal but NULL property values - */ - public void testFlushCreateHeirarchy2() throws Exception { - - String selectCompanys = "SELECT * FROM COMPANY LEFT JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.COMPANYID"; - - DAS das = DAS.FACTORY.createDAS(getConfig("basicCompanyDepartmentMapping.xml"), getConnection()); - Command select = das.createCommand(selectCompanys); - DataObject root = select.executeQuery(); - - // Create a new Company - DataObject company = root.createDataObject("COMPANY"); - company.setString("NAME", "Do-rite Pest Control"); - - // Create a new Department - // Do not set ID or CompanyID since these are generated - // ID INT, NAME VARCHAR(30), LOCATION VARCHAR(30), NUMBER VARCHAR(10), - // COMPANYID INT, EOTM INT - DataObject department = root.createDataObject("DEPARTMENT"); - department.setString("NAME", "Do-rite Pest Control"); - // Do not set this property to force storing NULL to DB - // department.setString("LOCATION", "The boonies"); - department.setString("DEPNUMBER", "101"); - - // Associate the new department with the new company - company.getList("departments").add(department); - - das.applyChanges(root); - - // Save the id - Integer id = (Integer) company.get("ID"); - - // Verify the change - String selectString = "SELECT * FROM COMPANY LEFT JOIN DEPARTMENT " - + "ON COMPANY.ID = DEPARTMENT.COMPANYID WHERE COMPANY.ID = ?"; - - select = das.createCommand(selectString); - select.setParameter(1, id); - root = select.executeQuery(); - assertEquals("Do-rite Pest Control", root.getDataObject("COMPANY[1]").getString("NAME")); - - } - - // Test that error is thrown when no key has been generated (as in a select) - public void testRead() throws Exception { - DAS das = DAS.FACTORY.createDAS(getConnection()); - Command select = das.createCommand("Select * from COMPANY"); - select.executeQuery(); - - try { - select.getGeneratedKey(); - fail("Should throw exception"); - } catch (RuntimeException e) { - assertEquals("This method is only valid for insert commands", e.getMessage()); - } - } - -}
\ No newline at end of file |