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 2007/03/31 01:10:40 UTC

svn commit: r524317 - in /db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount: AbstractCountTest.java CollectionCountTest.java EmptyCacheCountTest.java SimpleCountTest.java TwoLevelSimpleTest.java

Author: arminw
Date: Fri Mar 30 16:10:39 2007
New Revision: 524317

URL: http://svn.apache.org/viewvc?view=rev&rev=524317
Log:
update, adapt tests

Modified:
    db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/AbstractCountTest.java
    db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/CollectionCountTest.java
    db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/EmptyCacheCountTest.java
    db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/SimpleCountTest.java
    db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/TwoLevelSimpleTest.java

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/AbstractCountTest.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/AbstractCountTest.java?view=diff&rev=524317&r1=524316&r2=524317
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/AbstractCountTest.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/AbstractCountTest.java Fri Mar 30 16:10:39 2007
@@ -10,6 +10,9 @@
 import org.apache.ojb.broker.metadata.MetadataManager;
 import org.apache.ojb.broker.PBKey;
 import org.apache.ojb.broker.PersistenceBrokerFactory;
+import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.junit.OJBTestCase;
+import org.apache.ojb.junit.PBTestCase;
 
 import java.io.File;
 
@@ -19,86 +22,86 @@
  * @author <a href="mailto:om@ppi.de">Oliver Matz</a>
  * @version $Id$
  */
-public abstract class AbstractCountTest extends TestCase
+public abstract class AbstractCountTest extends PBTestCase
 {
-  private int stmtCount;
-  protected final Logger logger = LoggerFactory.getLogger(this.getClass());
-  private static final File SPY_PROPS_FILE = new File("testsuite-spy.properties");
-
-  /**
-   * sets the spy.properties file name.
-   */
-  protected void setUp() throws Exception
-  {
-    if (!SPY_PROPS_FILE.exists())
-      fail("Missing file: " + SPY_PROPS_FILE.getAbsolutePath());
-    P6SpyProperties.setSpyProperties(SPY_PROPS_FILE.getName());
-    checkP6spyEnabled(PersistenceBrokerFactory.getDefaultKey());
-  }
-
-  /**
-   * start count SQL statements
-   */
-  protected final void resetStmtCount()
-  {
-    stmtCount = CountLogger.getSQLStatementCount();
-  }
-
-  /**
-   * assert that the number of statements issued since the last call of {@link #resetStmtCount()}.
-   * is between two specified numbers.
-   *
-   * @param msg short description of the actions since the last call of {@link #resetStmtCount()}.
-   */
-  protected final void assertStmtCount(String msg, int minExpected, int maxExpected)
-  {
-    int stmtNum = CountLogger.getSQLStatementCount() - stmtCount;
-    if (stmtNum > maxExpected)
-      fail(msg + ": more SQL statements than expected. Expected: " + maxExpected + ", was: " + stmtNum);
-    else if (minExpected > 0 && stmtNum == 0)
-      fail("No SQL statements, maybe CountLogger not enabled?");
-    else if (stmtNum < minExpected)
-      fail(msg + ": less SQL statements than expected (Performance improvement? Please correct test limit)."
-               +  " Expected: " + minExpected + ", was: " + stmtNum);
-    else
-    {
-      logStmtCount(msg, stmtNum);
-    }
-  }
-
-  /**
-   * assert that the number of statements issued since the last call of {@link #resetStmtCount()}.
-   * is equal to a specified number.
-   *
-   * @param msg short description of the actions since the last call of {@link #resetStmtCount()}.
-   */
-  protected final void assertStmtCount(String msg, int expected)
-  {
-    assertStmtCount(msg, expected, expected);
-  }
-
-  private void logStmtCount(String msg, int num)
-  {
-    logger.info(msg + ": " + num);
-  }
-
-  protected final void logStmtCount(String msg)
-  {
-    logStmtCount(msg, CountLogger.getSQLStatementCount() - stmtCount);
-  }
-
-  /**
-   * fail ifF the specified PersistenceBroker does not use P6Spy.
-   */
-  protected final void checkP6spyEnabled(PBKey pbKey)
-  {
-    JdbcConnectionDescriptor conDesc
-            = MetadataManager.getInstance().connectionRepository().getDescriptor(pbKey);
-    if (!P6SpyDriver.class.getName().equals(conDesc.getDriver()))
-    {
-      fail("this test works only with p6spy.\n" +
-           "Please set 'driver=" + P6SpyDriver.class.getName() + "' in file repository_database.xml" +
-           " or use ant build property '-DuseP6Spy=true'");
+    private int stmtCount;
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+    private static final File SPY_PROPS_FILE = new File("testsuite-spy.properties");
+
+    /**
+     * sets the spy.properties file name.
+     */
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        if(!SPY_PROPS_FILE.exists())
+            fail("Missing file: " + SPY_PROPS_FILE.getAbsolutePath());
+        P6SpyProperties.setSpyProperties(SPY_PROPS_FILE.getName());
+        checkP6spyEnabled(broker);
+    }
+
+    /**
+     * start count SQL statements
+     */
+    protected final void resetStmtCount()
+    {
+        stmtCount = CountLogger.getSQLStatementCount();
+    }
+
+    /**
+     * assert that the number of statements issued since the last call of {@link #resetStmtCount()}.
+     * is between two specified numbers.
+     *
+     * @param msg short description of the actions since the last call of {@link #resetStmtCount()}.
+     */
+    protected final void assertStmtCount(String msg, int minExpected, int maxExpected)
+    {
+        int stmtNum = CountLogger.getSQLStatementCount() - stmtCount;
+        if(stmtNum > maxExpected)
+            fail(msg + ": more SQL statements than expected. Expected: " + maxExpected + ", was: " + stmtNum);
+        else if(minExpected > 0 && stmtNum == 0)
+            fail("No SQL statements, maybe CountLogger not enabled?");
+        else if(stmtNum < minExpected)
+            fail(msg + ": less SQL statements than expected (Performance improvement? Please correct test limit)."
+                    + " Expected: " + minExpected + ", was: " + stmtNum);
+        else
+        {
+            logStmtCount(msg, stmtNum);
+        }
+    }
+
+    /**
+     * assert that the number of statements issued since the last call of {@link #resetStmtCount()}.
+     * is equal to a specified number.
+     *
+     * @param msg short description of the actions since the last call of {@link #resetStmtCount()}.
+     */
+    protected final void assertStmtCount(String msg, int expected)
+    {
+        assertStmtCount(msg, expected, expected);
+    }
+
+    private void logStmtCount(String msg, int num)
+    {
+        logger.info(msg + ": " + num);
+    }
+
+    protected final void logStmtCount(String msg)
+    {
+        logStmtCount(msg, CountLogger.getSQLStatementCount() - stmtCount);
+    }
+
+    /**
+     * fail ifF the specified PersistenceBroker does not use P6Spy.
+     */
+    protected final void checkP6spyEnabled(PersistenceBroker broker)
+    {
+        JdbcConnectionDescriptor conDesc = broker.serviceConnectionManager().getConnectionDescriptor();
+        if(!P6SpyDriver.class.getName().equals(conDesc.getDriver()))
+        {
+            fail("this test works only with p6spy.\n" +
+                    "Please set 'driver=" + P6SpyDriver.class.getName() + "' in file repository_database.xml" +
+                    " or use ant build property '-DuseP6Spy=true'");
+        }
     }
-  }
 }

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/CollectionCountTest.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/CollectionCountTest.java?view=diff&rev=524317&r1=524316&r2=524317
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/CollectionCountTest.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/CollectionCountTest.java Fri Mar 30 16:10:39 2007
@@ -12,11 +12,8 @@
 import java.util.List;
 
 import org.apache.ojb.broker.Article;
