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);