You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2003/12/22 17:03:33 UTC
cvs commit: db-ojb/src/test/org/apache/ojb/broker MtoNMapping.java
brj 2003/12/22 08:03:33
Modified: src/test/org/apache/ojb/broker MtoNMapping.java
Log:
testcase for prefetching m:n relationships
Revision Changes Path
1.14 +46 -0 db-ojb/src/test/org/apache/ojb/broker/MtoNMapping.java
Index: MtoNMapping.java
===================================================================
RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/MtoNMapping.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- MtoNMapping.java 2 Jun 2003 12:52:28 -0000 1.13
+++ MtoNMapping.java 22 Dec 2003 16:03:33 -0000 1.14
@@ -1,5 +1,6 @@
package org.apache.ojb.broker;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -9,6 +10,7 @@
import org.apache.ojb.broker.query.Criteria;
import org.apache.ojb.broker.query.Query;
+import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.query.QueryFactory;
/** This TestClass tests OJB facilities to work with polymorphism.
@@ -231,6 +233,48 @@
assertNotNull(col);
}
+ /** test loading of m:n mapped object nets with prefetch*/
+ public void testMNLoadingPrefetch() throws Exception
+ {
+ Criteria crit;
+ QueryByCriteria qry;
+ Collection col1, col2;
+
+ broker.clearCache();
+
+ crit = new Criteria();
+ crit.addLessThan("id",new Integer(6));
+ qry = QueryFactory.newQuery(Project.class, crit);
+ qry.addOrderByAscending("id");
+ col1 = broker.getCollectionByQuery(qry);
+ assertNotNull(col1);
+
+ broker.clearCache();
+
+ crit = new Criteria();
+ crit.addLessThan("id",new Integer(6));
+ qry = QueryFactory.newQuery(Project.class, crit);
+ qry.addOrderByAscending("id");
+ qry.addPrefetchedRelationship("persons");
+ col2 = broker.getCollectionByQuery(qry);
+ assertNotNull(col2);
+
+ assertEquals("Same size",col1.size(), col2.size());
+
+ Iterator it1 = col1.iterator();
+ Iterator it2 = col2.iterator();
+
+ while (it1.hasNext() && it2.hasNext())
+ {
+ Project p1 = (Project)it1.next();
+ Project p2 = (Project)it2.next();
+
+ assertEquals("Same Title", p1.getTitle(), p2.getTitle());
+ assertEquals("Same Number of Persons", p1.getPersons().size(), p2.getPersons().size());
+ assertEquals("Same toString", p1.toString(), p2.toString());
+ }
+ }
+
/** test loading of m:n unidirectionally mapped objects*/
public void testMNLoadingUnidirectional() throws Exception
@@ -288,10 +332,12 @@
int count = projects.size();
Project proj = new Project();
+ proj.setPersons(new ArrayList());
proj.setTitle("MARS");
proj.setDescription("colonization of planet Mars");
p.getProjects().add(proj);
+ proj.getPersons().add(p);
assertEquals(count + 1, p.getProjects().size());
broker.beginTransaction();
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org