-import org.apache.ojb.broker.Identity;
 import org.apache.ojb.broker.InterfaceArticle;
 import org.apache.ojb.broker.InterfaceProductGroup;
-import org.apache.ojb.broker.PersistenceBroker;
-import org.apache.ojb.broker.PersistenceBrokerFactory;
 import org.apache.ojb.broker.Person;
 import org.apache.ojb.broker.ProductGroup;
 import org.apache.ojb.broker.Project;
@@ -33,259 +30,265 @@
  */
 public class CollectionCountTest extends AbstractCountTest
 {
-  protected PersistenceBroker myPB;
+    public void setUp() throws Exception
+    {
+        super.setUp();
+    }
+
+    public void tearDown() throws Exception
+    {
+        super.tearDown();
+    }
+
+    /**
+     * retrieve all product groups.
+     */
+    public void testAllProductGroups()
+    {
+        resetStmtCount();
+        broker.clearCache();
+        broker.beginTransaction();
+        Query qry = QueryFactory.newQuery(ProductGroup.class, new Criteria());
+        assertStmtCount("preparation", 0);
+        Iterator iter = broker.getIteratorByQuery(qry);
+        assertStmtCount("getIteratorByQuery", 1);
+        while(iter.hasNext())
+        {
+            resetStmtCount();
+            InterfaceProductGroup next = (InterfaceProductGroup) iter.next();
+            assertStmtCount("next", 0);
+            List articles = next.getAllArticles();
+            // SELECT ... FROM Kategorien
+            // SELECT ... FROM Artikel
+            // SELECT ... FROM BOOKS
+            // SELECT ... FROM CDS
+            assertStmtCount("getAllArticles", 4);
+        }
+        broker.commitTransaction();
+    }
 
-  protected void setUp() throws Exception
-  {
-    super.setUp();
-    myPB = PersistenceBrokerFactory.defaultPersistenceBroker();
-  }
-
-  protected void tearDown() throws Exception
-  {
-    if ((myPB != null) && !myPB.isClosed())
+    /**
+     * retrieve Product group number 5 and its 12 articles
+     */
+    public void testProductGroup5()
     {
-      myPB.close();
+        resetStmtCount();
+        broker.clearCache();
+        broker.beginTransaction();
+        ProductGroup pg = (ProductGroup) broker.getObjectByIdentity(
+                broker.serviceIdentity().buildIdentity(null, ProductGroup.class, new Object[]{new Integer(5)}));
+        assertStmtCount("getObjectByIdentity", 4);
+        resetStmtCount();
+        List articles = pg.getAllArticles();
+        assertEquals(12, articles.size());
+        assertStmtCount("getAllArticles", 0);
+        resetStmtCount();
+        for(Iterator articleIterator = articles.iterator(); articleIterator.hasNext();)
+        {
+            InterfaceArticle article = (InterfaceArticle) articleIterator.next();
+            logger.info("articleId " + article.getArticleId());
+            // SELECT ... FROM Artikel WHERE Artikel_Nr = ...
+        }
+        assertStmtCount("collect ids: ", 1);  // batch retrieval!
+        resetStmtCount();
+        String str = pg.toString();
+        // SELECT ... FROM Kategorien WHERE Kategorie_Nr = '5'
+        // SELECT ... FROM Artikel A0 WHERE Kategorie_Nr =  '5'
+        // SELECT ... FROM BOOKS A0   WHERE Kategorie_Nr =  '5'
+        // SELECT ... FROM CDS A0     WHERE Kategorie_Nr =  '5'
+        assertStmtCount("toString", 4);
+        logger.info(str);
+        broker.commitTransaction();
     }
-    super.tearDown();
-  }
 
-  /**
-   * retrieve all product groups.
-   */
-  public void testAllProductGroups()
-  {
-    resetStmtCount();
-    myPB.clearCache();
-    myPB.beginTransaction();
-    Query qry = new QueryByCriteria(ProductGroup.class, null);
-    assertStmtCount("preparation", 0);
-    Iterator iter = myPB.getIteratorByQuery(qry);
-    assertStmtCount("getIteratorByQuery", 1);
-    while (iter.hasNext())
+    /*
+    * insert a person with an empty project collection.
+    * note: the <em>first</em> Person and Project require extra lookups
+    * in the table OJB_HL_SEQ.
+    */
+    public void testPersonEmptyProjectsInsert()
     {
-      resetStmtCount();
-      InterfaceProductGroup next = (InterfaceProductGroup) iter.next();
-      assertStmtCount("next", 0);
-      List articles = next.getAllArticles();
-      // SELECT ... FROM Kategorien
-      // SELECT ... FROM Artikel
-      // SELECT ... FROM BOOKS
-      // SELECT ... FROM CDS
-      assertStmtCount("getAllArticles", 4);
+        resetStmtCount();
+        broker.clearCache();
+        broker.beginTransaction();
+        Person pers = new Person();
+        broker.store(pers);
+        //SELECT A0.VERSION,A0.GRAB_SIZE,A0.MAX_KEY,A0.FIELDNAME,A0.TABLENAME FROM OJB_HL_SEQ A0 WHERE (A0.TABLENAME LIKE  'SEQ_PERSON' ) AND A0.FIELDNAME LIKE  'ID'
+        //SELECT VERSION,GRAB_SIZE,MAX_KEY,FIELDNAME,TABLENAME FROM OJB_HL_SEQ WHERE TABLENAME = 'SEQ_PERSON'  AND FIELDNAME = 'ID'
+        //UPDATE OJB_HL_SEQ SET MAX_KEY='150',GRAB_SIZE='20',VERSION='7' WHERE TABLENAME = 'SEQ_PERSON'  AND FIELDNAME = 'ID'  AND VERSION = '6'
+        // commit|
+        //SELECT LASTNAME,FIRSTNAME,ID FROM PERSON WHERE ID = '131'
+        //INSERT INTO PERSON (ID,FIRSTNAME,LASTNAME) VALUES ('131','','')
+        logStmtCount("Storing first person");  // 6. oma: why so many? double lookup in OJB_HL_SEQ !
+        resetStmtCount();
+        pers = new Person();
+        broker.store(pers, ObjectModification.INSERT);
+        broker.commitTransaction();
+        // INSERT INTO PERSON (ID,FIRSTNAME,LASTNAME) VALUES ('172','','')
+        // commit
+        assertStmtCount("insert second Person with empty collection.", 2);
     }
-    myPB.commitTransaction();
-  }
 
-  /**
-   * retrieve Product group number 5 and its 12 articles
-   */
-  public void testProductGroup5()
-  {
-    resetStmtCount();
-    myPB.clearCache();
-    myPB.beginTransaction();
-    ProductGroup pg =
-            (ProductGroup)myPB.getObjectByIdentity(myPB.serviceIdentity().buildIdentity(null, ProductGroup.class, new Object[] {new Integer(5)}));
-    assertStmtCount("getObjectByIdentity", 4);
-    resetStmtCount();
-    List articles = pg.getAllArticles();
-    assertEquals(12, articles.size());
-    assertStmtCount("getAllArticles", 0);
-    resetStmtCount();
-    for (Iterator articleIterator = articles.iterator(); articleIterator.hasNext(); )
+    /**
+     * insert a person with a project collection with one fresh element.
+     * note: the <em>first</em> Person and Project require extra lookups
+     * in the table OJB_HL_SEQ.
+     */
+    public void testPersonSingleProjectInsert()
     {
-      InterfaceArticle article = (InterfaceArticle)articleIterator.next();
-      logger.info("articleId " + article.getArticleId());
-      // SELECT ... FROM Artikel WHERE Artikel_Nr = ...
+        resetStmtCount();
+        broker.clearCache();
+        broker.beginTransaction();
+        Person pers = new Person();
+        pers.setFirstname("testPersonSingleProjectInsert(1)");
+        Project proj = new Project();
+        proj.setTitle("testPersonSingleProjectInsert(1)");
+        broker.store(pers);
+        broker.store(proj);
+        logStmtCount("Storing first person and first project");
+        // 12. oma: why so many? double lookup in OJB_HL_SEQ !
+        resetStmtCount();
+        pers = new Person();
+        Project proj2 = new Project();
+        proj2.setTitle("proj2");
+        Collection projects = Arrays.asList(new Project[]{proj2});
+        pers.setProjects(projects);
+        broker.store(pers, ObjectModification.INSERT);
+        broker.commitTransaction();
+        /*
+        new:
+        INSERT INTO PERSON (ID,FIRSTNAME,LASTNAME) VALUES ('200001','testPersonSingleProjectInsert(1)','')
+        INSERT INTO PROJECT (ID,TITLE,DESCRIPTION) VALUES ('200001','testPersonSingleProjectInsert(1)','')
+        INSERT INTO PERSON (ID,FIRSTNAME,LASTNAME) VALUES ('200002','','')
+        INSERT INTO PROJECT (ID,TITLE,DESCRIPTION) VALUES ('200002','proj2','')
+        INSERT INTO PERSON_PROJECT (PERSON_ID,PROJECT_ID) VALUES ('200002','200002')
+        */
+        // old:
+        // INSERT INTO PERSON (ID,FIRSTNAME,LASTNAME) VALUES ('292','','')
+        // SELECT TITLE,DESCRIPTION,ID FROM PROJECT WHERE ID = '88'
+        // INSERT INTO PROJECT (ID,TITLE,DESCRIPTION) VALUES ('88','proj2','')
+        // SELECT PROJECT_ID FROM PERSON_PROJECT WHERE PERSON_ID='292'      // BRJ: check mn-implementor
+        // INSERT INTO PERSON_PROJECT (PERSON_ID,PROJECT_ID) VALUES ('292','88')
+        // commit|
+        assertStmtCount("insert second Person, singleton collection.", 4);
     }
-    assertStmtCount("collect ids: ", 1);  // batch retrieval!
-    resetStmtCount();
-    String str = pg.toString();
-    // SELECT ... FROM Kategorien WHERE Kategorie_Nr = '5'
-    // SELECT ... FROM Artikel A0 WHERE Kategorie_Nr =  '5'
-    // SELECT ... FROM BOOKS A0   WHERE Kategorie_Nr =  '5'
-    // SELECT ... FROM CDS A0     WHERE Kategorie_Nr =  '5'
-    assertStmtCount("toString", 4);
-    logger.info(str);
-    myPB.commitTransaction();
-  }
-
-  /*
-  * insert a person with an empty project collection.
-  * note: the <em>first</em> Person and Project require extra lookups
-  * in the table OJB_HL_SEQ.
-  */
-  public void testPersonEmptyProjectsInsert()
-  {
-    resetStmtCount();
-    myPB.clearCache();
-    myPB.beginTransaction();
-    Person pers = new Person();
-    myPB.store(pers);
-    //SELECT A0.VERSION,A0.GRAB_SIZE,A0.MAX_KEY,A0.FIELDNAME,A0.TABLENAME FROM OJB_HL_SEQ A0 WHERE (A0.TABLENAME LIKE  'SEQ_PERSON' ) AND A0.FIELDNAME LIKE  'ID'
-    //SELECT VERSION,GRAB_SIZE,MAX_KEY,FIELDNAME,TABLENAME FROM OJB_HL_SEQ WHERE TABLENAME = 'SEQ_PERSON'  AND FIELDNAME = 'ID'
-    //UPDATE OJB_HL_SEQ SET MAX_KEY='150',GRAB_SIZE='20',VERSION='7' WHERE TABLENAME = 'SEQ_PERSON'  AND FIELDNAME = 'ID'  AND VERSION = '6'
-    // commit|
-    //SELECT LASTNAME,FIRSTNAME,ID FROM PERSON WHERE ID = '131'
-    //INSERT INTO PERSON (ID,FIRSTNAME,LASTNAME) VALUES ('131','','')
-    logStmtCount("Storing first person");  // 6. oma: why so many? double lookup in OJB_HL_SEQ !
-    resetStmtCount();
-    pers = new Person();
-    myPB.store(pers, ObjectModification.INSERT);
-    myPB.commitTransaction();
-    // INSERT INTO PERSON (ID,FIRSTNAME,LASTNAME) VALUES ('172','','')
-    // commit
-    assertStmtCount("insert second Person with empty collection.", 2);
-  }
-
-  /**
-   * insert a person with a project collection with one fresh element.
-   * note: the <em>first</em> Person and Project require extra lookups
-   * in the table OJB_HL_SEQ.
-   */
-  public void testPersonSingleProjectInsert()
-  {
-    resetStmtCount();
-    myPB.clearCache();
-    myPB.beginTransaction();
-    Person pers = new Person();
-    pers.setFirstname("testPersonSingleProjectInsert(1)");
-    Project proj = new Project();
-    proj.setTitle("testPersonSingleProjectInsert(1)");
-    myPB.store(pers);
-    myPB.store(proj);
-    logStmtCount("Storing first person and first project");
-    // 12. oma: why so many? double lookup in OJB_HL_SEQ !
-    resetStmtCount();
-    pers = new Person();
-    Project proj2 = new Project();
-    proj2.setTitle("proj2");
-    Collection projects = Arrays.asList(new Project[] {proj2});
-    pers.setProjects(projects);
-    myPB.store(pers, ObjectModification.INSERT);
-    myPB.commitTransaction();
-    // INSERT INTO PERSON (ID,FIRSTNAME,LASTNAME) VALUES ('292','','')
-    // SELECT TITLE,DESCRIPTION,ID FROM PROJECT WHERE ID = '88'
-    // INSERT INTO PROJECT (ID,TITLE,DESCRIPTION) VALUES ('88','proj2','')
-    // SELECT PROJECT_ID FROM PERSON_PROJECT WHERE PERSON_ID='292'      // BRJ: check mn-implementor
-    // INSERT INTO PERSON_PROJECT (PERSON_ID,PROJECT_ID) VALUES ('292','88')
-    // commit|
-    assertStmtCount("insert second Person, singleton collection.", 6);
-  }
-
-
-  public void testPrefetched()
-  {
-      ClassDescriptor cldProductGroup = myPB.getClassDescriptor(ProductGroup.class);
-      ClassDescriptor cldArticle = myPB.getClassDescriptor(Article.class);
-      Class productGroupProxy = cldProductGroup.getProxyClass();
-      Class articleProxy = cldArticle.getProxyClass();
-
-      //
-      // use ProductGroup and Articles with disabled Proxy
-      //
-      cldProductGroup.setProxyClass(null);
-      cldProductGroup.setProxyClassName(null);
-      cldArticle.setProxyClass(null);
-      cldArticle.setProxyClassName(null);
-
-      resetStmtCount();
-      myPB.clearCache();
-
-
-      myPB.beginTransaction();
-
-      Criteria crit = new Criteria();
-      crit.addLessOrEqualThan("groupId", new Integer(5));
-      QueryByCriteria q = QueryFactory.newQuery(ProductGroup.class, crit);
-      q.addOrderByDescending("groupId");
-      q.addPrefetchedRelationship("allArticlesInGroup");
-
-      Collection results = myPB.getCollectionByQuery(q);
-      assertEquals("Number of ProductGroups", 5, results.size());
-      Collection articles = new ArrayList();
-      for (Iterator it = results.iterator();it.hasNext();)
-      {
-          ProductGroup p = (ProductGroup) it.next();
-          articles.addAll(p.getAllArticles());
-      }
-      assertEquals("Total number of Articles", 59, articles.size());
-
-      //SELECT A0.KategorieName,A0.Kategorie_Nr,A0.Beschreibung FROM Kategorien A0 WHERE A0.Kategorie_Nr <=  '5' 
-      //SELECT ... FROM CDS A0 WHERE A0.Kategorie_Nr IN ( '1' , '4' , '2' , '5' , '3' ) 
-      //SELECT ... FROM Artikel A0 WHERE A0.Kategorie_Nr IN ( '1' , '4' , '2' , '5' , '3' ) 
-      //SELECT ... FROM BOOKS A0 WHERE A0.Kategorie_Nr IN ( '1' , '4' , '2' , '5' , '3' ) 
-      assertStmtCount("Read Prefetched.", 4);
-      myPB.commitTransaction();
-
-      //
-      // Reset original Proxy settings
-      //
-      cldProductGroup.setProxyClass(productGroupProxy);
-      cldProductGroup.setProxyClassName(productGroupProxy.getName());
-      cldArticle.setProxyClass(articleProxy);
-      cldArticle.setProxyClassName(articleProxy.getName());
-
-  }
-
-  public void testNonPrefetched()
-  {
-      ClassDescriptor cldProductGroup = myPB.getClassDescriptor(ProductGroup.class);
-      ClassDescriptor cldArticle = myPB.getClassDescriptor(Article.class);
-      Class productGroupProxy = cldProductGroup.getProxyClass();
-      Class articleProxy = cldArticle.getProxyClass();
-
-      //
-      // use ProductGroup and Articles with disabled Proxy
-      //
-      cldProductGroup.setProxyClass(null);
-      cldProductGroup.setProxyClassName(null);
-      cldArticle.setProxyClass(null);
-      cldArticle.setProxyClassName(null);
-
-      resetStmtCount();
-      myPB.clearCache();
-
-      myPB.beginTransaction();
-
-      Criteria crit = new Criteria();
-      crit.addLessOrEqualThan("groupId", new Integer(5));
-      QueryByCriteria q = QueryFactory.newQuery(ProductGroup.class, crit);
-      q.addOrderByDescending("groupId");
-
-      Collection results = myPB.getCollectionByQuery(q);
-      assertEquals("Number of ProductGroups", 5, results.size());
-      Collection articles = new ArrayList();
-      for (Iterator it = results.iterator();it.hasNext();)
-      {
-          ProductGroup p = (ProductGroup) it.next();
-          articles.addAll(p.getAllArticles());
-      }
-      assertEquals("Total number of Articles", 59, articles.size());
-
-      //SELECT A0.KategorieName,A0.Kategorie_Nr,A0.Beschreibung FROM Kategorien A0 WHERE A0.Kategorie_Nr <=  '5' 
-      //SELECT ... FROM CDS A0 WHERE A0.Kategorie_Nr =  '5' 
-      //SELECT ... FROM Artikel A0 WHERE A0.Kategorie_Nr =  '5'  
-      //SELECT ... FROM BOOKS A0 WHERE A0.Kategorie_Nr =  '5'  
-      //SELECT ... FROM CDS A0 WHERE A0.Kategorie_Nr =  '4' 
-      //SELECT ... FROM Artikel A0 WHERE A0.Kategorie_Nr =  '4'  
-      //SELECT ... FROM BOOKS A0 WHERE A0.Kategorie_Nr =  '4'
-      //...
-      //SELECT ... FROM CDS A0 WHERE A0.Kategorie_Nr =  '1' 
-      //SELECT ... FROM Artikel A0 WHERE A0.Kategorie_Nr =  '1'  
-      //SELECT ... FROM BOOKS A0 WHERE A0.Kategorie_Nr =  '1'  
-      assertStmtCount("Read Non-Prefetched.", 16);
-      myPB.commitTransaction();
-
-      //
-      // Reset original Proxy settings
-      //
-      cldProductGroup.setProxyClass(productGroupProxy);
-      cldProductGroup.setProxyClassName(productGroupProxy.getName());
-      cldArticle.setProxyClass(articleProxy);
-      cldArticle.setProxyClassName(articleProxy.getName());
 
-  }
+
+    public void testPrefetched()
+    {
+        ClassDescriptor cldProductGroup = broker.getClassDescriptor(ProductGroup.class);
+        ClassDescriptor cldArticle = broker.getClassDescriptor(Article.class);
+        Class productGroupProxy = cldProductGroup.getProxyClass();
+        Class articleProxy = cldArticle.getProxyClass();
+
+        //
+        // use ProductGroup and Articles with disabled Proxy
+        //
+        cldProductGroup.setProxyClass(null);
+        cldProductGroup.setProxyClassName(null);
+        cldArticle.setProxyClass(null);
+        cldArticle.setProxyClassName(null);
+
+        try
+        {
+            resetStmtCount();
+            broker.clearCache();
+
+
+            broker.beginTransaction();
+
+            Criteria crit = new Criteria();
+            crit.addLessOrEqualThan("groupId", new Integer(5));
+            QueryByCriteria q = QueryFactory.newQuery(ProductGroup.class, crit);
+            q.addOrderByDescending("groupId");
+            q.addPrefetchedRelationship("allArticlesInGroup");
+
+            Collection results = broker.getCollectionByQuery(q);
+            assertEquals("Number of ProductGroups", 5, results.size());
+            Collection articles = new ArrayList();
+            for(Iterator it = results.iterator(); it.hasNext();)
+            {
+                ProductGroup p = (ProductGroup) it.next();
+                articles.addAll(p.getAllArticles());
+            }
+            assertEquals("Total number of Articles", 59, articles.size());
+
+            //SELECT A0.KategorieName,A0.Kategorie_Nr,A0.Beschreibung FROM Kategorien A0 WHERE A0.Kategorie_Nr <=  '5'
+            //SELECT ... FROM CDS A0 WHERE A0.Kategorie_Nr IN ( '1' , '4' , '2' , '5' , '3' )
+            //SELECT ... FROM Artikel A0 WHERE A0.Kategorie_Nr IN ( '1' , '4' , '2' , '5' , '3' )
+            //SELECT ... FROM BOOKS A0 WHERE A0.Kategorie_Nr IN ( '1' , '4' , '2' , '5' , '3' )
+            assertStmtCount("Read Prefetched.", 4);
+            broker.commitTransaction();
+        }
+        finally
+        {
+            //
+            // Reset original Proxy settings
+            //
+            cldProductGroup.setProxyClass(productGroupProxy);
+            cldProductGroup.setProxyClassName(productGroupProxy.getName());
+            cldArticle.setProxyClass(articleProxy);
+            cldArticle.setProxyClassName(articleProxy.getName());
+        }
+    }
+
+    public void testNonPrefetched()
+    {
+        ClassDescriptor cldProductGroup = broker.getClassDescriptor(ProductGroup.class);
+        ClassDescriptor cldArticle = broker.getClassDescriptor(Article.class);
+        Class productGroupProxy = cldProductGroup.getProxyClass();
+        Class articleProxy = cldArticle.getProxyClass();
+
+        //
+        // use ProductGroup and Articles with disabled Proxy
+        //
+        cldProductGroup.setProxyClass(null);
+        cldProductGroup.setProxyClassName(null);
+        cldArticle.setProxyClass(null);
+        cldArticle.setProxyClassName(null);
+
+        resetStmtCount();
+        broker.clearCache();
+
+        broker.beginTransaction();
+
+        Criteria crit = new Criteria();
+        crit.addLessOrEqualThan("groupId", new Integer(5));
+        QueryByCriteria q = QueryFactory.newQuery(ProductGroup.class, crit);
+        q.addOrderByDescending("groupId");
+
+        Collection results = broker.getCollectionByQuery(q);
+        assertEquals("Number of ProductGroups", 5, results.size());
+        Collection articles = new ArrayList();
+        for(Iterator it = results.iterator(); it.hasNext();)
+        {
+            ProductGroup p = (ProductGroup) it.next();
+            articles.addAll(p.getAllArticles());
+        }
+        assertEquals("Total number of Articles", 59, articles.size());
+
+        //SELECT A0.KategorieName,A0.Kategorie_Nr,A0.Beschreibung FROM Kategorien A0 WHERE A0.Kategorie_Nr <=  '5'
+        //SELECT ... FROM CDS A0 WHERE A0.Kategorie_Nr =  '5'
+        //SELECT ... FROM Artikel A0 WHERE A0.Kategorie_Nr =  '5'
+        //SELECT ... FROM BOOKS A0 WHERE A0.Kategorie_Nr =  '5'
+        //SELECT ... FROM CDS A0 WHERE A0.Kategorie_Nr =  '4'
+        //SELECT ... FROM Artikel A0 WHERE A0.Kategorie_Nr =  '4'
+        //SELECT ... FROM BOOKS A0 WHERE A0.Kategorie_Nr =  '4'
+        //...
+        //SELECT ... FROM CDS A0 WHERE A0.Kategorie_Nr =  '1'
+        //SELECT ... FROM Artikel A0 WHERE A0.Kategorie_Nr =  '1'
+        //SELECT ... FROM BOOKS A0 WHERE A0.Kategorie_Nr =  '1'
+        assertStmtCount("Read Non-Prefetched.", 16);
+        broker.commitTransaction();
+
+        //
+        // Reset original Proxy settings
+        //
+        cldProductGroup.setProxyClass(productGroupProxy);
+        cldProductGroup.setProxyClassName(productGroupProxy.getName());
+        cldArticle.setProxyClass(articleProxy);
+        cldArticle.setProxyClassName(articleProxy.getName());
+
+    }
 
 }

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/EmptyCacheCountTest.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/EmptyCacheCountTest.java?view=diff&rev=524317&r1=524316&r2=524317
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/EmptyCacheCountTest.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/EmptyCacheCountTest.java Fri Mar 30 16:10:39 2007
@@ -20,57 +20,21 @@
  */
 public class EmptyCacheCountTest extends AbstractCountTest
 {
-  protected PersistenceBroker myPB;
-
-  private Class old_ObjectCache;
-  private String[] old_CacheFilter;
-
-  private OjbConfiguration getConfig()
-  {
-      return (OjbConfiguration) OjbConfigurator.getInstance().getConfigurationFor(null);
-  }
-
-  /**
-   * switch cache to {@link ObjectCacheEmptyImpl}.
-   * @throws Exception
-   */
-  protected void setUp() throws Exception
-  {
-    //ObjectCacheFactory.getInstance().setClassToServe(ObjectCacheEmptyImpl.class);
-    super.setUp();
-    myPB = PersistenceBrokerFactory.defaultPersistenceBroker();
-    //old_CacheFilter = getConfig().getCacheFilters();
-    //old_ObjectCache = ObjectCacheFactory.getInstance().getClassToServe();
-  }
-
-  /**
-   * undo Cache change.
-   * @throws Exception
-   */
-  protected void tearDown() throws Exception
-  {
-    //getConfig().setCacheFilters(old_CacheFilter);
-    //ObjectCacheFactory.getInstance().setClassToServe(old_ObjectCache);
-    super.tearDown();
-  }
-
-  /**
-   * retrieve one CdArticle twice.
-   */
-  public void testAccessArticleTwice()
-  {
-    resetStmtCount();
-    myPB.clearCache();
-    myPB.beginTransaction();
-    Identity id = myPB.serviceIdentity().buildIdentity(null, InterfaceArticle.class, new Object[] {new Integer(200)});
-    logger.info(id.toString());
-    assertNull(id.getObjectsRealClass());
-    myPB.getObjectByIdentity(id);
-    assertEquals(CdArticle.class, id.getObjectsRealClass());
-    assertStmtCount("access one cd", 1, 3); // 3 tables: Artikel, BOOKS, CDS
-    resetStmtCount();
-    myPB.getObjectByIdentity(id);
-    assertStmtCount("access one cd again", 1); // lookup again, but exploit objectsRealClass
-    myPB.commitTransaction();
-  }
+    /**
+     * retrieve one CdArticle twice.
+     */
+    public void testAccessArticleTwice()
+    {
+        resetStmtCount();
+        broker.clearCache();
+        broker.beginTransaction();
+        Identity id = broker.serviceIdentity().buildIdentity(InterfaceArticle.class, new Integer(200));
+        InterfaceArticle result = (InterfaceArticle) broker.getObjectByIdentity(id);
+        assertTrue(result instanceof CdArticle);
+        assertStmtCount("access one cd", 1, 3); // 3 tables: Artikel, BOOKS, CDS
+        resetStmtCount();
+        broker.getObjectByIdentity(id);
+        assertStmtCount("access one cd again", 0, 1); // lookup from session cache expected
+        broker.commitTransaction();
+    }
 }

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/SimpleCountTest.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/SimpleCountTest.java?view=diff&rev=524317&r1=524316&r2=524317
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/SimpleCountTest.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/SimpleCountTest.java Fri Mar 30 16:10:39 2007
@@ -1,88 +1,87 @@
 package org.apache.ojb.broker.sqlcount;
 
