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 2005/09/08 18:31:10 UTC

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

arminw      2005/09/08 09:31:10

  Modified:    src/java/org/apache/ojb/broker/metadata
                        SuperReferenceDescriptor.java
               src/test/org/apache/ojb/broker
                        InheritanceMultipleTableTest.java
  Log:
  comment out tests for "declarative inheritance", throw exception in SuperReferenceDescriptor when this kind of inheritance is used.
  
  Revision  Changes    Path
  1.4       +4 -4      db-ojb/src/java/org/apache/ojb/broker/metadata/SuperReferenceDescriptor.java
  
  Index: SuperReferenceDescriptor.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/metadata/SuperReferenceDescriptor.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- SuperReferenceDescriptor.java	3 Sep 2005 15:28:14 -0000	1.3
  +++ SuperReferenceDescriptor.java	8 Sep 2005 16:31:10 -0000	1.4
  @@ -218,9 +218,9 @@
               }
               else
               {
  -                //throw new MetadataException("Declared super class '" + superRef.getClassDescriptor()
  -                //        + "'is not assignable from " + target.getClass());
  -                copyFields(superRef.getClassDescriptor(), target, superCld, value, false, false);
  +                throw new MetadataException("Declared super class '" + superRef.getClassDescriptor()
  +                        + "'is not assignable from " + target.getClass());
  +                // copyFields(superRef.getClassDescriptor(), target, superCld, value, false, false);
               }
           }
   
  
  
  
  1.17      +96 -81    db-ojb/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java
  
  Index: InheritanceMultipleTableTest.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- InheritanceMultipleTableTest.java	27 Aug 2005 12:41:20 -0000	1.16
  +++ InheritanceMultipleTableTest.java	8 Sep 2005 16:31:10 -0000	1.17
  @@ -141,42 +141,6 @@
           assertEquals(1, shareholderCount);
       }
   
  -    public void testWithoutJavaInheritance_1()
  -    {
  -        String name = "testWithoutJavaInheritance_1" + System.currentTimeMillis();
  -        Dog dog = new Dog(name, 35, 4);
  -        broker.beginTransaction();
  -        broker.store(dog);
  -        broker.commitTransaction();
  -
  -        broker.clearCache();
  -        Criteria crit = new Criteria();
  -        crit.addEqualTo("name", name);
  -        Query q = QueryFactory.newQuery(Dog.class, crit);
  -        Collection result = broker.getCollectionByQuery(q);
  -        assertNotNull(result);
  -        assertEquals(1, result.size());
  -        Dog newDog = (Dog) result.iterator().next();
  -        assertTrue(dog.equals(newDog));
  -
  -        broker.beginTransaction();
  -        newDog.setWeight(1000);
  -        newDog.setLegs(10);
  -        broker.store(newDog);
  -        broker.commitTransaction();
  -
  -        broker.clearCache();
  -        result = broker.getCollectionByQuery(q);
  -        assertNotNull(result);
  -        assertEquals(1, result.size());
  -        Dog newDog2 = (Dog) result.iterator().next();
  -        assertTrue(newDog.equals(newDog2));
  -
  -        broker.beginTransaction();
  -        broker.delete(dog);
  -        broker.commitTransaction();
  -    }
  -
       public void testJavaInheritance()
       {
           ojbSkipKnownIssueProblem("Declared inheritance (without java inheritance)" +
  @@ -209,50 +173,6 @@
           assertTrue(animal.equals(newAnimal));
       }
   
  -    public void testWithoutJavaInheritance_2()
  -    {
  -        String name = "testWithoutJavaInheritance_2" + System.currentTimeMillis();
  -        Dog dog = new Dog(name, 35, 4);
  -        Animal parent = new Animal(name + "_parent", 55);
  -        Food f1 = new Food(name + "fruit1");
  -        Food f2 = new Food(name + "fruit2");
  -        dog.addFood(f1);
  -        dog.addFood(f2);
  -        dog.setParent(parent);
  -
  -        broker.beginTransaction();
  -        broker.store(dog);
  -        broker.commitTransaction();
  -
  -        broker.clearCache();
  -        Criteria crit = new Criteria();
  -        crit.addEqualTo("name", name);
  -        Query q = QueryFactory.newQuery(Dog.class, crit);
  -        Collection result = broker.getCollectionByQuery(q);
  -        assertNotNull(result);
  -        assertEquals(1, result.size());
  -        Dog newDog = (Dog) result.iterator().next();
  -        assertEquals(dog, newDog);
  -
  -        broker.beginTransaction();
  -        newDog.setWeight(1000);
  -        newDog.setLegs(10);
  -        newDog.addFood(new Food(name + "_new"));
  -        broker.store(newDog);
  -        broker.commitTransaction();
  -
  -        broker.clearCache();
  -        result = broker.getCollectionByQuery(q);
  -        assertNotNull(result);
  -        assertEquals(1, result.size());
  -        Dog newDog2 = (Dog) result.iterator().next();
  -        assertTrue(newDog.equals(newDog2));
  -
  -        broker.beginTransaction();
  -        broker.delete(dog);
  -        broker.commitTransaction();
  -    }
  -
       public void testInheritancedObjectsInCollectionReferences()
       {
           if(ojbSkipKnownIssueProblem("References of classes (1:1, 1:n) mapped to multiple joined tables only" +
  @@ -1184,6 +1104,101 @@
           assertFalse(obj_2.getSomeValue() == obj_3.getSomeValue());
       }
   
  +    /**
  +     * TODO: Should we support some kind of "declarative inheritance"? This test
  +     * try to use this kind of inheritance as class Dog expects some fields from a
  +     * "declarated super class" (no java inheritance, only declared in metadata).
  +     * In class {@link org.apache.ojb.broker.metadata.SuperReferenceDescriptor} the
  +     * support is comment out (but only works for simple objects without references).
  +     */
  +    public void YYYtestWithoutJavaInheritance_1()
  +    {
  +        String name = "testWithoutJavaInheritance_1" + System.currentTimeMillis();
  +        Dog dog = new Dog(name, 35, 4);
  +        broker.beginTransaction();
  +        broker.store(dog);
  +        broker.commitTransaction();
  +
  +        broker.clearCache();
  +        Criteria crit = new Criteria();
  +        crit.addEqualTo("name", name);
  +        Query q = QueryFactory.newQuery(Dog.class, crit);
  +        Collection result = broker.getCollectionByQuery(q);
  +        assertNotNull(result);
  +        assertEquals(1, result.size());
  +        Dog newDog = (Dog) result.iterator().next();
  +        assertTrue(dog.equals(newDog));
  +
  +        broker.beginTransaction();
  +        newDog.setWeight(1000);
  +        newDog.setLegs(10);
  +        broker.store(newDog);
  +        broker.commitTransaction();
  +
  +        broker.clearCache();
  +        result = broker.getCollectionByQuery(q);
  +        assertNotNull(result);
  +        assertEquals(1, result.size());
  +        Dog newDog2 = (Dog) result.iterator().next();
  +        assertTrue(newDog.equals(newDog2));
  +
  +        broker.beginTransaction();
  +        broker.delete(dog);
  +        broker.commitTransaction();
  +    }
  +
  +    /**
  +     * TODO: Should we support some kind of "declarative inheritance"? This test
  +     * try to use this kind of inheritance as class Dog expects some fields from a
  +     * "declarated super class" (no java inheritance, only declared in metadata).
  +     * In class {@link org.apache.ojb.broker.metadata.SuperReferenceDescriptor} the
  +     * support is comment out (but only works for simple objects without references).
  +     */
  +    public void YYYtestWithoutJavaInheritance_2()
  +    {
  +        String name = "testWithoutJavaInheritance_2" + System.currentTimeMillis();
  +        Dog dog = new Dog(name, 35, 4);
  +        Animal parent = new Animal(name + "_parent", 55);
  +        Food f1 = new Food(name + "fruit1");
  +        Food f2 = new Food(name + "fruit2");
  +        dog.addFood(f1);
  +        dog.addFood(f2);
  +        dog.setParent(parent);
  +
  +        broker.beginTransaction();
  +        broker.store(dog);
  +        broker.commitTransaction();
  +
  +        broker.clearCache();
  +        Criteria crit = new Criteria();
  +        crit.addEqualTo("name", name);
  +        Query q = QueryFactory.newQuery(Dog.class, crit);
  +        Collection result = broker.getCollectionByQuery(q);
  +        assertNotNull(result);
  +        assertEquals(1, result.size());
  +        Dog newDog = (Dog) result.iterator().next();
  +        assertEquals(dog, newDog);
  +
  +        broker.beginTransaction();
  +        newDog.setWeight(1000);
  +        newDog.setLegs(10);
  +        newDog.addFood(new Food(name + "_new"));
  +        broker.store(newDog);
  +        broker.commitTransaction();
  +
  +        broker.clearCache();
  +        result = broker.getCollectionByQuery(q);
  +        assertNotNull(result);
  +        assertEquals(1, result.size());
  +        Dog newDog2 = (Dog) result.iterator().next();
  +        assertTrue(newDog.equals(newDog2));
  +
  +        broker.beginTransaction();
  +        broker.delete(dog);
  +        broker.commitTransaction();
  +    }
  +
  +
   
       //************************************************************
       // inner classes used for test
  
  
  

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