diff options
Diffstat (limited to 'das-java/tags/1.0-incubating-beta1-rc4/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java')
-rw-r--r-- | das-java/tags/1.0-incubating-beta1-rc4/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/das-java/tags/1.0-incubating-beta1-rc4/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java b/das-java/tags/1.0-incubating-beta1-rc4/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java new file mode 100644 index 0000000000..32c60a2760 --- /dev/null +++ b/das-java/tags/1.0-incubating-beta1-rc4/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java @@ -0,0 +1,228 @@ +/* + * 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; + +/* + * These are the simplest possible uses of the JDBC DAS. In this mode, the programming model is not much more than JDBC + * + * The assumptions for these tests are: + * + * Single type Client explicitly Read/Create/Update/Delete commands + * No O/R mapping metadata SDO change history is not used Dynamic DataObjects No + * specified graph model + * + * + */ + +import org.apache.tuscany.das.rdb.Command; +import org.apache.tuscany.das.rdb.DAS; +import org.apache.tuscany.das.rdb.test.data.CustomerData; +import org.apache.tuscany.das.rdb.test.framework.DasTest; + +import commonj.sdo.DataObject; + +public class SimplestCrud extends DasTest { + + protected void setUp() throws Exception { + super.setUp(); + new CustomerData(getAutoConnection()).refresh(); + } + + protected void tearDown() throws Exception { + super.tearDown(); + } + + /** + * Read a specific customer + */ + public void testReadSingle() throws Exception { + + // Create and initialize command to read customers + DAS das = DAS.FACTORY.createDAS(getConnection()); + Command readCustomers = das.createCommand("select * from CUSTOMER where ID = 1"); + + // Read + DataObject root = readCustomers.executeQuery(); + + // Verify + assertEquals(1, root.getInt("CUSTOMER[1]/ID")); + } + + /** + * Read a specific customer + */ + public void testReadSingle2() throws Exception { + + DAS das = DAS.FACTORY.createDAS(getConnection()); + // Create and initialize command to read customers + Command readCustomers = das.createCommand("select * from CUSTOMER where ID = 1"); + + // Read + DataObject root = readCustomers.executeQuery(); + + // Verify + assertEquals(1, root.getInt("CUSTOMER[1]/ID")); + } + + /** + * Read a specific customer Same as above but tests tolerance of white space in provided SQL + */ + public void testReadSingleWithWhiteSpace() throws Exception { + DAS das = DAS.FACTORY.createDAS(getConnection()); + // Create and initialize command to read customers + Command readCustomers = das.createCommand(" select * from CUSTOMER where ID = 1"); + + // Read + DataObject root = readCustomers.executeQuery(); + + // Verify + assertEquals(1, root.getInt("CUSTOMER[1]/ID")); + } + + /** + * Read all customers with a specific last name + */ + public void testReadMultiple() throws Exception { + + DAS das = DAS.FACTORY.createDAS(getConnection()); + // Create and initialize command to read customers + Command readCustomers = das.createCommand("select * from CUSTOMER where LASTNAME = 'Williams'"); + + // Read + DataObject root = readCustomers.executeQuery(); + + // Verify + assertEquals(4, root.getList("CUSTOMER").size()); + } + + /** + * Read all customers with a specific last name LASTNAME value is provided via a parameter + */ + public void testReadMultipleWithParameters() throws Exception { + DAS das = DAS.FACTORY.createDAS(getConnection()); + // Create and initialize command to read customers + Command readCustomers = das.createCommand("select * from CUSTOMER where LASTNAME = ?"); + + // Parameterize the command + readCustomers.setParameter(1, "Williams"); + DataObject root = readCustomers.executeQuery(); + + // Verify + assertEquals(4, root.getList("CUSTOMER").size()); + } + + public void testInsert() throws Exception { + DAS das = DAS.FACTORY.createDAS(getConnection()); + Command insert = das.createCommand("insert into CUSTOMER values (10, 'Williams', '5528 Wells Fargo Dr')"); + insert.execute(); + + // Verify + Command select = das.createCommand("Select * from CUSTOMER where ID = 10"); + DataObject root = select.executeQuery(); + assertEquals(1, root.getList("CUSTOMER").size()); + assertEquals("5528 Wells Fargo Dr", root.get("CUSTOMER[1]/ADDRESS")); + + } + + public void testInsertWithParameters() throws Exception { + DAS das = DAS.FACTORY.createDAS(getConnection()); + Command insert = das.createCommand("insert into CUSTOMER values (?, ?, ?)"); + insert.setParameter(1, Integer.valueOf(10)); + insert.setParameter(2, "Williams"); + insert.setParameter(3, "5528 Wells Fargo Dr"); + insert.execute(); + + // Verify + Command select = das.createCommand("Select * from CUSTOMER where ID = 10"); + DataObject root = select.executeQuery(); + assertEquals(1, root.getList("CUSTOMER").size()); + assertEquals("5528 Wells Fargo Dr", root.get("CUSTOMER[1]/ADDRESS")); + + } + + public void testDelete() throws Exception { + DAS das = DAS.FACTORY.createDAS(getConnection()); + // Verify pre-condition + Command select = das.createCommand("Select * from CUSTOMER where ID = 1"); + DataObject root = select.executeQuery(); + assertEquals(1, root.getList("CUSTOMER").size()); + + // Create and execute the delete command + Command delete = das.createCommand("delete from CUSTOMER where ID = 1"); + delete.execute(); + + // Verify delete by reusing the original select command + root = select.executeQuery(); + assertEquals(0, root.getList("CUSTOMER").size()); + + } + + public void testUpdate() throws Exception { + DAS das = DAS.FACTORY.createDAS(getConnection()); + // Verify pre-condition + Command select = das.createCommand("Select * from CUSTOMER where ID = 1"); + DataObject root = select.executeQuery(); + assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick")); + + Command update = das.createCommand("update CUSTOMER set LASTNAME = 'Pavick' where ID = 1"); + update.execute(); + + // Verify update - reuse select command + root = select.executeQuery(); + assertEquals("Pavick", root.get("CUSTOMER[1]/LASTNAME")); + + } + + public void testUpdateWithParameters() throws Exception { + DAS das = DAS.FACTORY.createDAS(getConnection()); + // Verify pre-condition + Command select = das.createCommand("Select * from CUSTOMER where ID = 1"); + DataObject root = select.executeQuery(); + assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick")); + + Command update = das.createCommand("update CUSTOMER set LASTNAME = ? where ID = ?"); + update.setParameter(1, "Pavick"); + update.setParameter(2, Integer.valueOf(1)); + update.execute(); + + // Verify update - reuse select command + root = select.executeQuery(); + assertEquals("Pavick", root.get("CUSTOMER[1]/LASTNAME")); + + } + + public void testUpdateWithParmarkers() throws Exception { + DAS das = DAS.FACTORY.createDAS(getConnection()); + // Verify pre-condition + Command select = das.createCommand("Select * from CUSTOMER where ID = 1"); + DataObject root = select.executeQuery(); + assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick")); + + Command update = das.createCommand("update CUSTOMER set LASTNAME = ? where ID = ?"); + update.setParameter(1, "Pavick"); + update.setParameter(2, Integer.valueOf(1)); + update.execute(); + + //Verify update - reuse select command + root = select.executeQuery(); + assertEquals("Pavick", root.get("CUSTOMER[1]/LASTNAME")); + + } + +}
\ No newline at end of file |