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/07/24 12:10:13 UTC

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

arminw      2003/07/24 03:10:13

  Modified:    src/test/org/apache/ojb/broker/sequence
                        NativeIdentifierTest.java
  Log:
  do more testing
  
  Revision  Changes    Path
  1.5       +89 -11    db-ojb/src/test/org/apache/ojb/broker/sequence/NativeIdentifierTest.java
  
  Index: NativeIdentifierTest.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/sequence/NativeIdentifierTest.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- NativeIdentifierTest.java	16 Jul 2003 11:21:38 -0000	1.4
  +++ NativeIdentifierTest.java	24 Jul 2003 10:10:12 -0000	1.5
  @@ -211,11 +211,11 @@
       {
           testSimpleInsert();
           testSimpleInsert();
  -        testReferenceInsert();
  -        testReferenceInsert();
  +        testReferenceInsertUpdate();
  +        testReferenceInsertUpdate();
       }
   
  -    public void testReferenceInsert() throws Exception
  +    public void testReferenceInsertUpdate() throws Exception
       {
           if (skipTest()) return;
           long timestamp = (long) (System.currentTimeMillis() * Math.random());
  @@ -224,44 +224,65 @@
   
           SMNativeObject obj_1 = new SMNativeObject(null, name);
           SMNativeObject obj_2 = new SMNativeObject(null, name);
  +
           SMNativeReference ref_1 = new SMNativeReference(null, nameRef);
           SMNativeReference ref_2 = new SMNativeReference(null, nameRef);
           SMNativeReference ref_3 = new SMNativeReference(null, nameRef);
           SMNativeReference ref_4 = new SMNativeReference(null, nameRef);
  +
           obj_1.addReference(ref_1);
           obj_1.addReference(ref_2);
           obj_1.addReference(ref_3);
           obj_1.addReference(ref_4);
   
           broker.beginTransaction();
  -        // maybe first store a reference
  +        // first store a reference
           broker.store(ref_1);
   //        System.out.println("ref_1: "+ref_1);
  -        // then store main object
  +        // then store main object with other references
           broker.store(obj_1);
   //        System.out.println("obj_1: "+obj_1);
  +        // store second object without references
           broker.store(obj_2);
   //        System.out.println("obj_2: "+obj_2);
           broker.commitTransaction();
   
  +        // try to find both objects
           Criteria crit = new Criteria();
           crit.addEqualTo("name", name);
           QueryByCriteria query = QueryFactory.newQuery(SMNativeObject.class, crit);
           int result = broker.getCount(query);
  -        assertEquals("Not all objects created", 2, result);
  +        assertEquals("Wrong object count", 2, result);
  +
  +        // pk have to set and have to be different
           assertNotNull(obj_1.getIdentifier());
  +        assertNotNull(obj_2.getIdentifier());
  +        assertNotSame(obj_1.getIdentifier(), obj_2.getIdentifier());
  +
  +        // get Identity objects
  +        Identity oid_1 = new Identity(obj_1, broker);
  +        Identity oid_2 = new Identity(obj_2, broker);
  +
           broker.clearCache();
  -        obj_1 = (SMNativeObject) broker.getObjectByIdentity(new Identity(obj_1, broker));
  +
  +        // get object with references
  +        obj_1 = (SMNativeObject) broker.getObjectByIdentity(oid_1);
  +        assertNotNull(obj_1);
           List references = obj_1.getAllReferences();
           assertNotNull(references);
  +        assertEquals("4 references expected for object: "+obj_1, 4, references.size());
           Iterator it = references.iterator();
           while (it.hasNext())
           {
               SMNativeReference ref = (SMNativeReference) it.next();
               assertEquals("Main object fk expected", obj_1.getIdentifier(), ref.fkIdentifier);
  -            assertTrue("Currently we expect a positive value", (ref.getRefIdentifier().longValue() > 0));
  +            assertTrue("We expect a positive value, identity columns have to start > 0",
  +                    (ref.getRefIdentifier().longValue() > 0));
           }
   
  +        broker.clearCache();
  +
  +        // get references only
           Criteria crit_2 = new Criteria();
           crit_2.addEqualTo("refName", nameRef);
           QueryByCriteria query_2 = QueryFactory.newQuery(SMNativeReference.class, crit_2);
  @@ -270,10 +291,67 @@
           assertNotNull(ref_3.getRefIdentifier());
   
           broker.clearCache();
  -        Identity id = new Identity(obj_1, broker);
  -        SMNativeObject retObj = (SMNativeObject) broker.getObjectByIdentity(id);
  +
  +        // get second object
  +        SMNativeObject retObj = (SMNativeObject) broker.getObjectByIdentity(oid_2);
           List refList = retObj.getAllReferences();
           assertNotNull(refList);
  +        assertEquals("object do not have references", 0, refList.size());
  +
  +        // add new reference to object
  +        SMNativeReference ref_5 = new SMNativeReference(null, nameRef);
  +        SMNativeReference ref_6 = new SMNativeReference(null, nameRef);
  +        obj_1.addReference(ref_5);
  +        obj_2.addReference(ref_6);
  +        broker.beginTransaction();
  +        broker.store(obj_1);
  +        broker.store(obj_2);
  +        broker.commitTransaction();
  +        assertNotNull(ref_5.getRefIdentifier());
  +        assertNotNull(ref_6.getRefIdentifier());
  +
  +        obj_1 = (SMNativeObject) broker.getObjectByIdentity(oid_1);
  +        assertNotNull(obj_1);
  +        references = obj_1.getAllReferences();
  +        assertNotNull(references);
  +        assertEquals("5 references expected for object: "+obj_1, 5, references.size());
  +
  +        obj_2 = (SMNativeObject) broker.getObjectByIdentity(oid_2);
  +        assertNotNull(obj_2);
  +        references = obj_2.getAllReferences();
  +        assertNotNull(references);
  +        assertEquals("1 references expected for object: "+obj_2, 1, references.size());
  +
  +        // now update main objects
  +        obj_1.setName(name+"_update");
  +        obj_2.setName(name+"_update");
  +        broker.beginTransaction();
  +        broker.store(obj_1);
  +        broker.store(obj_2);
  +        broker.commitTransaction();
  +
  +        obj_1 = (SMNativeObject) broker.getObjectByIdentity(oid_1);
  +        obj_2 = (SMNativeObject) broker.getObjectByIdentity(oid_2);
  +
  +        assertNotNull(obj_1);
  +        assertNotNull(obj_2);
  +        assertEquals(obj_1.getName(), name+"_update");
  +        assertEquals(obj_2.getName(), name+"_update");
  +
  +        // now update reference
  +        obj_2 = (SMNativeObject) broker.getObjectByIdentity(oid_2);
  +        assertNotNull(obj_2);
  +        references = obj_2.getAllReferences();
  +        SMNativeReference ref = (SMNativeReference) references.get(0);
  +        ref.setRefName(nameRef+"_update");
  +        broker.beginTransaction();
  +        broker.store(obj_2);
  +        broker.commitTransaction();
  +        obj_2 = (SMNativeObject) broker.getObjectByIdentity(oid_2);
  +        assertNotNull(obj_2);
  +        references = obj_2.getAllReferences();
  +        ref = (SMNativeReference) references.get(0);
  +        assertEquals(nameRef+"_update", ref.getRefName());
       }
   
       public static class SMNativeObject implements Serializable
  
  
  

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