Author: kwilliams
Date: Wed Apr 26 21:23:45 2006
New Revision: 397388

URL: http://svn.apache.org/viewcvs?rev=397388&view=rev
Log:
Adding tests for programmatic Config instance construction.

Added:
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
   (with props)
Modified:
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java?rev=397388&r1=397387&r2=397388&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
 Wed Apr 26 21:23:45 2006
@@ -35,7 +35,7 @@
        public void testSimpleOCC() throws Exception {
                
                //Read a book instance
-               Command select = Command.FACTORY.createCommand("SELECT * FROM 
BOOK WHERE ID = 1");
+               Command select = Command.FACTORY.createCommand("SELECT * FROM 
BOOK WHERE BOOK_ID = 1");
                select.setConnection(getConnection());
                DataObject root = select.executeQuery();
                DataObject book = root.getDataObject("BOOK[1]");
@@ -44,7 +44,7 @@
 
                // Explicitly change OCC column in database to force collision
                Command update = Command.FACTORY
-                               .createCommand("update BOOK set OCC = :OCC 
where ID = 1");
+                               .createCommand("update BOOK set OCC = :OCC 
where BOOK_ID = 1");
                update.setConnection(getConnection());
                update.setParameterValue("OCC", new Integer(100));
                update.execute();

Added: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java?rev=397388&view=auto
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
 (added)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
 Wed Apr 26 21:23:45 2006
@@ -0,0 +1,123 @@
+/**
+ *
+ *  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;
+
+import org.apache.tuscany.das.rdb.ApplyChangesCommand;
+import org.apache.tuscany.das.rdb.Command;
+import org.apache.tuscany.das.rdb.ConfigHelper;
+import org.apache.tuscany.das.rdb.test.data.BookData;
+import org.apache.tuscany.das.rdb.test.data.CustomerData;
+import org.apache.tuscany.das.rdb.test.data.OrderData;
+import org.apache.tuscany.das.rdb.test.framework.DasTest;
+
+import commonj.sdo.DataObject;
+
+/**
+ * Tests the Converter framwork
+ */
+public class ProgrammaticConfigTests extends DasTest {
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        new BookData(getAutoConnection()).refresh();
+        new CustomerData(getAutoConnection()).refresh();
+        new OrderData(getAutoConnection()).refresh();
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    /**
+     * Simple read followed by a write. This should fail since there is no
+     * config associaed with the applychanges command
+     */
+    public void test_1() throws Exception {
+
+        // Read a book instance
+        Command select = Command.FACTORY.createCommand("SELECT * FROM BOOK 
WHERE BOOK_ID = 1");
+        select.setConnection(getConnection());
+        DataObject root = select.executeQuery();
+        DataObject book = root.getDataObject("BOOK[1]");
+        // Change a field to mark the instance 'dirty'
+        book.setInt("QUANTITY", 2);
+
+        // Flush the change
+        ApplyChangesCommand apply = 
Command.FACTORY.createApplyChangesCommand();
+        apply.setConnection(getConnection());
+
+        try {
+            apply.execute(root);
+            fail("An exception should be thrown since here is no config to 
identify the primary key");
+        } catch (RuntimeException ex) {
+            // Expected
+        }
+    }
+
+    /**
+     * Simple read followed by a write. Config instance is generated
+     * programmatically using the ConfigHelper.
+     */
+    public void test_2() throws Exception {
+
+        // Read a book instance
+        Command select = Command.FACTORY.createCommand("SELECT * FROM BOOK 
WHERE BOOK_ID = 1");
+        select.setConnection(getConnection());
+        DataObject root = select.executeQuery();
+        DataObject book = root.getDataObject("BOOK[1]");
+        // Change a field to mark the instance 'dirty'
+        book.setInt("QUANTITY", 2);
+
+        // Flush the change
+        // Create config programmatically
+        ConfigHelper helper = new ConfigHelper();
+        helper.addPrimaryKey("BOOK.BOOK_ID");
+
+        ApplyChangesCommand apply = 
Command.FACTORY.createApplyChangesCommand(helper.getConfig());
+        apply.setConnection(getConnection());
+
+        apply.execute(root);
+
+        // Verify
+        root = select.executeQuery();
+        book = root.getDataObject("BOOK[1]");
+        assertEquals(2, book.getInt("QUANTITY"));
+    }
+    
+    
+    /**
+     * Test ability to read a compound graph
+     */
+    public void test_3() throws Exception {
+
+        String statement = "SELECT * FROM CUSTOMER LEFT JOIN ANORDER ON 
CUSTOMER.ID = ANORDER.CUSTOMER_ID WHERE CUSTOMER.ID = 1";
+
+        // Read some customers and related orders
+        // Create relationship config programmatically
+        ConfigHelper helper = new ConfigHelper();
+        helper.addRelationship("CUSTOMER.ID", "ANORDER.CUSTOMER_ID");
+        
+        Command select = Command.FACTORY.createCommand(statement, 
helper.getConfig());
+        select.setConnection(getConnection());
+
+        DataObject root = select.executeQuery();
+        DataObject customer = root.getDataObject("CUSTOMER[1]");
+
+        assertEquals(2, customer.getList("ANORDER").size());
+
+    }
+}

Propchange: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ProgrammaticConfigTests.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java?rev=397388&r1=397387&r2=397388&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BookData.java
 Wed Apr 26 21:23:45 2006
@@ -32,7 +32,7 @@
                        { new Integer(1), "The Brothers Karamazov", "Fyodor 
Dostoevsky", new Integer(5), new Integer(17) },
                        { new Integer(2), "Cat in the Hat", "Doctor Seuss", new 
Integer(10), new Integer(1) }};
 
-       private static String[] bookColumns = { "ID", "NAME", "AUTHOR", 
"QUANTITY", "OCC"};
+       private static String[] bookColumns = { "BOOK_ID", "NAME", "AUTHOR", 
"QUANTITY", "OCC"};
        
        public BookData(Connection connection) {
                super(connection, bookData, bookColumns, bookTypes);

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java?rev=397388&r1=397387&r2=397388&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
 Wed Apr 26 21:23:45 2006
@@ -210,7 +210,7 @@
     }
 
     protected String getCreateBook() {
-        return "CREATE TABLE BOOK (ID INT PRIMARY KEY NOT NULL, NAME 
VARCHAR(50), AUTHOR VARCHAR(30), QUANTITY INT, OCC INTEGER)";
+        return "CREATE TABLE BOOK (BOOK_ID INT PRIMARY KEY NOT NULL, NAME 
VARCHAR(50), AUTHOR VARCHAR(30), QUANTITY INT, OCC INTEGER)";
     }
 
     protected String getCreatePart() {

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java?rev=397388&r1=397387&r2=397388&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/suites/AllCommonTests.java
 Wed Apr 26 21:23:45 2006
@@ -34,6 +34,7 @@
 import org.apache.tuscany.das.rdb.test.Paging;
 import org.apache.tuscany.das.rdb.test.PartialUpdateTests;
 import org.apache.tuscany.das.rdb.test.PassiveConnectionTests;
+import org.apache.tuscany.das.rdb.test.ProgrammaticConfigTests;
 import org.apache.tuscany.das.rdb.test.RecursiveTests;
 import org.apache.tuscany.das.rdb.test.RelationshipTests;
 import org.apache.tuscany.das.rdb.test.ResultSetShapeTests;
@@ -88,7 +89,8 @@
         suite.addTest(new TestSuite (CorrectedDefectTests.class));
         suite.addTest(new TestSuite (OneToOneRelationshipTests.class));
        
-        
+        suite.addTest(new TestSuite (ProgrammaticConfigTests.class));
+       
                //$JUnit-END$
                return suite;
        }


Reply via email to