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 ar...@apache.org on 2006/09/26 13:23:14 UTC

svn commit: r449988 - /db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/CollectionTest.java

Author: arminw
Date: Tue Sep 26 04:23:13 2006
New Revision: 449988

URL: http://svn.apache.org/viewvc?view=rev&rev=449988
Log:
add new test, fix tests

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/CollectionTest.java

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/CollectionTest.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/CollectionTest.java?view=diff&rev=449988&r1=449987&r2=449988
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/CollectionTest.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/CollectionTest.java Tue Sep 26 04:23:13 2006
@@ -12,10 +12,10 @@
 import org.apache.ojb.broker.metadata.ObjectReferenceDescriptor;
 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;
+import org.apache.ojb.broker.query.QueryByCriteria;
 import org.apache.ojb.broker.util.ObjectModification;
-import org.apache.ojb.broker.util.collections.RemovalAwareCollection;
+import org.apache.ojb.broker.util.collections.RemovalAwareList;
 import org.apache.ojb.junit.PBTestCase;
 
 /**
@@ -65,7 +65,6 @@
  *
  * TODO: Need some refactoring and more structured tests of different auto_xyz/proxy settings
  *
- * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
  * @version $Id$
  */
 public class CollectionTest extends PBTestCase
@@ -120,7 +119,7 @@
         broker.clearCache();
         Criteria criteria = new Criteria();
         criteria.addLike("name", prefix + "%");
-        Query q = new QueryByCriteria(BookShelfItem.class, criteria);
+        Query q = QueryFactory.newQuery(BookShelfItem.class, criteria);
         Collection result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals(3, result.size());
@@ -182,7 +181,7 @@
         broker.clearCache();
         Criteria criteria = new Criteria();
         criteria.addLike("name", prefix + "%");
-        Query q = new QueryByCriteria(BookShelfItem.class, criteria);
+        Query q = QueryFactory.newQuery(BookShelfItem.class, criteria);
         Collection items = broker.getCollectionByQuery(q);
         assertNotNull(items);
         assertEquals(2, items.size());
@@ -221,6 +220,36 @@
         assertEquals(4, i);
     }
 
