You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/11/26 05:55:51 UTC

svn commit: r479275 - /incubator/cayenne/main/trunk/integration-test/pojo/src/test/java/org/apache/cayenne/itest/pojo/OneToManyObjectTest.java

Author: aadamchik
Date: Sat Nov 25 20:55:50 2006
New Revision: 479275

URL: http://svn.apache.org/viewvc?view=rev&rev=479275
Log:
CAY-682:Generic Cayenne POJO enhancer
(added tests for to-many prefetching)

Modified:
    incubator/cayenne/main/trunk/integration-test/pojo/src/test/java/org/apache/cayenne/itest/pojo/OneToManyObjectTest.java

Modified: incubator/cayenne/main/trunk/integration-test/pojo/src/test/java/org/apache/cayenne/itest/pojo/OneToManyObjectTest.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/integration-test/pojo/src/test/java/org/apache/cayenne/itest/pojo/OneToManyObjectTest.java?view=diff&rev=479275&r1=479274&r2=479275
==============================================================================
--- incubator/cayenne/main/trunk/integration-test/pojo/src/test/java/org/apache/cayenne/itest/pojo/OneToManyObjectTest.java (original)
+++ incubator/cayenne/main/trunk/integration-test/pojo/src/test/java/org/apache/cayenne/itest/pojo/OneToManyObjectTest.java Sat Nov 25 20:55:50 2006
@@ -63,6 +63,50 @@
         assertSame(o1, or.get(0).getToOne());
     }
 
+    public void testSelectToManyWithPrefetch() throws Exception {
+        getDbHelper().deleteAll("many_to_one_entity1");
+        getDbHelper().deleteAll("one_to_many_entity1");
+        getDbHelper().insert("one_to_many_entity1", new String[] {
+            "id"
+        }, new Object[] {
+            5
+        });
+
+        getDbHelper().insert("many_to_one_entity1", new String[] {
+                "id", "one_to_many_entity1_id"
+        }, new Object[] {
+                16, 5
+        });
+
+        getDbHelper().insert("many_to_one_entity1", new String[] {
+                "id", "one_to_many_entity1_id"
+        }, new Object[] {
+                17, 5
+        });
+
+        SelectQuery q = new SelectQuery(OneToManyEntity1.class);
+        q.addPrefetch("toMany");
+        List results = context.performQuery(q);
+        assertEquals(1, results.size());
+
+        OneToManyEntity1 o1 = (OneToManyEntity1) results.get(0);
+
+        Field f = OneToManyEntity1.class.getDeclaredField("$cay_faultResolved_toMany");
+        assertEquals(Boolean.TRUE, f.get(o1));
+
+        blockContextQueries();
+        try {
+            List<ManyToOneEntity1> or = o1.getToMany();
+            assertNotNull(or);
+
+            assertEquals(2, or.size());
+            assertSame(o1, or.get(0).getToOne());
+        }
+        finally {
+            unblockContextQueries();
+        }
+    }
+
     public void testNew() throws Exception {
         getDbHelper().deleteAll("many_to_one_entity1");
         getDbHelper().deleteAll("one_to_many_entity1");
@@ -77,7 +121,7 @@
         o1.getToMany().add(o2);
 
         assertEquals(1, o1.getToMany().size());
-  
+
         ManyToOneEntity1 o3 = (ManyToOneEntity1) context
                 .newObject(ManyToOneEntity1.class);
         o1.getToMany().add(o3);