+import java.util.Collection;
+
 import org.apache.ojb.broker.Identity;
-import org.apache.ojb.broker.PersistenceBroker;
-import org.apache.ojb.broker.PersistenceBrokerFactory;
 import org.apache.ojb.broker.Person;
 
-import java.util.Collection;
-
 /**
  * @author <a href="mailto:om@ppi.de">Oliver Matz</a>
  * @version $Id$
  */
-public class SimpleCountTest
-        extends org.apache.ojb.broker.sqlcount.AbstractCountTest
+public class SimpleCountTest extends AbstractCountTest
 {
-  private Identity aId;
-
-  protected PersistenceBroker myPB;
+    private Identity oid;
 
-  protected void setUp() throws Exception
-  {
-    super.setUp();
-    resetStmtCount();
-    myPB = PersistenceBrokerFactory.defaultPersistenceBroker();
-    myPB.beginTransaction();
-    Person a = new Person();
-    a.setFirstname("A");
-    myPB.store(a);
-    aId = myPB.serviceIdentity().buildIdentity(a);
-    myPB.commitTransaction();
-    logStmtCount("Wrote test data");
-  }
-
-  /**
-   * very simple test: retrieve a person from the database
-   */
-  public void testRetrievePerson()
-  {
-    resetStmtCount();
-    myPB.clearCache();
-    logger.info("begin txn");
-    myPB.beginTransaction();
-    logger.info("retrieving person");
-    Person a = (Person)myPB.getObjectByIdentity(aId);
-    // SELECT ... FROM PERSON WHERE ID = ..
-    // SELECT ... FROM PERSON_PROJECT WHERE PERSON_ID = ..
-    // SELECT ... FROM PROJECT, PERSON_PROJECT WHERE ...
-    logger.info("comitting txn");
-    // COMMIT
-    myPB.commitTransaction();
-    assertStmtCount("retrieve Person by Identity", 4);
-  }
-
-  public void testRetrievePersonTwice()
-  {
-    resetStmtCount();
-    myPB.clearCache();
-    logger.info("begin txn");
-    myPB.beginTransaction();
-    Person a = (Person)myPB.getObjectByIdentity(aId);   // see above
-    assertStmtCount("retrieve Person by Identity", 3);
-    resetStmtCount();
-    Person b = (Person)myPB.getObjectByIdentity(aId);   // should use cache
-    assertSame(a, b);
-    assertStmtCount("retrieve Person 2nd time", 0);
-    myPB.commitTransaction();
-  }
-
-  public void testRetrieveEmptyProjects()
-  {
-    resetStmtCount();
-    myPB.clearCache();
-    logger.info("begin txn");
-    myPB.beginTransaction();
-    Person a = (Person)myPB.getObjectByIdentity(aId);   // see above
-    assertStmtCount("retrieve Person by Identity", 3);
-    resetStmtCount();
-    logger.info("accessing projects");
-    Collection c = a.getProjects();
-    assertEquals(0, c.size());
-    assertStmtCount("accessing non-proxy collection", 0);
-    Collection d = a.getRoles();
-    assertStmtCount("accessing proxy-collection", 0);
-    assertEquals(0, d.size());
-    myPB.commitTransaction();
-  }
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        resetStmtCount();
+        prepareTest();
+    }
+
+    private void prepareTest()
+    {
+        broker.beginTransaction();
+        Person a = new Person();
+        a.setFirstname("A");
+        broker.store(a);
+        oid = broker.serviceIdentity().buildIdentity(a);
+        broker.commitTransaction();
+        logStmtCount("Wrote test data");
+    }
+
+    /**
+     * very simple test: retrieve a person from the database
+     */
+    public void testRetrievePerson()
+    {
+        resetStmtCount();
+        broker.clearCache();
+        logger.info("begin txn");
+        broker.beginTransaction();
+        logger.info("retrieving person");
+        Person a = (Person) broker.getObjectByIdentity(oid);
+        // SELECT ... FROM PERSON WHERE ID = ..
+        // SELECT ... FROM PERSON_PROJECT WHERE PERSON_ID = ..
+        // SELECT ... FROM PROJECT, PERSON_PROJECT WHERE ...
+        logger.info("comitting txn");
+        // COMMIT
+        broker.commitTransaction();
+        assertStmtCount("retrieve Person by Identity", 4);
+    }
+
+    public void testRetrievePersonTwice()
+    {
+        resetStmtCount();
+        broker.clearCache();
+        logger.info("begin txn");
+        broker.beginTransaction();
+        Person a = (Person) broker.getObjectByIdentity(oid);   // see above
+        assertStmtCount("retrieve Person by Identity", 3);
+        resetStmtCount();
+        Person b = (Person) broker.getObjectByIdentity(oid);   // should use cache
+        assertSame(a, b);
+        assertStmtCount("retrieve Person 2nd time", 0);
+        broker.commitTransaction();
+    }
+
+    public void testRetrieveEmptyProjects()
+    {
+        resetStmtCount();
+        broker.clearCache();
+        logger.info("begin txn");
+        broker.beginTransaction();
+        Person a = (Person) broker.getObjectByIdentity(oid);   // see above
+        assertStmtCount("retrieve Person by Identity", 3);
+        resetStmtCount();
+        logger.info("accessing projects");
+        Collection c = a.getProjects();
+        assertEquals(0, c.size());
+        assertStmtCount("accessing non-proxy collection", 0);
+        Collection d = a.getRoles();
+        assertStmtCount("accessing proxy-collection", 0);
+        assertEquals(0, d.size());
+        broker.commitTransaction();
+    }
 }

Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/TwoLevelSimpleTest.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/TwoLevelSimpleTest.java?view=diff&rev=524317&r1=524316&r2=524317
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/TwoLevelSimpleTest.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/sqlcount/TwoLevelSimpleTest.java Fri Mar 30 16:10:39 2007
@@ -9,8 +9,6 @@
 import org.apache.ojb.broker.PersistenceBroker;
 import org.apache.ojb.broker.PersistenceBrokerFactory;
 import org.apache.ojb.broker.cloneable.CloneableGroup;