+    public void testDeleteProxyCollection() throws Exception
+    {
+        String name = "testDeleteProxyCollection_"+System.currentTimeMillis();
+        Gatherer gat = new Gatherer(null, name);
+        CollectibleB[] cols = prepareCollectibleB(name);
+
+        gat.setCollectiblesB(Arrays.asList(cols));
+        broker.beginTransaction();
+        broker.store(gat);
+        broker.commitTransaction();
+
+        broker.clearCache();
+        broker.beginTransaction();
+        Criteria crit1 = new Criteria();
+        crit1.addLike("name", name);
+        Query q1 = QueryFactory.newQuery(Gatherer.class, crit1);
+        Gatherer newGat1 = (Gatherer)broker.getObjectByQuery(q1);
+        newGat1.getCollectiblesB().clear();
+        broker.store(newGat1);			// should delete CollectibleBs
+        broker.commitTransaction();
+
+        broker.clearCache();
+        Criteria crit2 = new Criteria();
+        crit2.addLike("name", name);
+        Query q2 = QueryFactory.newQuery(Gatherer.class, crit2);
+        Gatherer newGat2 = (Gatherer)broker.getObjectByQuery(q2);
+        int size = newGat2.getCollectiblesB().size();
+        assertEquals(0, size);
+    }
+
     public void testStoreReadOfUserDefinedCollectionClass()
     {
         String name = "testStoreReadOfUserDefinedCollectionClass_"+System.currentTimeMillis();
@@ -319,20 +348,21 @@
 
         Criteria criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colBase*");
-        Query q = new QueryByCriteria(CollectibleBase.class, criteria);
+        Query q = QueryFactory.newQuery(CollectibleBase.class, criteria);
         Collection result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 3, result.size());
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colB*");
-        q = new QueryByCriteria(CollectibleB.class, criteria);
+        q = QueryFactory.newQuery(CollectibleB.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 4, result.size());
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
+        //q = QueryFactory.newQuery(CollectibleBaseIF.class, criteria);
         q = new QueryByCriteria(CollectibleBaseIF.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
@@ -358,7 +388,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colBase*");
-        q = new QueryByCriteria(CollectibleBase.class, criteria);
+        q = QueryFactory.newQuery(CollectibleBase.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         // auto-delete is set true
@@ -366,7 +396,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colB*");
-        q = new QueryByCriteria(CollectibleB.class, criteria);
+        q = QueryFactory.newQuery(CollectibleB.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         // auto-delete is set false, but we removed manually
@@ -374,6 +404,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
+        //q = QueryFactory.newQuery(CollectibleBaseIF.class, criteria);
         q = new QueryByCriteria(CollectibleBaseIF.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
@@ -421,27 +452,28 @@
 
         Criteria criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colBase*");
-        Query q = new QueryByCriteria(CollectibleBase.class, criteria);
+        Query q = QueryFactory.newQuery(CollectibleBase.class, criteria);
         Collection result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 3, result.size());
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colB*");
-        q = new QueryByCriteria(CollectibleB.class, criteria);
+        q = QueryFactory.newQuery(CollectibleB.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 4, result.size());
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
+        //q = QueryFactory.newQuery(CollectibleBaseIF.class, criteria);
         q = new QueryByCriteria(CollectibleBaseIF.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 7, result.size());
 
         broker.beginTransaction();
-        // now get all CollectibleB
+        // now get all CollectibleB and delete them, because auto-delete is false
         List colBList = new_gatherer.getCollectiblesB();
         for (Iterator iterator = colBList.iterator(); iterator.hasNext();)
         {
@@ -457,7 +489,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colBase*");
-        q = new QueryByCriteria(CollectibleBase.class, criteria);
+        q = QueryFactory.newQuery(CollectibleBase.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         // auto-delete is set true
@@ -465,7 +497,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colB*");
-        q = new QueryByCriteria(CollectibleB.class, criteria);
+        q = QueryFactory.newQuery(CollectibleB.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         // auto-delete is set false
@@ -473,6 +505,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
+        //q = QueryFactory.newQuery(CollectibleBaseIF.class, criteria);
         q = new QueryByCriteria(CollectibleBaseIF.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
@@ -516,7 +549,7 @@
 
         Criteria criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
-        Query q = new QueryByCriteria(CollectibleC2.class, criteria);
+        Query q = QueryFactory.newQuery(CollectibleC2.class, criteria);
         Collection result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 5, result.size());
@@ -536,7 +569,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
-        q = new QueryByCriteria(CollectibleC2.class, criteria);
+        q = QueryFactory.newQuery(CollectibleC2.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 0, result.size());
@@ -584,14 +617,14 @@
         Criteria criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colD*");
         criteria.addLike("name", colPrefix + "*");
-        Query q = new QueryByCriteria(CollectibleD.class, criteria);
+        Query q = QueryFactory.newQuery(CollectibleD.class, criteria);
         Collection result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 2, result.size());
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colDD*");
-        q = new QueryByCriteria(CollectibleDD.class, criteria);
+        q = QueryFactory.newQuery(CollectibleDD.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 3, result.size());
@@ -600,20 +633,21 @@
         // should only return CollectibleD class instances
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
-        q = new QueryByCriteria(CollectibleD.class, criteria);
+        q = QueryFactory.newQuery(CollectibleD.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 2, result.size());
         // now test objConcreteClass feature
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
-        q = new QueryByCriteria(CollectibleDD.class, criteria);
+        q = QueryFactory.newQuery(CollectibleDD.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 3, result.size());
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
+        //q = QueryFactory.newQuery(CollectibleBaseIF.class, criteria);
         q = new QueryByCriteria(CollectibleBaseIF.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
@@ -632,7 +666,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colD*");
-        q = new QueryByCriteria(CollectibleD.class, criteria);
+        q = QueryFactory.newQuery(CollectibleD.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         // auto-delete is set true
@@ -640,7 +674,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colDD*");
-        q = new QueryByCriteria(CollectibleDD.class, criteria);
+        q = QueryFactory.newQuery(CollectibleDD.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         // auto-delete is set true
@@ -648,6 +682,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
+        //q = QueryFactory.newQuery(CollectibleBaseIF.class, criteria);
         q = new QueryByCriteria(CollectibleBaseIF.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
@@ -686,20 +721,21 @@
 
         Criteria criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colBase*");
-        Query q = new QueryByCriteria(CollectibleBase.class, criteria);
+        Query q = QueryFactory.newQuery(CollectibleBase.class, criteria);
         Collection result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 3, result.size());
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colB*");
-        q = new QueryByCriteria(CollectibleB.class, criteria);
+        q = QueryFactory.newQuery(CollectibleB.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 4, result.size());
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
+        //q = QueryFactory.newQuery(CollectibleBaseIF.class, criteria);
         q = new QueryByCriteria(CollectibleBaseIF.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
@@ -739,7 +775,7 @@
         // additional check, read reference objects by query
         Criteria criteria = new Criteria();
         criteria.addLike("name", colPrefix+"*");
-        Query q = new QueryByCriteria(CollectibleBase.class, criteria);
+        Query q = QueryFactory.newQuery(CollectibleBase.class, criteria);
         Collection result = broker.getCollectionByQuery(q);
         assertNotNull(result);
         assertEquals("Wrong number of queried objects", 3, result.size());
@@ -804,6 +840,7 @@
 
         Criteria criteria = new Criteria();
         criteria.addLike("name", colPrefix + "_colC*");
+        // Query q = QueryFactory.newQuery(CollectibleC.class, criteria);
         Query q = new QueryByCriteria(CollectibleC.class, criteria);
         Collection result = broker.getCollectionByQuery(q);
         assertNotNull(result);
@@ -811,6 +848,7 @@
 
         criteria = new Criteria();
         criteria.addLike("name", colPrefix + "*");
+        //q = QueryFactory.newQuery(CollectibleBaseIF.class, criteria);
         q = new QueryByCriteria(CollectibleBaseIF.class, criteria);
         result = broker.getCollectionByQuery(q);
         assertNotNull(result);
@@ -844,7 +882,7 @@
         broker.clearCache();
         Criteria criteria = new Criteria();
         criteria.addLike("name", prefix);
-        Query q = new QueryByCriteria(BookShelf.class, criteria);
+        Query q = QueryFactory.newQuery(BookShelf.class, criteria);
         Collection books = broker.getCollectionByQuery(q);
         assertNotNull(books);
         assertEquals(1, books.size());
@@ -882,7 +920,7 @@
         broker.clearCache();
         Criteria criteria = new Criteria();
         criteria.addLike("name", prefix);
-        Query q = new QueryByCriteria(BookShelf.class, criteria);
+        Query q = QueryFactory.newQuery(BookShelf.class, criteria);
         Iterator books = broker.getIteratorByQuery(q);
         assertTrue(books.hasNext());
         loadedCopy = (BookShelf) books.next();
@@ -917,7 +955,7 @@
         loadedCopy = (Gatherer) broker.getObjectByIdentity(gathererId);
         assertNotNull(loadedCopy);
         assertNotNull(loadedCopy.getCollectiblesBase());
-        assertTrue(loadedCopy.getCollectiblesBase() instanceof RemovalAwareCollection);
+        assertTrue(loadedCopy.getCollectiblesBase() instanceof RemovalAwareList);
         assertEquals(3, loadedCopy.getCollectiblesBase().size());
 
         //
@@ -932,7 +970,7 @@
         loadedCopy = (Gatherer) broker.getObjectByIdentity(gathererId);
         assertNotNull(loadedCopy);
         assertNotNull(loadedCopy.getCollectiblesBase());
-        assertTrue(loadedCopy.getCollectiblesBase() instanceof RemovalAwareCollection);
+        assertTrue(loadedCopy.getCollectiblesBase() instanceof RemovalAwareList);
         assertEquals(2, loadedCopy.getCollectiblesBase().size());
 
         //
@@ -947,7 +985,7 @@
         loadedCopy = (Gatherer) broker.getObjectByIdentity(gathererId);
         assertNotNull(loadedCopy);
         assertNotNull(loadedCopy.getCollectiblesBase());
-        assertTrue(loadedCopy.getCollectiblesBase() instanceof RemovalAwareCollection);
+        assertTrue(loadedCopy.getCollectiblesBase() instanceof RemovalAwareList);
         assertEquals(0, loadedCopy.getCollectiblesBase().size());
     }
 
@@ -976,7 +1014,7 @@
         loadedCopy = (Gatherer) broker.getObjectByIdentity(gathererId);
         assertNotNull(loadedCopy);
         assertNotNull(loadedCopy.getCollectiblesBase());
-        assertTrue(loadedCopy.getCollectiblesBase() instanceof RemovalAwareCollection);
+        assertTrue(loadedCopy.getCollectiblesBase() instanceof RemovalAwareList);
         assertEquals(2, loadedCopy.getCollectiblesBase().size());
 
         // add and remove non persistent obj
@@ -1020,7 +1058,7 @@
         loadedCopy = (ProductGroup) broker.getObjectByIdentity(pgId);
         assertNotNull(loadedCopy);
         assertNotNull(loadedCopy.getAllArticlesInGroup());
-        assertTrue(loadedCopy.getAllArticlesInGroup() instanceof RemovalAwareCollection);
+        assertTrue(loadedCopy.getAllArticlesInGroup() instanceof RemovalAwareList);
         assertEquals(3, loadedCopy.getAllArticlesInGroup().size());
 
         //
@@ -1035,7 +1073,7 @@
         loadedCopy = (ProductGroup) broker.getObjectByIdentity(pgId);
         assertNotNull(loadedCopy);
         assertNotNull(loadedCopy.getAllArticlesInGroup());
-        assertTrue(loadedCopy.getAllArticlesInGroup() instanceof RemovalAwareCollection);
+        assertTrue(loadedCopy.getAllArticlesInGroup() instanceof RemovalAwareList);
         assertEquals(2, loadedCopy.getAllArticlesInGroup().size());
 
         //
@@ -1050,7 +1088,7 @@
         loadedCopy = (ProductGroup) broker.getObjectByIdentity(pgId);
         assertNotNull(loadedCopy);
         assertNotNull(loadedCopy.getAllArticlesInGroup());
-        assertTrue(loadedCopy.getAllArticlesInGroup() instanceof RemovalAwareCollection);
+        assertTrue(loadedCopy.getAllArticlesInGroup() instanceof RemovalAwareList);
         assertEquals(0, loadedCopy.getAllArticlesInGroup().size());
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org