Author: kwilliams
Date: Mon Jul 24 20:14:55 2006
New Revision: 425264

URL: http://svn.apache.org/viewvc?rev=425264&view=rev
Log:
Brent's coverage-based cleanup and test additions

Added:
    incubator/tuscany/java/das/rdb/src/test/resources/InvalidConverter.xml   
(with props)
Removed:
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/QueryString.java
Modified:
    incubator/tuscany/java/das/rdb/pom.xml
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteList.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/FactoryRegistry.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertCommandImpl.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ParameterImpl.java
    
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
    
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java
    
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/OperationOrderingTests.java
    incubator/tuscany/java/das/rdb/src/test/resources/BooksConfig.xml

Modified: incubator/tuscany/java/das/rdb/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/pom.xml?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/pom.xml (original)
+++ incubator/tuscany/java/das/rdb/pom.xml Mon Jul 24 20:14:55 2006
@@ -63,8 +63,6 @@
                         <id>config</id>
                         <configuration>
                             
<schemaFile>${basedir}/src/main/resources/config.xsd</schemaFile>
-                            <generateLoader>true</generateLoader>
-                            <generateSwitch>true</generateSwitch>
                             <noNotification>true</noNotification>
                             <noUnsettable>true</noUnsettable>
                         </configuration>
@@ -76,8 +74,6 @@
                         <id>company</id>
                         <configuration>
                             
<schemaFile>${basedir}/src/test/resources/company.xsd</schemaFile>
-                            <generateLoader>true</generateLoader>
-                            <generateSwitch>true</generateSwitch>              
             
                             <noUnsettable>true</noUnsettable>
                         </configuration>
                         <goals>
@@ -88,8 +84,6 @@
                         <id>customer</id>
                         <configuration>
                             
<schemaFile>${basedir}/src/test/resources/customer.xsd</schemaFile>
-                            <generateLoader>true</generateLoader>
-                            <generateSwitch>true</generateSwitch>              
          
                             <noUnsettable>true</noUnsettable>
                         </configuration>
                         <goals>

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/ConfigHelper.java
 Mon Jul 24 20:14:55 2006
@@ -44,9 +44,6 @@
         configWrapper = new MappingWrapper(config);
     }
 
-    public Config newInstance() {
-        return factory.createConfig();
-    }
 
     public void addPrimaryKey(String columnName) {
         configWrapper.addPrimaryKey(columnName);

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/config/wrapper/MappingWrapper.java
 Mon Jul 24 20:14:55 2006
@@ -190,19 +190,6 @@
         return propertyName;
     }
 
