You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by kw...@apache.org on 2007/01/04 22:35:49 UTC

svn commit: r492758 - /incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java

Author: kwilliams
Date: Thu Jan  4 13:35:48 2007
New Revision: 492758

URL: http://svn.apache.org/viewvc?view=rev&rev=492758
Log:
Added unit test to demonstrate TUSCANY-1027

Modified:
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java?view=diff&rev=492758&r1=492757&r2=492758
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java (original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/DefectTests.java Thu Jan  4 13:35:48 2007
@@ -29,6 +29,7 @@
 
 import org.apache.tuscany.das.rdb.Command;
 import org.apache.tuscany.das.rdb.DAS;
+import org.apache.tuscany.das.rdb.test.data.BookData;
 import org.apache.tuscany.das.rdb.test.data.CompanyData;
 import org.apache.tuscany.das.rdb.test.data.CompanyDeptData;
 import org.apache.tuscany.das.rdb.test.data.CustomerData;
@@ -40,6 +41,10 @@
 
 import commonj.sdo.DataObject;
 
+/**
+ *
+ *
+ */
 public class DefectTests extends DasTest {
 
     protected void setUp() throws Exception {
@@ -52,6 +57,7 @@
         new EmployeeData(getAutoConnection()).refresh();
         new CompanyDeptData(getAutoConnection()).refresh();
         new DepEmpData(getAutoConnection()).refresh();
+        new BookData(getAutoConnection()).refresh();
 
     }
 
@@ -80,27 +86,30 @@
 
     }
 
-    public void testUpdateChildThatHasGeneratedKey() throws Exception {
 
-        DAS das = DAS.FACTORY.createDAS(getConfig("CompanyConfig.xml"));
-
-        //Read a specific company based on the known ID
-        Command readCust = das.getCommand("all companies and departments");
-        DataObject root = readCust.executeQuery();
-        DataObject lastCustomer = root.getDataObject("COMPANY[3]");
-        Iterator i = lastCustomer.getList("departments").iterator();
-        Random generator = new Random();
-        int random = generator.nextInt(1000) + 1;
-        DataObject department;
-        while (i.hasNext()) {
-            department = (DataObject) i.next();
-            System.out.println("Modifying department: " + department.getString("NAME"));
-            department.setString("NAME", "Dept-" + random);
-            random = random + 1;
-        }
+    /**
+     * Test expected failure when applyChanges processes DO with no PK columns.  We
+     * should throw a better error than NPE
+     */
 
-        das.applyChanges(root);
+    public void testReadUpdateWithNoPKColumns() throws Exception {
+        
+        DAS das = DAS.FACTORY.createDAS(getConfig("BooksConfig.xml"),getConnection());
+        // Read a book instance
+        Command select = das.createCommand("SELECT NAME, AUTHOR, QUANTITY, OCC FROM BOOK WHERE BOOK_ID = 1");
+        DataObject root = select.executeQuery();
 
+        DataObject book = root.getDataObject("BOOK[1]");
+        // Change a field to mark the instance 'dirty'
+        book.setInt("QUANTITY", 2);
+
+        try {
+            das.applyChanges(root);
+            fail("An exception should be thrown since the DO has no PK defined");
+        } catch (NullPointerException ex) {
+            fail("We should do better than an NPE");
+        }
     }
+    
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org