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/13 18:59:14 UTC

cvs commit: db-ojb/src/schema ojbtest-schema.xml

arminw      2003/06/13 09:59:14

  Modified:    src/test/org/apache/ojb repository_junit.xml
               src/test/org/apache/ojb/broker AbstractExtentClassTest.java
               src/schema ojbtest-schema.xml
  Log:
  add more tests
  
  Revision  Changes    Path
  1.72      +62 -6     db-ojb/src/test/org/apache/ojb/repository_junit.xml
  
  Index: repository_junit.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/repository_junit.xml,v
  retrieving revision 1.71
  retrieving revision 1.72
  diff -u -r1.71 -r1.72
  --- repository_junit.xml	13 Jun 2003 10:11:53 -0000	1.71
  +++ repository_junit.xml	13 Jun 2003 16:59:13 -0000	1.72
  @@ -4190,9 +4190,36 @@
       <!--      abstract collections test                    -->
       <!-- ************************************************* -->
       <class-descriptor
  -    class="org.apache.ojb.broker.AbstractExtentClassTest$AbstractX">
  +    class="org.apache.ojb.broker.AbstractExtentClassTest$AbstractIF_X">
  +        <extent-class class-ref="org.apache.ojb.broker.AbstractExtentClassTest$AbstractIF_Y" />
  +    </class-descriptor>
  +
  +    <class-descriptor
  +    class="org.apache.ojb.broker.AbstractExtentClassTest$AbstractIF_Y">
  +        <extent-class class-ref="org.apache.ojb.broker.AbstractExtentClassTest$ConcreteZ" />
  +    </class-descriptor>
  +
  +    <class-descriptor
  +    class="org.apache.ojb.broker.AbstractExtentClassTest$ConcreteZ"
  +    table="ABSTRACT_COLLECTION_Z">
  +
  +        <field-descriptor
  +        name="id"
  +        column="OBJ_ID"
  +        jdbc-type="INTEGER"
  +        primarykey="true"
  +        autoincrement="true"/>
   
  -        <extent-class class-ref="org.apache.ojb.broker.AbstractExtentClassTest$AbstractY" />
  +        <field-descriptor
  +            name="name"
  +            column="NAME"
  +            jdbc-type="VARCHAR"
  +        />
  +
  +        <field-descriptor
  +        name="someValue"
  +        column="SOMEVALUE"
  +        jdbc-type="INTEGER"/>
   
           <field-descriptor
           name="containerId"
  @@ -4201,18 +4228,41 @@
       </class-descriptor>
   
       <class-descriptor
  -    class="org.apache.ojb.broker.AbstractExtentClassTest$AbstractY">
  +    class="org.apache.ojb.broker.AbstractExtentClassTest$AbstractClassX">
   
  -        <extent-class class-ref="org.apache.ojb.broker.AbstractExtentClassTest$ConcreteZ" />
  +        <extent-class class-ref="org.apache.ojb.broker.AbstractExtentClassTest$AbstractClassY" />
   
           <field-descriptor
           name="containerId"
           column="CONTAINER_ID"
           jdbc-type="INTEGER"/>
  +
  +        <field-descriptor
  +            name="name"
  +            column="NAME"
  +            jdbc-type="VARCHAR"
  +        />
       </class-descriptor>
   
       <class-descriptor
  -    class="org.apache.ojb.broker.AbstractExtentClassTest$ConcreteZ"
  +    class="org.apache.ojb.broker.AbstractExtentClassTest$AbstractClassY">
  +
  +        <extent-class class-ref="org.apache.ojb.broker.AbstractExtentClassTest$ConcreteZZ" />
  +
  +        <field-descriptor
  +        name="containerId"
  +        column="CONTAINER_ID"
  +        jdbc-type="INTEGER"/>
  +
  +        <field-descriptor
  +            name="name"
  +            column="NAME"
  +            jdbc-type="VARCHAR"
  +        />
  +    </class-descriptor>
  +
  +    <class-descriptor
  +    class="org.apache.ojb.broker.AbstractExtentClassTest$ConcreteZZ"
       table="ABSTRACT_COLLECTION_Z">
   
           <field-descriptor
  @@ -4231,6 +4281,12 @@
           name="containerId"
           column="CONTAINER_ID"
           jdbc-type="INTEGER"/>
  +
  +        <field-descriptor
  +            name="name"
  +            column="NAME"
  +            jdbc-type="VARCHAR"
  +        />
       </class-descriptor>
   
       <class-descriptor
  @@ -4245,7 +4301,7 @@
   
           <collection-descriptor
           name="myXReferences"
  -        element-class-ref="org.apache.ojb.broker.AbstractExtentClassTest$AbstractX"
  +        element-class-ref="org.apache.ojb.broker.AbstractExtentClassTest$AbstractIF_X"
           auto-retrieve="true"
           auto-update="true"
           auto-delete="false">
  
  
  
  1.3       +165 -21   db-ojb/src/test/org/apache/ojb/broker/AbstractExtentClassTest.java
  
  Index: AbstractExtentClassTest.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/AbstractExtentClassTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractExtentClassTest.java	13 Jun 2003 10:58:04 -0000	1.2
  +++ AbstractExtentClassTest.java	13 Jun 2003 16:59:13 -0000	1.3
  @@ -48,15 +48,16 @@
           }
       }
   
  -    public void testStoreRetrieveQuery() throws Exception
  +    public void testStoreRetrieveQueryUsingInterface() throws Exception
       {
  +        String name = "interface_test";
           broker.clearCache();
           broker.beginTransaction();
           // create new XContainer with ConcreteZ reference
           XContainer container = new XContainer();
  -        container.addX(new ConcreteZ());
  -        container.addX(new ConcreteZ());
  -        container.addX(new ConcreteZ());
  +        container.addX(new ConcreteZ(name));
  +        container.addX(new ConcreteZ(name));
  +        container.addX(new ConcreteZ(name));
   
           broker.store(container);
           broker.commitTransaction();
  @@ -70,7 +71,40 @@
   
           broker.clearCache();
           // now test query
  -		Query q = QueryFactory.newQuery(AbstractX.class, (Criteria) null);
  +        Criteria crit = new Criteria();
  +        crit.addLike("name", name);
  +		Query q = QueryFactory.newQuery(AbstractIF_X.class, crit);
  +		Collection results = broker.getCollectionByQuery(q);
  +        assertNotNull(results);
  +        assertTrue(results.size() > 2);
  +    }
  +
  +    public void testStoreRetrieveQueryUsingAbstract() throws Exception
  +    {
  +        String name = "abstract_class_test";
  +        broker.clearCache();
  +        broker.beginTransaction();
  +        // create new XContainer with ConcreteZ reference
  +        XContainer container = new XContainer();
  +        container.addX(new ConcreteZZ(name));
  +        container.addX(new ConcreteZZ(name));
  +        container.addX(new ConcreteZZ(name));
  +
  +        broker.store(container);
  +        broker.commitTransaction();
  +        broker.clearCache();
  +
  +        Identity cont = new Identity(container, broker);
  +        broker.beginTransaction();
  +        Object retContainer = broker.getObjectByIdentity(cont);
  +        // System.out.println("retrieved: " + retContainer);
  +        broker.commitTransaction();
  +
  +        broker.clearCache();
  +        // now test query
  +		Criteria crit = new Criteria();
  +        crit.addLike("name", name);
  +		Query q = QueryFactory.newQuery(AbstractIF_X.class, crit);
   		Collection results = broker.getCollectionByQuery(q);
           assertNotNull(results);
           assertTrue(results.size() > 2);
  @@ -81,39 +115,49 @@
       // inner classes / persistent objects
       //******************************************************************
   
  -    public static abstract class AbstractX
  +    public static abstract interface AbstractIF_X
       {
  -        private int containerId;
  -
  -        public int getContainerId()
  -        {
  -            return containerId;
  -        }
  -
  -        public void setContainerId(int containerId)
  -        {
  -            this.containerId = containerId;
  -        }
  +        public int getContainerId();
  +        public void setContainerId(int containerId);
  +        public void setName(String name);
  +        public String getName();
       }
   
  -    public static abstract class AbstractY extends AbstractX
  +    public static abstract interface AbstractIF_Y extends AbstractIF_X
       {
       }
   
  -    public static class ConcreteZ extends AbstractY
  +    public static class ConcreteZ implements AbstractIF_Y
       {
  +        private int containerId;
           private int someValue;
           private int id;
  +        private String name;
   
           public ConcreteZ()
           {
           }
   
  +        public ConcreteZ(String name)
  +        {
  +            this.name = name;
  +        }
  +
           ConcreteZ(int no)
           {
               someValue = no;
           }
   
  +        public int getContainerId()
  +        {
  +            return containerId;
  +        }
  +
  +        public void setContainerId(int containerId)
  +        {
  +            this.containerId = containerId;
  +        }
  +
           public int getId()
           {
               return id;
  @@ -124,6 +168,16 @@
               this.id = id;
           }
   
  +        public String getName()
  +        {
  +            return name;
  +        }
  +
  +        public void setName(String name)
  +        {
  +            this.name = name;
  +        }
  +
           public int getSomeValue()
           {
               return someValue;
  @@ -156,7 +210,7 @@
               this.id = id;
           }
   
  -        private void addX(AbstractX someX)
  +        private void addX(AbstractIF_X someX)
           {
               if(myXReferences == null) myXReferences = new ArrayList();
               myXReferences.add(someX);
  @@ -177,6 +231,96 @@
               return (new ToStringBuilder(this)).
                       append("id", id).
                       append("myXReferences", myXReferences).toString();
  +        }
  +    }
  +
  +    public static abstract class AbstractClassX implements AbstractIF_X
  +    {
  +        private int containerId;
  +        private String name;
  +
  +        public AbstractClassX()
  +        {
  +        }
  +
  +        public AbstractClassX(String name)
  +        {
  +            this.name = name;
  +        }
  +
  +        public int getContainerId()
  +        {
  +            return containerId;
  +        }
  +
  +        public void setContainerId(int containerId)
  +        {
  +            this.containerId = containerId;
  +        }
  +
  +        public String getName()
  +        {
  +            return name;
  +        }
  +
  +        public void setName(String name)
  +        {
  +            this.name = name;
  +        }
  +    }
  +
  +    public static abstract class AbstractClassY extends AbstractClassX
  +    {
  +        public AbstractClassY()
  +        {
  +        }
  +
  +        public AbstractClassY(String name)
  +        {
  +            super(name);
  +        }
  +    }
  +
  +    public static class ConcreteZZ extends AbstractClassY
  +    {
  +
  +        private int someValue;
  +        private int id;
  +
  +        public ConcreteZZ()
  +        {
  +        }
  +
  +        public ConcreteZZ(String name)
  +        {
  +            super(name);
  +        }
  +
  +        public int getId()
  +        {
  +            return id;
  +        }
  +
  +        public void setId(int id)
  +        {
  +            this.id = id;
  +        }
  +
  +        public int getSomeValue()
  +        {
  +            return someValue;
  +        }
  +
  +        public void setSomeValue(int someValue)
  +        {
  +            this.someValue = someValue;
  +        }
  +
  +        public String toString()
  +        {
  +            return (new ToStringBuilder(this)).
  +                    append("id", id).
  +                    append("someValue", someValue).toString();
           }
       }
   }
  
  
  
  1.38      +1 -0      db-ojb/src/schema/ojbtest-schema.xml
  
  Index: ojbtest-schema.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/schema/ojbtest-schema.xml,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- ojbtest-schema.xml	13 Jun 2003 10:11:54 -0000	1.37
  +++ ojbtest-schema.xml	13 Jun 2003 16:59:14 -0000	1.38
  @@ -716,6 +716,7 @@
      <table name="ABSTRACT_COLLECTION_Z">
        <column name="OBJ_ID" required="true" primaryKey="true" type="INTEGER"/>
        <column name="CONTAINER_ID" required="true" type="INTEGER"/>
  +     <column name="NAME" type="VARCHAR" size="150"/>
        <column name="SOMEVALUE" type="INTEGER" />
      </table>
      <!-- Used in tests AbstractExtentClassTest -->