summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java')
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java256
1 files changed, 256 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java
new file mode 100644
index 0000000000..44979cee4a
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/SimplestCrud.java
@@ -0,0 +1,256 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * 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.
+ */
+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.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
+ Command readCustomers = Command.FACTORY.createCommand("select * from CUSTOMER where ID = 1");
+ readCustomers.setConnection(getConnection());
+
+ //Read
+ DataObject root = readCustomers.executeQuery();
+
+ //Verify
+ assertEquals(1, root.getInt("CUSTOMER[1]/ID"));
+ }
+
+ /**
+ * Read a specific customer
+ */
+ public void testReadSingle2() throws Exception {
+
+ //Create and initialize command to read customers
+ Command readCustomers = Command.FACTORY.createCommand("select * from CUSTOMER where ID = 1");
+ readCustomers.setConnection(getConnection());
+
+ //Read
+ DataObject root = readCustomers.executeQuery();
+
+ DataObject cust = root.getDataObject("CUSTOMER[1]");
+
+ int n = (cust.getType().getProperties()).size();
+ for (int i=0; i<n; i++) {
+ System.out.println(cust.get(i));
+ }
+
+
+ //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 {
+
+ //Create and initialize command to read customers
+ Command readCustomers = Command.FACTORY.createCommand(" select * from CUSTOMER where ID = 1");
+ readCustomers.setConnection(getConnection());
+
+ //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 {
+
+ //Create and initialize command to read customers
+ Command readCustomers = Command.FACTORY.createCommand("select * from CUSTOMER where LASTNAME = 'Williams'");
+ readCustomers.setConnection(getConnection());
+
+ //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 {
+
+ //Create and initialize command to read customers
+ Command readCustomers = Command.FACTORY.createCommand("select * from CUSTOMER where LASTNAME = :LASTNAME");
+ readCustomers.setConnection(getConnection());
+
+ //Parameterize the command
+ readCustomers.setParameterValue("LASTNAME", "Williams");
+ DataObject root = readCustomers.executeQuery();
+
+ //Verify
+ assertEquals(4, root.getList("CUSTOMER").size());
+ }
+
+ public void testInsert() throws Exception {
+
+ Command insert = Command.FACTORY.createCommand("insert into CUSTOMER values (10, 'Williams', '5528 Wells Fargo Dr')");
+ insert.setConnection(getConnection());
+ insert.execute();
+
+ //Verify
+ Command select = Command.FACTORY.createCommand("Select * from CUSTOMER where ID = 10");
+ select.setConnection(getConnection());
+ 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 {
+
+ Command insert = Command.FACTORY.createCommand("insert into CUSTOMER values (:ID, :LASTNAME, :ADDRESS)");
+ insert.setConnection(getConnection());
+ insert.setParameterValue("ID", new Integer(10));
+ insert.setParameterValue("LASTNAME", "Williams");
+ insert.setParameterValue("ADDRESS", "5528 Wells Fargo Dr");
+ insert.execute();
+
+ //Verify
+ Command select = Command.FACTORY.createCommand("Select * from CUSTOMER where ID = 10");
+ select.setConnection(getConnection());
+ 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 {
+
+ //Verify pre-condition
+ Command select = Command.FACTORY.createCommand("Select * from CUSTOMER where ID = 1");
+ select.setConnection(getConnection());
+ DataObject root = select.executeQuery();
+ assertEquals(1, root.getList("CUSTOMER").size());
+
+ //Create and execute the delete command
+ Command delete = Command.FACTORY.createCommand("delete from CUSTOMER where ID = 1");
+ delete.setConnection(getConnection());
+ delete.execute();
+
+ //Verify delete by reusing the original select command
+ root = select.executeQuery();
+ assertEquals(0, root.getList("CUSTOMER").size());
+
+ }
+
+
+ public void testUpdate() throws Exception {
+
+ //Verify pre-condition
+ Command select = Command.FACTORY.createCommand("Select * from CUSTOMER where ID = 1");
+ select.setConnection(getConnection());
+ DataObject root = select.executeQuery();
+ assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick"));
+
+ Command update = Command.FACTORY.createCommand("update CUSTOMER set LASTNAME = 'Pavick' where ID = 1");
+ update.setConnection(getConnection());
+ update.execute();
+
+ //Verify update - reuse select command
+ root = select.executeQuery();
+ assertEquals("Pavick", root.get("CUSTOMER[1]/LASTNAME"));
+
+ }
+
+ public void testUpdateWithParameters() throws Exception {
+
+ //Verify pre-condition
+ Command select = Command.FACTORY.createCommand("Select * from CUSTOMER where ID = 1");
+ select.setConnection(getConnection());
+ DataObject root = select.executeQuery();
+ assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick"));
+
+ Command update = Command.FACTORY.createCommand("update CUSTOMER set LASTNAME = :LASTNAME where ID = :ID");
+ update.setConnection(getConnection());
+ update.setParameterValue("LASTNAME", "Pavick");
+ update.setParameterValue("ID", new Integer(1));
+ update.execute();
+
+ //Verify update - reuse select command
+ root = select.executeQuery();
+ assertEquals("Pavick", root.get("CUSTOMER[1]/LASTNAME"));
+
+ }
+
+ public void testUpdateWithParmarkers() throws Exception {
+
+ //Verify pre-condition
+ Command select = Command.FACTORY.createCommand("Select * from CUSTOMER where ID = 1");
+ select.setConnection(getConnection());
+ DataObject root = select.executeQuery();
+ assertFalse(root.get("CUSTOMER[1]/LASTNAME").equals("Pavick"));
+
+ Command update = Command.FACTORY.createCommand("update CUSTOMER set LASTNAME = ? where ID = ?");
+ update.setConnection(getConnection());
+ update.setParameterValue(1, "Pavick");
+ update.setParameterValue(2, new Integer(1));
+ update.execute();
+
+ //Verify update - reuse select command
+ root = select.executeQuery();
+ assertEquals("Pavick", root.get("CUSTOMER[1]/LASTNAME"));
+
+ }
+
+} \ No newline at end of file