Author: tv
Date: Sun Jan  8 12:05:06 2006
New Revision: 367081

URL: http://svn.apache.org/viewcvs?rev=367081&view=rev
Log:
Added test for doSelectAllExceptXXX()

Modified:
    db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java

Modified: 
db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java
URL: 
http://svn.apache.org/viewcvs/db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java?rev=367081&r1=367080&r2=367081&view=diff
==============================================================================
--- db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java 
(original)
+++ db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java 
Sun Jan  8 12:05:06 2006
@@ -36,6 +36,8 @@
 import org.apache.torque.test.APeer;
 import org.apache.torque.test.Author;
 import org.apache.torque.test.AuthorPeer;
+import org.apache.torque.test.B;
+import org.apache.torque.test.BPeer;
 import org.apache.torque.test.BitTest;
 import org.apache.torque.test.BitTestPeer;
 import org.apache.torque.test.BlobTest;
@@ -44,6 +46,8 @@
 import org.apache.torque.test.BookPeer;
 import org.apache.torque.test.BooleanCheck;
 import org.apache.torque.test.BooleanCheckPeer;
+import org.apache.torque.test.C;
+import org.apache.torque.test.CPeer;
 import org.apache.torque.test.ClobTest;
 import org.apache.torque.test.ClobTestPeer;
 import org.apache.torque.test.DateTest;
@@ -58,6 +62,8 @@
 import org.apache.torque.test.MultiPkPeer;
 import org.apache.torque.test.NullValueTable;
 import org.apache.torque.test.NullValueTablePeer;
+import org.apache.torque.test.RAb;
+import org.apache.torque.test.RAbPeer;
 import org.apache.torque.util.BasePeer;
 import org.apache.torque.util.CountHelper;
 import org.apache.torque.util.Criteria;
@@ -71,6 +77,7 @@
  * @author <a href="mailto:[EMAIL PROTECTED]">Martin Poeschl</a>
  * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Fischer</a>
  * @author <a href="mailto:[EMAIL PROTECTED]">Patrick Carl</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Vandahl</a>
  * @version $Id$
  */
 public class DataTest extends BaseRuntimeTestCase
@@ -671,6 +678,57 @@
     }
 
     /**
+     * Test joins using the XPeer.DoSelectJoinAllExceptYYY methods
+     * @throws Exception if the Test fails
+     */
+    public void testDoSelectJoinAllExceptY() throws Exception
+    {
+        cleanABC();
+        
+        // setup test data
+        A a = new A();
+        a.setName("test a");
+        a.save();
+        
+        B b = new B();
+        b.setName("test b");
+        b.save();
+        
+        RAb rab = new RAb();
+        rab.setName("test rab");
+        rab.setA(a);
+        rab.setB(b);
+        rab.save();
+        
+        C c = new C();
+        c.setName("test c");
+        c.setA(a);
+        c.setB(b);
+        c.setRAb(rab);
+        c.save();
+        
+        Criteria criteria =  new Criteria();
+        criteria.add(APeer.A_ID, a.getAId());
+        List list = MyCPeer.doSelectJoinAllExceptA(criteria);
+        assertTrue("list should contain 1 entry but contains "
+                + list.size(), list.size() == 1);
+        
+        C c1 = (C)list.get(0);
+        B b1 = c1.getB();
+        RAb rab1 = c1.getRAb();
+        
+        assertTrue("The name of c1 should be 'test c' but is " + c1.getName(),
+                c1.getName().equals("test c"));
+        assertTrue("The name of b1 should be 'test b' but is " + b1.getName(),
+                b1.getName().equals("test b"));
+        assertTrue("The name of rab1 should be 'test rab' but is " + 
rab1.getName(),
+                rab1.getName().equals("test rab"));
+        assertTrue ("The c's of b1 and rab1"
+                + " should point to the same instance",
+                b1.getCs().get(0) == rab1.getCs().get(0));
+    }
+
+    /**
      * test the order by, especially in joins and with aliases
      * @throws Exception if the test fails
      */
@@ -1093,10 +1151,7 @@
      */
     public void testSingleQuotes() throws Exception
     {
-        // clean A table
-        Criteria criteria = new Criteria();
-        criteria.add(APeer.A_ID, (Long) null, Criteria.NOT_EQUAL);
-        APeer.doDelete(criteria);
+        cleanABC();
 
         A a = new A();
         a.setName("has Single ' Quote");
@@ -1355,6 +1410,34 @@
         AuthorPeer.doDelete(criteria);
     }
 
+    /**
+     * Deletes all As, Bs, Cs and RAs
+     * @throws Exception if the cleanup fails
+     */
+    protected void cleanABC() throws Exception
+    {
+        // clean C table
+        Criteria criteria = new Criteria();
+        criteria.add(CPeer.C_ID, (Long) null, Criteria.NOT_EQUAL);
+        CPeer.doDelete(criteria);
+
+        // clean R_AB table
+        criteria.clear();
+        criteria.add(RAbPeer.A_ID, (Long) null, Criteria.NOT_EQUAL);
+        criteria.add(RAbPeer.B_ID, (Long) null, Criteria.NOT_EQUAL);
+        RAbPeer.doDelete(criteria);
+
+        // clean A table
+        criteria.clear();
+        criteria.add(APeer.A_ID, (Long) null, Criteria.NOT_EQUAL);
+        APeer.doDelete(criteria);
+
+        // clean B table
+        criteria.clear();
+        criteria.add(BPeer.B_ID, (Long) null, Criteria.NOT_EQUAL);
+        BPeer.doDelete(criteria);
+    }
+
 
     /**
      * Strips the schema and table name from a fully qualified colum name
@@ -1386,6 +1469,18 @@
                 throws TorqueException
         {
             return BookPeer.doSelectJoinAuthor(criteria);
+        }
+    }
+
+    /**
+     * Subclass of CPeer to make the doSelectJoinAllExceptA() visible
+     */
+    static class MyCPeer extends CPeer
+    {
+        public static List doSelectJoinAllExceptA(Criteria criteria)
+                throws TorqueException
+        {
+            return CPeer.doSelectJoinAllExceptA(criteria);
         }
     }
 }



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

Reply via email to