-    public void addCollisionColumn(String columnName) {
-
-        if (config == null)
-            config = factory.createConfig();
-
-        QualifiedColumn occColumn = new QualifiedColumn(columnName);
-        Table t = findOrCreateTable(occColumn.getTableName());
-        Column c = findOrCreateColumn(t, occColumn.getColumnName());
-        c.setCollision(true);
-
-        config.getTable().add(t);
-    }
-
     public void addTable(String tableName, String typeName) {
         Table table = getTable(tableName);
         if (table != null)

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/generator/impl/InsertGenerator.java
 Mon Jul 24 20:14:55 2006
@@ -111,7 +111,7 @@
                        } else {
                                if ( obj.isSet(p) ) {
                                        Relationship relationship = 
config.getRelationshipByReference(p);
-                                       if ( p.getOpposite().isMany() || 
(hasState(config, relationship, obj))) {                                        
               
+                                       if ((p.getOpposite() != null && 
p.getOpposite().isMany()) || (hasState(config, relationship, obj))) {           
                                        
                                                RelationshipWrapper r = new 
RelationshipWrapper(
                                                        relationship);
                                                Iterator keys = 
r.getForeignKeys().iterator();

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ApplyChangesCommandImpl.java
 Mon Jul 24 20:14:55 2006
@@ -34,13 +34,6 @@
     private static final boolean debug = false;
 
     private ChangeSummarizer summarizer = new ChangeSummarizer();
-
-    public ApplyChangesCommandImpl() {
-    }
-
-    public ApplyChangesCommandImpl(Config config){
-       this.configWrapper = new MappingWrapper(config);       
-    }
     
     public ApplyChangesCommandImpl(Config config, Connection connection){
         this.configWrapper = new MappingWrapper(config); 
@@ -53,17 +46,6 @@
                summarizer.setConnection(connection);
        }
 
-    public void addCreateCommand(Type type, Command cmd) {
-        summarizer.addCreateCommand(type, cmd);        
-    }
-
-    public void addUpdateCommand(Type type, Command cmd) {      
-        summarizer.addUpdateCommand(type, cmd);        
-    }
-
-    public void addDeleteCommand(Type type, Command cmd) {
-        summarizer.addDeleteCommand(type, cmd);       
-    }
 
     public void execute(DataObject root) {
         DebugUtil.debugln(getClass(), debug, "Executing ApplyChangesCmd");

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ChangeFactory.java
 Mon Jul 24 20:14:55 2006
@@ -28,11 +28,8 @@
 import org.apache.tuscany.das.rdb.util.DebugUtil;
 
 import commonj.sdo.DataObject;
-import commonj.sdo.Type;
 
 public class ChangeFactory {
-
-       private final Type type; 
        
        private InsertCommandImpl createCommand;
 
@@ -46,15 +43,10 @@
 
        private final ConnectionImpl connection; 
        
-       public ChangeFactory(Type type, MappingWrapper mapping, ConnectionImpl 
connection) {
-               this.type = type;
+       public ChangeFactory(MappingWrapper mapping, ConnectionImpl connection) 
{       
                this.mapping = mapping;
                this.connection = connection;
        }
-
-       public Type getType() {
-               return this.type;
-       }
        
        public void setCreateCommand(InsertCommandImpl cmd) {
                createCommand = cmd;
@@ -138,6 +130,7 @@
                                deleteCommand = new DeleteCommandImpl(delete);  
                                        
                        }
                        deleteCommand.setConnection(connection);
+                       deleteCommand.configWrapper = mapping;
                }
                return deleteCommand;
        }

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteList.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteList.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteList.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DeleteList.java
 Mon Jul 24 20:14:55 2006
@@ -21,6 +21,8 @@
 import java.util.HashMap;
 import java.util.Iterator;
 
+import org.apache.tuscany.das.rdb.util.DebugUtil;
+
 /**
  * DeleteList will sort delete operations so that child objects are deleted
  * before their parents
@@ -40,7 +42,7 @@
        }
 
        public void add(ChangeOperation op) {
-               if (( order == null  ) || ( op.getTableName() == null ) ) {
+               if (( order.size() == 0  ) || ( op.getTableName() == null ) ) {
                        deleteOperations.add(op);
                } else {
                        String name = op.getTableName();
@@ -54,11 +56,12 @@
        }
 
        public Collection getSortedList() {
-               if  (( order != null  ) && ( opsByTableName.keySet().size() > 
0) ) {
+               if  (( order.size() > 0  ) && ( opsByTableName.keySet().size() 
> 0) ) {
                        Iterator i = this.order.iterator();
                        while (i.hasNext()) {
                                String name = (String) i.next();
-                               deleteOperations.addAll((Collection) 
opsByTableName.get(name));
+                               if ( opsByTableName.get(name) != null)
+                                       deleteOperations.addAll((Collection) 
opsByTableName.get(name));
                        }
                }
                

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/FactoryRegistry.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/FactoryRegistry.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/FactoryRegistry.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/FactoryRegistry.java
 Mon Jul 24 20:14:55 2006
@@ -39,7 +39,7 @@
                ChangeFactory factory = (ChangeFactory)registry.get(type);
                if ( factory == null )  {
                        DebugUtil.debugln(getClass(), debug, "Creating new 
ChangeFactory for type " + type.getName());
-                       factory = new ChangeFactory(type, mapping, connection);
+                       factory = new ChangeFactory(mapping, connection);
                        registry.put(type, factory);
                }
                return factory;

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertCommandImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertCommandImpl.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertCommandImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/InsertCommandImpl.java
 Mon Jul 24 20:14:55 2006
@@ -35,9 +35,6 @@
                addParameters(create.getParameters());
        }
 
-       protected boolean isInsert() {
-               return true;
-       }
 
        public int getGeneratedKey() {
 
@@ -60,16 +57,5 @@
 
        }
 
-       public String toString() {
-
-               String superString = super.toString();
-               StringBuffer buffer = new StringBuffer(superString);
-
-               buffer.append("\nGenerating key: " + hasGeneratedKey);
-               if (hasGeneratedKey)
-                       buffer.append("\nGenerated key: " + generatedKey);
-
-               return buffer.toString();
-       }
 
 }

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ParameterImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ParameterImpl.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ParameterImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/ParameterImpl.java
 Mon Jul 24 20:14:55 2006
@@ -50,10 +50,6 @@
                super();
        }
 
-       public ParameterImpl(String name) {
-               this.name = name;
-       }
-
        public ParameterImpl(int index) {
                this.index = index;
        }
@@ -113,14 +109,6 @@
                return this.converter;
        }
 
-
-       public String toString() {
-               StringBuffer buffer = new StringBuffer();
-               buffer.append("Index: " + getIndex());
-               buffer.append("\nName: " + getName());
-               buffer.append("\nValue: " + getValue());
-               return buffer.toString();
-       }
        
        
 }

Modified: 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/WriteCommandImpl.java
 Mon Jul 24 20:14:55 2006
@@ -17,8 +17,6 @@
 package org.apache.tuscany.das.rdb.impl;
 
 import java.sql.SQLException;
-import java.util.Collection;
-import java.util.Iterator;
 import java.util.StringTokenizer;
 
 import org.apache.tuscany.das.rdb.config.Config;
@@ -89,13 +87,7 @@
                        addParameter(p);
                }
        }
-       public void addParameters(Collection updateParameters) {
-               Iterator i = updateParameters.iterator();
-               while ( i.hasNext()) {
-                       ParameterImpl p = (ParameterImpl) i.next();
-                       addParameter(p);
-               }
-       }
+       
 
 
 }

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CompoundKeyTests.java
 Mon Jul 24 20:14:55 2006
@@ -92,4 +92,21 @@
         assertEquals(2, firstOrder.getList("ORDERDETAILS").size());
 
     }
+    
+    public void testReadAndDelete() throws Exception {
+       DAS das = 
DAS.FACTORY.createDAS(getConfig("OrdersOrderDetailsConfig.xml"), 
getConnection());
+        Command getOrderDetails = das
+                .createCommand("Select * from ORDERDETAILS where ORDERID = ? 
AND PRODUCTID = ?");
+       
+
+        getOrderDetails.setParameter(1, new Integer(1));
+        getOrderDetails.setParameter(2, new Integer(1));
+
+        DataObject root = getOrderDetails.executeQuery();
+
+        DataObject orderDetail = (DataObject) root.get("ORDERDETAILS[1]");
+        orderDetail.delete();
+        das.applyChanges(root);      
+
+    }
 }

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ConverterTests.java
 Mon Jul 24 20:14:55 2006
@@ -23,8 +23,11 @@
 
 import org.apache.tuscany.das.rdb.Command;
 import org.apache.tuscany.das.rdb.DAS;
+import org.apache.tuscany.das.rdb.test.customer.Customer;
+import org.apache.tuscany.das.rdb.test.customer.CustomerFactory;
 import org.apache.tuscany.das.rdb.test.data.CustomerData;
 import org.apache.tuscany.das.rdb.test.framework.DasTest;
+import org.apache.tuscany.sdo.util.SDOUtil;
 
 import commonj.sdo.DataObject;
 
@@ -97,6 +100,61 @@
                //Verify 
                assertEquals(tbday, root.getDate("CUSTOMER[1]/LASTNAME"));
                
+       }
+       
+       public void testInvalidConverter1() throws Exception {
+
+               DAS das = 
DAS.FACTORY.createDAS(getConfig("InvalidConverter.xml"), getConnection());
+               
+               // Build the select command to read a specific customer and 
related
+               // orders
+               Command select = das
+                               .createCommand(
+                                               "SELECT * FROM CUSTOMER LEFT 
JOIN ANORDER ON CUSTOMER.ID = ANORDER.CUSTOMER_ID where CUSTOMER.ID = ?");
+
+               // Parameterize the command     
+               select.setParameter(1, new Integer(1));
+
+               // Get the graph
+               try {
+                       select.executeQuery();
+               } catch (Exception ex) {
+                       assertEquals("java.lang.ClassNotFoundException: 
not.a.valid.class", ex.getMessage());
+               }
+
+       
+       }
+       
+       public void testInvalidConverter2() throws Exception {
+
+               SDOUtil.registerStaticTypes(CustomerFactory.class);
+               DAS das = 
DAS.FACTORY.createDAS(getConfig("InvalidConverter.xml"), getConnection());
+               
+               // Build the select command to read a specific customer and 
related
+               // orders
+               Command select = das
+                               .createCommand(
+                                               "SELECT * FROM ANORDER");       
+
+               // Get the graph
+               
+               DataObject root = select.executeQuery();
+               DataObject order = root.getDataObject("AnOrder[1]");
+               
+               Customer customer = (Customer) 
root.createDataObject("Customer");
+               customer.setID(700);
+               customer.setLastName("Daniel");
+               customer.setAddress("an address");              
+               
+               customer.getOrders().add(order);        
+               
+               try {
+                       das.applyChanges(root);
+               } catch (Exception ex) {
+                       assertEquals("java.lang.ClassNotFoundException: 
not.a.valid.class", ex.getMessage());
+               }
+
+       
        }
        
 }

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/CrudWithChangeHistory.java
 Mon Jul 24 20:14:55 2006
@@ -48,6 +48,41 @@
         super.tearDown();
     }
 
+    public void testDeleteAndCreate() throws Exception {
+               DAS das = DAS.FACTORY.createDAS(
+                               getConfig("basicCustomerMappingWithCUD2.xml"), 
getConnection());
+               // Read customer 1
+               Command select = das
+                               .createCommand("Select * from CUSTOMER");
+               DataObject root = select.executeQuery();
+
+               DataObject customer = (DataObject) root.get("CUSTOMER[1]");
+
+               int customerId = customer.getInt("ID");
+               // Modify customer
+               customer.delete();
+
+               DataObject newCustomer = root.createDataObject("CUSTOMER");
+               newCustomer.setInt("ID", 9999);
+               newCustomer.setString("LASTNAME", "Jones");
+               
+               // Build apply changes command
+               das.applyChanges(root);
+
+               // Verify changes
+               root = select.executeQuery();
+               boolean found = false;
+               Iterator i = root.getList("CUSTOMER").iterator();
+               while ( i.hasNext()) {
+                       customer = (DataObject)i.next();
+                       assertFalse(customerId == customer.getInt("ID"));
+                       if ( customer.getInt("ID") == 9999 )
+                               found = true;
+               }
+               
+               assertTrue(found);
+
+       }
     /**
      * Read and modify a customer. Provide needed Create/Update/Delete
      * statements programatically

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/ExceptionTests.java
 Mon Jul 24 20:14:55 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.tuscany.das.rdb.test;
 
+import java.io.FileInputStream;
 import java.sql.Connection;
 
 import org.apache.tuscany.das.rdb.Command;
@@ -26,6 +27,7 @@
 import org.apache.tuscany.das.rdb.test.data.OrderData;
 import org.apache.tuscany.das.rdb.test.data.OrderDetailsData;
 import org.apache.tuscany.das.rdb.test.framework.DasTest;
+import org.apache.tuscany.das.rdb.util.ConfigUtil;
 import org.apache.tuscany.sdo.util.SDOUtil;
 
 public class ExceptionTests extends DasTest {
@@ -133,5 +135,6 @@
 
     }
   
+   
     
 }

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/GeneratedId.java
 Mon Jul 24 20:14:55 2006
@@ -22,6 +22,8 @@
  * 
  */
 
+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;
@@ -100,6 +102,31 @@
 
     }
 
+    // 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 ability to propogate generated values back to owning data objects
     public void testPropagateIds() throws Exception {
         

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OCCTests.java?rev=425264&r1=425263&r2=425264&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
 Mon Jul 24 20:14:55 2006
@@ -17,7 +17,10 @@
 package org.apache.tuscany.das.rdb.test;
 
 import org.apache.tuscany.das.rdb.Command;
+import org.apache.tuscany.das.rdb.ConfigHelper;
 import org.apache.tuscany.das.rdb.DAS;
+import org.apache.tuscany.das.rdb.config.Config;
+import org.apache.tuscany.das.rdb.config.ConfigFactory;
 import org.apache.tuscany.das.rdb.test.data.BookData;
 import org.apache.tuscany.das.rdb.test.framework.DasTest;
 
@@ -98,5 +101,30 @@
                        if ( !ex.getMessage().equals("OCC Exception") )
                                throw ex;
                }
+       }
+       
+       public void testProvidedConfig() throws Exception {
+               // Create config programmatically
+               Config config = ConfigFactory.INSTANCE.createConfig();
+               ConfigHelper helper = new ConfigHelper(config);
+               helper.addPrimaryKey("BOOK.BOOK_ID");
+               DAS das = DAS.FACTORY.createDAS(helper.getConfig(), 
getConnection());
+
+               // Read a book instance
+               Command select = das
+                               .createCommand("SELECT * 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);
+
+               // Flush the change
+
+               das.applyChanges(root);
+
+               // Verify
+               root = select.executeQuery();
+               book = root.getDataObject("BOOK[1]");
+               assertEquals(2, book.getInt("QUANTITY"));
        }
 }

Modified: 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java
 (original)
+++ 
incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/OperationOrderingTests.java
 Mon Jul 24 20:14:55 2006
@@ -16,6 +16,9 @@
  */
 package org.apache.tuscany.das.rdb.test;
 
+import java.util.ArrayList;
+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.CityData;
@@ -75,4 +78,44 @@
                assertEquals(numberOfStates + 1, root.getList("STATES").size());
        }
 
+       public void testDeletes() throws Exception {
+               DAS das = DAS.FACTORY.createDAS(getConfig("cityStates.xml"), 
getConnection());
+               Command select = das
+                               .createCommand(
+                                               "Select * from STATES inner 
join CITIES on STATES.ID = CITIES.STATE_ID");               
+               DataObject root = select.executeQuery();
+
+               
+               DataObject firstState = root.getDataObject("STATES[1]");
+               String stateName = firstState.getString("NAME");
+               
+               ArrayList cityNames = new ArrayList();
+               Iterator i = firstState.getList("cities").iterator();
+               while ( i.hasNext()) {
+                       DataObject firstCity = (DataObject) i.next();
+                       cityNames.add(firstCity.getString("NAME"));             
        
+                       firstCity.delete();                                     
+               }
+               firstState.delete();
+       
+               
+               
+               
+               das.applyChanges(root);
+       
+               root = select.executeQuery();
+               
+               Iterator iter = root.getList("STATES").iterator();
+               while ( iter.hasNext()) {
+                       DataObject state = (DataObject)iter.next();
+                       assertFalse(state.getString("NAME").equals(stateName));
+               }
+               
+               iter = root.getList("CITIES").iterator();
+               while ( iter.hasNext()) {
+                       DataObject city = (DataObject)iter.next();
+                       assertFalse(cityNames.contains(city.getString("NAME")));
+               }
+               
+       }
 }

Modified: incubator/tuscany/java/das/rdb/src/test/resources/BooksConfig.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/BooksConfig.xml?rev=425264&r1=425263&r2=425264&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/BooksConfig.xml (original)
+++ incubator/tuscany/java/das/rdb/src/test/resources/BooksConfig.xml Mon Jul 
24 20:14:55 2006
@@ -21,7 +21,7 @@
 
        <Table tableName="BOOK">
         <Column columnName="BOOK_ID" primaryKey="true"/>
-           <Column columnName="OCC" collision="true"/>
+           <Column columnName="OCC" collision="true" 
propertyName="anOccColumn"/>
     </Table>
     
 </Config>

Added: incubator/tuscany/java/das/rdb/src/test/resources/InvalidConverter.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/InvalidConverter.xml?rev=425264&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/InvalidConverter.xml 
(added)
+++ incubator/tuscany/java/das/rdb/src/test/resources/InvalidConverter.xml Mon 
Jul 24 20:14:55 2006
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+  Copyright (c) 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.
+ -->
+<Config 
xsi:noNamespaceSchemaLocation="http:///org.apache.tuscany.das.rdb/config.xsd"; 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+dataObjectModel="http:///org.apache.tuscany.das.rdb.test/customer.xsd";>
+
+  <Table tableName="CUSTOMER" typeName="Customer">
+    <Column columnName="ID"  primaryKey="true" 
converterClassName="not.a.valid.class"/>
+  </Table>
+  
+  <Table tableName="ANORDER" typeName="AnOrder">
+       <Column columnName="CUSTOMER_ID"/>
+    <Column columnName="ID"  primaryKey="true"/>
+  </Table>
+       
+  <Relationship name="orders" primaryKeyTable="CUSTOMER" 
foreignKeyTable="ANORDER" many="true">
+     <KeyPair primaryKeyColumn="ID" foreignKeyColumn="CUSTOMER_ID"/>
+  </Relationship>
+  
+</Config>
+

Propchange: 
incubator/tuscany/java/das/rdb/src/test/resources/InvalidConverter.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/das/rdb/src/test/resources/InvalidConverter.xml
------------------------------------------------------------------------------
    svn:keywords = Rev,Date



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to