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/05/30 12:25:10 UTC

cvs commit: db-ojb/src/test/org/apache/ojb/broker ReadonlyTest.java

arminw      2003/05/30 03:25:09

  Modified:    src/test/org/apache/ojb repository_junit.xml
               src/schema ojbtest-schema.xml
  Added:       src/test/org/apache/ojb/broker ReadonlyTest.java
  Log:
  add test case for 'readonly' fields
  
  Revision  Changes    Path
  1.66      +43 -1     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.65
  retrieving revision 1.66
  diff -u -r1.65 -r1.66
  --- repository_junit.xml	13 May 2003 15:23:30 -0000	1.65
  +++ repository_junit.xml	30 May 2003 10:25:06 -0000	1.66
  @@ -3681,7 +3681,7 @@
   	<class-descriptor class="org.apache.ojb.broker.BaseQualifierImpl">
   	   <extent-class class-ref="org.apache.ojb.broker.Topic"/>
   	   <extent-class class-ref="org.apache.ojb.broker.Category"/>
  -	   <extent-class class-ref="org.apache.ojb.broker.Area"/>	   
  +	   <extent-class class-ref="org.apache.ojb.broker.Area"/>
   	   <field-descriptor id="1" name="id" column="ID" jdbc-type="INTEGER" primarykey="true"/>
   	</class-descriptor>
   
  @@ -3889,5 +3889,47 @@
                   <foreignkey field-ref="gathererId"/>
           </reference-descriptor>
       </class-descriptor>
  +
  +    <!-- ************************************************* -->
  +    <!--      PB 'readonly' attribute tests                -->
  +    <!-- ************************************************* -->
  +    <!--
  +    private Long objId;
  +    private String name;
  +    private String readonlyString;
  +    private Long readonlyLong;
  +    -->
  +    <class-descriptor
  +        class="org.apache.ojb.broker.ReadonlyTest$TestObject"
  +        table="READONLY_TEST">
  +
  +        <field-descriptor
  +            name="objId"
  +            column="OBJ_ID"
  +            jdbc-type="BIGINT"
  +            primarykey="true"
  +            autoincrement="true"
  +        />
  +
  +        <field-descriptor
  +            name="name"
  +            column="NAME"
  +            jdbc-type="VARCHAR"
  +        />
  +
  +        <field-descriptor
  +            name="readonlyString"
  +            column="RO_STRING"
  +            jdbc-type="VARCHAR"
  +        />
  +
  +        <field-descriptor
  +            name="readonlyLong"
  +            column="RO_LONG"
  +            jdbc-type="BIGINT"
  +        />
  +
  +    </class-descriptor>
  +
   
   <!-- Mapping of classes used in junit tests and tutorials ends here -->
  
  
  
  1.35      +12 -1     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.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- ojbtest-schema.xml	23 May 2003 20:52:01 -0000	1.34
  +++ ojbtest-schema.xml	30 May 2003 10:25:08 -0000	1.35
  @@ -411,7 +411,7 @@
     <!-- Content -->
     <table name="PAPER">
       <column name="ID" required="true" primaryKey="true" type="INTEGER"/>
  -    <column name="HEADLINE" type="VARCHAR" size="50"/>    
  +    <column name="HEADLINE" type="VARCHAR" size="50"/>
       <column name="ISSUEDATE" type="VARCHAR" size="50"/>
       <column name="AUTHOR" type="VARCHAR" size="50"/>
     </table>
  @@ -689,4 +689,15 @@
           <column name="GAT_ID" type="INTEGER"/>
           <column name="EXTENT_NAME" type="VARCHAR" size="150"/>
       </table>
  +
  +    <!-- =================================================== -->
  +    <!-- PB 'readonly' attribute test                        -->
  +    <!-- =================================================== -->
  +    <table name="READONLY_TEST">
  +        <column name="OBJ_ID" required="true" primaryKey="true" type="DECIMAL"/>
  +        <column name="NAME" type="VARCHAR" size="150"/>
  +        <column name="RO_STRING" type="VARCHAR" size="150"/>
  +        <column name="RO_LONG" type="DECIMAL"/>
  +    </table>
  +
   </database>
  
  
  
  1.1                  db-ojb/src/test/org/apache/ojb/broker/ReadonlyTest.java
  
  Index: ReadonlyTest.java
  ===================================================================
  package org.apache.ojb.broker;
  
  import junit.framework.TestCase;
  
  /**
   *
   * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
   * @version $Id: ReadonlyTest.java,v 1.1 2003/05/30 10:25:08 arminw Exp $
   */
  public class ReadonlyTest extends TestCase
  {
      private PersistenceBroker broker;
  
      public static void main(String[] args)
      {
          String[] arr = {ReadonlyTest.class.getName()};
          junit.textui.TestRunner.main(arr);
      }
  
      public void setUp() throws PBFactoryException
      {
          broker = PersistenceBrokerFactory.defaultPersistenceBroker();
      }
  
      public void tearDown()
      {
          try
          {
              if(broker != null) broker.close();
          }
          catch (PersistenceBrokerException e)
          {
          }
      }
  
      public void testReadonly() throws Exception
      {
          long timestamp = System.currentTimeMillis();
          TestObject obj = new TestObject(null, "readonly test_"+timestamp, "should not persisted", new Long(timestamp));
          try
          {
              broker.beginTransaction();
              broker.store(obj);
              broker.commitTransaction();
              broker.clearCache();
  
              broker.beginTransaction();
              Identity oid = new Identity(obj, broker);
              TestObject ret_obj = (TestObject) broker.getObjectByIdentity(oid);
              broker.commitTransaction();
  
              assertNotNull(ret_obj);
              assertNotNull(ret_obj.getName());
              assertNull("Field should not be populated", ret_obj.getReadonlyLong());
              assertNull("Field should not be populated", ret_obj.getReadonlyString());
          }
          finally
          {
              if(broker != null) broker.close();
          }
  
  
      }
  
      public static class TestObject
      {
          private Long objId;
          private String name;
          private String readonlyString;
          private Long readonlyLong;
  
          public TestObject()
          {
          }
  
          public TestObject(Long objId, String name, String readonlyString, Long readonlyLong)
          {
              this.objId = objId;
              this.name = name;
              this.readonlyString = readonlyString;
              this.readonlyLong = readonlyLong;
          }
  
          public Long getObjId()
          {
              return objId;
          }
  
          public void setObjId(Long objId)
          {
              this.objId = objId;
          }
  
          public String getName()
          {
              return name;
          }
  
          public void setName(String name)
          {
              this.name = name;
          }
  
          public String getReadonlyString()
          {
              return readonlyString;
          }
  
          public void setReadonlyString(String readonlyString)
          {
              this.readonlyString = readonlyString;
          }
  
          public Long getReadonlyLong()
          {
              return readonlyLong;
          }
  
          public void setReadonlyLong(Long readonlyLong)
          {
              this.readonlyLong = readonlyLong;
          }
      }
  }