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 2003/06/03 02:05:37 UTC

cvs commit: db-ojb/src/ejb/org/apache/ojb/ejb CommonTestClient.java VOHelper.java CategoryVO.java ArticleVO.java ArticleManagerPBBean.java AllTests.java

arminw      2003/06/02 17:05:37

  Modified:    src/ejb/org/apache/ojb/ejb VOHelper.java CategoryVO.java
                        ArticleVO.java ArticleManagerPBBean.java
                        AllTests.java
  Added:       src/ejb/org/apache/ojb/ejb CommonTestClient.java
  Log:
  add new test case using references
  
  Revision  Changes    Path
  1.6       +12 -2     db-ojb/src/ejb/org/apache/ojb/ejb/VOHelper.java
  
  Index: VOHelper.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/VOHelper.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- VOHelper.java	10 Jan 2003 16:52:22 -0000	1.5
  +++ VOHelper.java	3 Jun 2003 00:05:37 -0000	1.6
  @@ -88,11 +88,21 @@
   
       public static ArticleVO createNewArticle(int counter)
       {
  +        return createNewArticle("A simple test article ", counter);
  +    }
  +
  +    public static ArticleVO createNewArticle(String name, int counter)
  +    {
           ArticleVO a = new ArticleVO();
  -        a.setName("New Performance Article " + counter);
  +        a.setName(name);
           a.setPrice(new BigDecimal(0.45d * counter));
  -        a.setDescription("description " + counter);
  +        a.setDescription("test article description " + counter);
           return a;
  +    }
  +
  +    public static CategoryVO createNewCategory(String name)
  +    {
  +        return new CategoryVO(null, name, "this is a test category");
       }
   
       public static PersonVO createNewPerson(int counter)
  
  
  
  1.2       +13 -12    db-ojb/src/ejb/org/apache/ojb/ejb/CategoryVO.java
  
  Index: CategoryVO.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/CategoryVO.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CategoryVO.java	10 Jan 2003 16:52:22 -0000	1.1
  +++ CategoryVO.java	3 Jun 2003 00:05:37 -0000	1.2
  @@ -3,6 +3,7 @@
   import org.apache.commons.lang.builder.ToStringBuilder;
   import org.apache.commons.lang.builder.ToStringStyle;
   
  +import java.io.Serializable;
   import java.util.Collection;
   
   /**
  @@ -10,16 +11,16 @@
    * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
    * @version $Id$
    */
  -public class CategoryVO
  +public class CategoryVO implements Serializable
   {
  -    private Integer categoryId;
  +    private Integer objId;
       private String categoryName;
       private String description;
       private Collection assignedArticles;
   
       public CategoryVO(Integer categoryId, String categoryName, String description)
       {
  -        this.categoryId = categoryId;
  +        this.objId = categoryId;
           this.categoryName = categoryName;
           this.description = description;
       }
  @@ -38,14 +39,14 @@
           this.assignedArticles = assignedArticles;
       }
   
  -    public Integer getCategoryId()
  +    public Integer getObjId()
       {
  -        return categoryId;
  +        return objId;
       }
   
  -    public void setCategoryId(Integer categoryId)
  +    public void setObjId(Integer objId)
       {
  -        this.categoryId = categoryId;
  +        this.objId = objId;
       }
   
       public String getCategoryName()
  @@ -71,10 +72,10 @@
       public String toString()
       {
           ToStringBuilder buf = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE);
  -        buf.append("categoryId", categoryId).
  -        append("categoryName", categoryName).
  -        append("description", description).
  -        append("assignedArticles", assignedArticles);
  +        buf.append("objId", objId).
  +                append("categoryName", categoryName).
  +                append("description", description).
  +                append("assignedArticles", assignedArticles);
           return buf.toString();
       }
   }
  
  
  
  1.2       +8 -9      db-ojb/src/ejb/org/apache/ojb/ejb/ArticleVO.java
  
  Index: ArticleVO.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/ArticleVO.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ArticleVO.java	10 Jan 2003 16:52:22 -0000	1.1
  +++ ArticleVO.java	3 Jun 2003 00:05:37 -0000	1.2
  @@ -1,10 +1,9 @@
   package org.apache.ojb.ejb;
   
   import org.apache.commons.lang.builder.ToStringBuilder;
  -import org.apache.commons.lang.builder.ToStringStyle;
   
  -import java.math.BigDecimal;
   import java.io.Serializable;
  +import java.math.BigDecimal;
   
   /**
    *
  @@ -95,13 +94,13 @@
   
       public String toString()
       {
  -        ToStringBuilder buf = new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE);
  +        ToStringBuilder buf = new ToStringBuilder(this);
           buf.append("articleId", articleId).
  -        append("name", name).
  -        append("description", description).
  -        append("price", price).
  -        append("categoryId", categoryId).
  -        append("category", category);
  +                append("name", name).
  +                append("description", description).
  +                append("price", price).
  +                append("categoryId", categoryId).
  +                append("category", category);
           return buf.toString();
       }
   }
  
  
  
  1.6       +31 -2     db-ojb/src/ejb/org/apache/ojb/ejb/ArticleManagerPBBean.java
  
  Index: ArticleManagerPBBean.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/ArticleManagerPBBean.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ArticleManagerPBBean.java	10 Jan 2003 16:52:22 -0000	1.5
  +++ ArticleManagerPBBean.java	3 Jun 2003 00:05:37 -0000	1.6
  @@ -109,6 +109,14 @@
       /**
        * @ejb:interface-method
        */
  +    public CategoryVO storeCategory(CategoryVO category)
  +    {
  +        return (CategoryVO) this.storeObject(category);
  +    }
  +
  +    /**
  +     * @ejb:interface-method
  +     */
       public Collection storeArticles(Collection articles)
       {
           return this.storeObjects(articles);
  @@ -166,9 +174,30 @@
           PersistenceBroker broker = getBroker();
           Criteria criteria = new Criteria();
           if (articleName != null) criteria.addEqualTo("articleName", articleName);
  -        Query q = new QueryByCriteria(ArticleVO.class, null);
  +        Query q = new QueryByCriteria(ArticleVO.class, criteria);
           Collection result = broker.getCollectionByQuery(q);
           broker.close();
  +        return result;
  +    }
  +
  +    /**
  +     * @ejb:interface-method
  +     */
  +    public Collection getCategoryByName(String categoryName)
  +    {
  +        PersistenceBroker broker = getBroker();
  +        Collection result;
  +        try
  +        {
  +            Criteria criteria = new Criteria();
  +            if (categoryName != null) criteria.addEqualTo("categoryName", categoryName);
  +            Query q = new QueryByCriteria(CategoryVO.class, criteria);
  +            result = broker.getCollectionByQuery(q);
  +        }
  +        finally
  +        {
  +            if (broker != null) broker.close();
  +        }
           return result;
       }
   }
  
  
  
  1.4       +2 -1      db-ojb/src/ejb/org/apache/ojb/ejb/AllTests.java
  
  Index: AllTests.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/AllTests.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AllTests.java	10 Jan 2003 11:33:09 -0000	1.3
  +++ AllTests.java	3 Jun 2003 00:05:37 -0000	1.4
  @@ -82,6 +82,7 @@
           suite.addTest(new TestSuite(ODMGClient.class));
           suite.addTest(new TestSuite(PersonArticleClient.class));
           suite.addTest(new TestSuite(PersonArticleClientODMG.class));
  +        suite.addTest(new TestSuite(CommonTestClient.class));
           return suite;
       }
   }
  
  
  
  1.1                  db-ojb/src/ejb/org/apache/ojb/ejb/CommonTestClient.java
  
  Index: CommonTestClient.java
  ===================================================================
  package org.apache.ojb.ejb;
  
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache ObjectRelationalBridge" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache ObjectRelationalBridge", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  import junit.framework.TestCase;
  
  import javax.ejb.EJBHome;
  import javax.rmi.PortableRemoteObject;
  import java.util.ArrayList;
  import java.util.Collection;
  
  /**
   * Common test client class.
   *
   * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
   * @version $Id: CommonTestClient.java,v 1.1 2003/06/03 00:05:37 arminw Exp $
   */
  public class CommonTestClient extends TestCase
  {
      ArticleManagerPBRemote articleBean;
  
      public CommonTestClient(String s)
      {
          super(s);
      }
  
      public CommonTestClient()
      {
          super(CommonTestClient.class.getName());
      }
  
      public static void main(String[] args)
      {
          String[] arr = {CommonTestClient.class.getName()};
          junit.textui.TestRunner.main(arr);
      }
  
      public void testCollectionRetrieve() throws Exception
      {
          long timestamp = System.currentTimeMillis();
          String name = "collection_test_" + timestamp;
          CategoryVO cat = VOHelper.createNewCategory("category_" + timestamp);
          // store new category
          cat = articleBean.storeCategory(cat);
          ArrayList articles = new ArrayList();
          for (int i = 0; i < 5; i++)
          {
              ArticleVO art = VOHelper.createNewArticle(name, 1);
              // set category
              art.setCategory(cat);
              // store article
              art = articleBean.storeArticle(art);
              articles.add(art);
          }
          // set article collection
          cat.setAssignedArticles(articles);
          // persist updated category
          cat = articleBean.storeCategory(cat);
          assertNotNull(cat.getObjId());
          assertNotNull(cat.getAssignedArticles());
          assertEquals("Wrong number of referenced articles found", 5, cat.getAssignedArticles().size());
  
          Collection result = articleBean.getCategoryByName("category_" + timestamp);
          assertNotNull(result);
          assertEquals(1, result.size());
          cat = (CategoryVO) result.iterator().next();
          Collection articlesCol = cat.getAssignedArticles();
          assertNotNull(articlesCol);
          assertEquals("Wrong number of referenced articles found", 5, articlesCol.size());
      }
  
      protected void setUp() throws Exception
      {
          super.setUp();
          init();
      }
  
      protected void init() throws Exception
      {
          try
          {
              Object object = PortableRemoteObject.narrow(
                      ContextHelper.getContext().lookup(ArticleManagerPBHome.JNDI_NAME), EJBHome.class);
              articleBean = (ArticleManagerPBRemote) ((ArticleManagerPBHome) object).create();
              System.out.println("Bean found: " + articleBean);
          }
          catch (Exception e)
          {
              e.printStackTrace();
              throw e;
          }
      }
  
  }