-import org.apache.ojb.broker.util.configuration.impl.OjbConfiguration;
-import org.apache.ojb.broker.util.configuration.impl.OjbConfigurator;
 
 /**
  * @author <a href="mailto:om@ppi.de">Oliver Matz</a>
@@ -18,64 +16,34 @@
  */
 public class TwoLevelSimpleTest extends AbstractCountTest
 {
-  private Class old_ObjectCache;
-  private String[] old_CacheFilter;
 
-  private OjbConfiguration getConfig()
-  {
-      return (OjbConfiguration) OjbConfigurator.getInstance().getConfigurationFor(null);
-  }
-  /**
-   * switch cache to {@link org.apache.ojb.broker.cache.ObjectCacheTwoLevelImpl}.
-   * @throws Exception
-   */
-  protected void setUp() throws Exception
-  {
-    //ObjectCacheFactory.getInstance().setClassToServe(ObjectCacheTwoLevelImpl.class);
-    //ObjectCacheFactory.getInstance().setClassToServe(org.apache.ojb.broker.cache.ObjectCachePerBrokerImpl.class);
-    super.setUp();
-    //old_CacheFilter = getConfig().getCacheFilters();
-    //old_ObjectCache = ObjectCacheFactory.getInstance().getClassToServe();
-  }
-
-  /**
-   * undo Cache change.
-   * @throws Exception
-   */
-  protected void tearDown() throws Exception
-  {
-    //getConfig().setCacheFilters(old_CacheFilter);
-    //ObjectCacheFactory.getInstance().setClassToServe(old_ObjectCache);
-    super.tearDown();
-  }
-
-  /**
-   * retrieve one CdArticle twice.
-   */
-  public void testAccessArticleTwice()
-  {
-    PersistenceBroker pb0, pb1;
-    pb0 = PersistenceBrokerFactory.defaultPersistenceBroker();
-    pb1 = PersistenceBrokerFactory.defaultPersistenceBroker();
-    assertNotSame(pb0, pb1);
-
-    resetStmtCount();
-    pb0.clearCache();
-    pb0.beginTransaction();
-    Identity id = pb0.serviceIdentity().buildIdentity(null, CloneableGroup.class, new Object[] {new Integer(1)});
-    logger.info(id.toString());
-    assertNull(id.getObjectsRealClass());
-    Object group0 = pb0.getObjectByIdentity(id);
-    assertNotNull(group0);
-    assertEquals(CloneableGroup.class, id.getObjectsRealClass());
-    assertStmtCount("access one group", 1);
-    pb0.commitTransaction();
-
-    resetStmtCount();
-    pb1.beginTransaction();
-    Object group1 = pb1.getObjectByIdentity(id);
-    assertStmtCount("access one group again", 0); // lookup again, 2nd level hit, no SQL access.
-    assertNotSame(group0, group1);
-    pb1.commitTransaction();
-  }
+    /**
+     * retrieve one CdArticle twice.
+     */
+    public void testAccessArticleTwice()
+    {
+        PersistenceBroker pb0, pb1;
+        pb0 = PersistenceBrokerFactory.defaultPersistenceBroker();
+        pb1 = PersistenceBrokerFactory.defaultPersistenceBroker();
+        assertNotSame(pb0, pb1);
+
+        resetStmtCount();
+        pb0.clearCache();
+        pb0.beginTransaction();
+        Identity id = pb0.serviceIdentity().buildIdentity(null, CloneableGroup.class, new Object[]{new Integer(1)});
+        logger.info(id.toString());
+        assertNull(id.getObjectsRealClass());
+        Object group0 = pb0.getObjectByIdentity(id);
+        assertNotNull(group0);
+        assertEquals(CloneableGroup.class, id.getObjectsRealClass());
+        assertStmtCount("access one group", 1);
+        pb0.commitTransaction();
+
+        resetStmtCount();
+        pb1.beginTransaction();
+        Object group1 = pb1.getObjectByIdentity(id);
+        assertStmtCount("access one group again", 0); // lookup again, 2nd level hit, no SQL access.
+        assertNotSame(group0, group1);
+        pb1.commitTransaction();
+    }
 }



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