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 to...@apache.org on 2006/02/19 12:51:30 UTC

svn commit: r378882 - in /db/ojb/trunk/src: schema/ test/org/apache/ojb/ test/org/apache/ojb/broker/

Author: tomdz
Date: Sun Feb 19 03:51:27 2006
New Revision: 378882

URL: http://svn.apache.org/viewcvs?rev=378882&view=rev
Log:
Added unit test for proxy handling for interface inheritance heirarchies

Added:
    db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable.java
    db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1.java
    db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java
    db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2.java
    db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java
    db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java
Modified:
    db/ojb/trunk/src/schema/ojbtest-data-new.xml
    db/ojb/trunk/src/schema/ojbtest-data.dtd
    db/ojb/trunk/src/schema/ojbtest-data.xml
    db/ojb/trunk/src/schema/ojbtest-schema.xml
    db/ojb/trunk/src/test/org/apache/ojb/broker/ProxyExamples.java
    db/ojb/trunk/src/test/org/apache/ojb/repository_junit.xml

Modified: db/ojb/trunk/src/schema/ojbtest-data-new.xml
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/schema/ojbtest-data-new.xml?rev=378882&r1=378881&r2=378882&view=diff
==============================================================================
--- db/ojb/trunk/src/schema/ojbtest-data-new.xml (original)
+++ db/ojb/trunk/src/schema/ojbtest-data-new.xml Sun Feb 19 03:51:27 2006
@@ -200,4 +200,9 @@
 
    	<InitializableObject id="1"/>
     <InitializableObject id="2"/>
+
+    <Ownable1 id="1"/>
+    <Ownable2 id="2"/>
+    <Owner id="1" ownedid="2"/>
+    <Owner id="2" ownedid="1"/>
 </dataset>

Modified: db/ojb/trunk/src/schema/ojbtest-data.dtd
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/schema/ojbtest-data.dtd?rev=378882&r1=378881&r2=378882&view=diff
==============================================================================
--- db/ojb/trunk/src/schema/ojbtest-data.dtd (original)
+++ db/ojb/trunk/src/schema/ojbtest-data.dtd Sun Feb 19 03:51:27 2006
@@ -177,7 +177,10 @@
     PATable|
     PBTable|
     PCTable|
-    PDTable)*>
+    PDTable|
+    Owner|
+    Ownable1|
+    Ownable2)*>
 <!ATTLIST dataset
     name CDATA #REQUIRED
 >
@@ -1362,3 +1365,18 @@
     DAttrib CDATA #IMPLIED
 >
 
+<!ELEMENT Owner EMPTY>
+<!ATTLIST Owner
+    Id CDATA #REQUIRED
+    OwnedId CDATA #IMPLIED
+>
+
+<!ELEMENT Ownable1 EMPTY>
+<!ATTLIST Ownable1
+    Id CDATA #REQUIRED
+>
+
+<!ELEMENT Ownable2 EMPTY>
+<!ATTLIST Ownable2
+    Id CDATA #REQUIRED
+>

Modified: db/ojb/trunk/src/schema/ojbtest-data.xml
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/schema/ojbtest-data.xml?rev=378882&r1=378881&r2=378882&view=diff
==============================================================================
--- db/ojb/trunk/src/schema/ojbtest-data.xml (original)
+++ db/ojb/trunk/src/schema/ojbtest-data.xml Sun Feb 19 03:51:27 2006
@@ -204,5 +204,10 @@
     <ContentQualifier ContentId="11" QualifierId="31"/>
 
     <InitializableObject Id="1"/>
-	<InitializableObject Id="2"/>
+    <InitializableObject Id="2"/>
+
+    <Ownable1 Id="1"/>
+    <Ownable2 Id="2"/>
+    <Owner Id="1" OwnedId="2"/>
+    <Owner Id="2" OwnedId="1"/>
 </dataset>

Modified: db/ojb/trunk/src/schema/ojbtest-schema.xml
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/schema/ojbtest-schema.xml?rev=378882&r1=378881&r2=378882&view=diff
==============================================================================
--- db/ojb/trunk/src/schema/ojbtest-schema.xml (original)
+++ db/ojb/trunk/src/schema/ojbtest-schema.xml Sun Feb 19 03:51:27 2006
@@ -1879,4 +1879,14 @@
     </foreign-key>
   </table>
 
+  <table name="Owner">
+    <column name="id" required="true" primaryKey="true" type="INTEGER"/>
+    <column name="ownedid" javaName="ownedId" type="INTEGER"/>
+  </table>
+  <table name="Ownable1">
+    <column name="id" required="true" primaryKey="true" type="INTEGER"/>
+  </table>
+  <table name="Ownable2">
+    <column name="id" required="true" primaryKey="true" type="INTEGER"/>
+  </table>
 </database>

Added: db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable.java
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable.java?rev=378882&view=auto
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable.java (added)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable.java Sun Feb 19 03:51:27 2006
@@ -0,0 +1,9 @@
+package org.apache.ojb.broker;
+
+import java.io.Serializable;
+
+/**
+ * Interface for testing proxies with interface-hierarchies.
+ */
+public interface Ownable extends Serializable
+{}

Added: db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1.java
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1.java?rev=378882&view=auto
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1.java (added)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1.java Sun Feb 19 03:51:27 2006
@@ -0,0 +1,7 @@
+package org.apache.ojb.broker;
+
+/**
+ * Interface for testing proxies with interface-hierarchies.
+ */
+public interface Ownable1 extends Ownable
+{}

