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