Added: db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java?rev=378882&view=auto
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java (added)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java Sun Feb 19 03:51:27 2006
@@ -0,0 +1,9 @@
+package org.apache.ojb.broker;
+
+/**
+ * Class for testing proxies with interface-hierarchies.
+ */
+public class Ownable1Impl implements Ownable1
+{
+    private Integer id;
+}

Added: db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2.java
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2.java?rev=378882&view=auto
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2.java (added)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2.java Sun Feb 19 03:51:27 2006
@@ -0,0 +1,7 @@
+package org.apache.ojb.broker;
+
+/**
+ * Interface for testing proxies with interface-hierarchies.
+ */
+public interface Ownable2 extends Ownable
+{}

Added: db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java?rev=378882&view=auto
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java (added)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java Sun Feb 19 03:51:27 2006
@@ -0,0 +1,9 @@
+package org.apache.ojb.broker;
+
+/**
+ * Class for testing proxies with interface-hierarchies.
+ */
+public class Ownable2Impl implements Ownable2
+{
+    private Integer id;
+}

Added: db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java?rev=378882&view=auto
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java (added)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java Sun Feb 19 03:51:27 2006
@@ -0,0 +1,18 @@
+package org.apache.ojb.broker;
+
+import java.io.Serializable;
+
+/**
+ * Class for testing proxies with interface-hierarchies.
+ */
+public class Owner implements Serializable
+{
+    private Integer id;
+    private Integer ownedId;
+    private Ownable owned;
+
+    public Ownable getOwned()
+    {
+        return owned;
+    }
+}

Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/ProxyExamples.java
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/test/org/apache/ojb/broker/ProxyExamples.java?rev=378882&r1=378881&r2=378882&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/ProxyExamples.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/ProxyExamples.java Sun Feb 19 03:51:27 2006
@@ -1,6 +1,5 @@
 package org.apache.ojb.broker;
 
-import java.lang.reflect.Proxy;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.Vector;
@@ -346,4 +345,23 @@
         }
     }
 
+    public void testReferenceProxyWithInheritance()
+    {
+        Query      query = QueryFactory.newQuery(Owner.class, new Criteria());
+        Collection objs  = broker.getCollectionByQuery(query);
+
+        assertEquals(2,
+                     objs.size());
+
+        Iterator it     = objs.iterator();
+        Ownable  owned1 = ((Owner)it.next()).getOwned();
+        Ownable  owned2 = ((Owner)it.next()).getOwned();
+
+        assertTrue(ojb.getProxyFactory().isProxy(owned1));
+        assertTrue(ojb.getProxyFactory().isProxy(owned2));
+        // This should be true according the docs of class Proxy and because
+        // the concrete classes are Onwable2Impl/Onwable1Impl
+        assertTrue(owned1 instanceof Ownable2);
+        assertTrue(owned2 instanceof Ownable1);
+    }
 }

Modified: db/ojb/trunk/src/test/org/apache/ojb/repository_junit.xml
URL: http://svn.apache.org/viewcvs/db/ojb/trunk/src/test/org/apache/ojb/repository_junit.xml?rev=378882&r1=378881&r2=378882&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/repository_junit.xml (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/repository_junit.xml Sun Feb 19 03:51:27 2006
@@ -3378,4 +3378,70 @@
              jdbc-type="VARCHAR"
         />
     </class-descriptor>
+
+    <class-descriptor
+       class="org.apache.ojb.broker.Owner"
+       table="Owner"
+    >
+       <field-descriptor
+           name="id"
+           column="id"
+           jdbc-type="INTEGER"
+           primarykey="true"
+       >
+       </field-descriptor>
+       <field-descriptor
+           name="ownedId"
+           column="ownedid"
+           jdbc-type="INTEGER"
+       >
+       </field-descriptor>
+       <reference-descriptor
+           name="owned"
+           class-ref="org.apache.ojb.broker.Ownable"
+           proxy="true"
+           auto-retrieve="true"
+           auto-update="link"
+           auto-delete="link"
+       >
+           <foreignkey field-ref="ownedId"/>
+       </reference-descriptor>
+    </class-descriptor>
+    <class-descriptor
+       class="org.apache.ojb.broker.Ownable"
+    >
+       <extent-class class-ref="org.apache.ojb.broker.Ownable1Impl"/>
+       <extent-class class-ref="org.apache.ojb.broker.Ownable2Impl"/>
+       <field-descriptor
+           name="id"
+           column="id"
+           jdbc-type="INTEGER"
+           primarykey="true"
+       >
+       </field-descriptor>
+    </class-descriptor>
+    <class-descriptor
+       class="org.apache.ojb.broker.Ownable1Impl"
+       table="Ownable1"
+    >
+       <field-descriptor
+           name="id"
+           column="id"
+           jdbc-type="INTEGER"
+           primarykey="true"
+       >
+       </field-descriptor>
+    </class-descriptor>
+    <class-descriptor
+       class="org.apache.ojb.broker.Ownable2Impl"
+       table="Ownable2"
+    >
+       <field-descriptor
+           name="id"
+           column="id"
+           jdbc-type="INTEGER"
+           primarykey="true"
+       >
+       </field-descriptor>
+    </class-descriptor>
 <!-- Mapping of classes used in junit tests and tutorials ends here -->



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