Author: tomdz
Date: Sun Feb 19 03:46:39 2006
New Revision: 378880
URL: http://svn.apache.org/viewcvs?rev=378880&view=rev
Log:
Added unit test for proxy handling for interface inheritance heirarchies
Added:
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable.java
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1.java
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1Impl.java
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2.java
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2Impl.java
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Owner.java
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data-new.xml
db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.dtd
db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.xml
db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-schema.xml
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/ProxyExamples.java
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/repository_junit.xml
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data-new.xml
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data-new.xml?rev=378880&r1=378879&r2=378880&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data-new.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data-new.xml Sun Feb 19
03:46:39 2006
@@ -202,4 +202,9 @@
<CONTENT_QUALIFIER CONTENT_ID="10" QUALIFIER_ID="20"/>
<CONTENT_QUALIFIER CONTENT_ID="11" QUALIFIER_ID="11"/>
<CONTENT_QUALIFIER CONTENT_ID="11" QUALIFIER_ID="31"/>
+
+ <Ownable1 id="1"/>
+ <Ownable2 id="2"/>
+ <Owner id="1" ownedid="2"/>
+ <Owner id="2" ownedid="1"/>
</dataset>
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.dtd
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.dtd?rev=378880&r1=378879&r2=378880&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.dtd (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.dtd Sun Feb 19
03:46:39 2006
@@ -52,7 +52,10 @@
SMMaxAB|
SMMaxAAA|
SMMaxB|
- SMMaxBB
+ SMMaxBB|
+ Owner|
+ Ownable1|
+ Ownable2
)*>
<!ATTLIST dataset
name CDATA #REQUIRED
@@ -345,3 +348,18 @@
Name 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/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.xml
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.xml?rev=378880&r1=378879&r2=378880&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-data.xml Sun Feb 19
03:46:39 2006
@@ -202,4 +202,9 @@
<ContentQualifier ContentId="10" QualifierId="20"/>
<ContentQualifier ContentId="11" QualifierId="11"/>
<ContentQualifier ContentId="11" QualifierId="31"/>
+
+ <Ownable1 Id="1"/>
+ <Ownable2 Id="2"/>
+ <Owner Id="1" OwnedId="2"/>
+ <Owner Id="2" OwnedId="1"/>
</dataset>
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-schema.xml
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-schema.xml?rev=378880&r1=378879&r2=378880&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-schema.xml (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-schema.xml Sun Feb 19
03:46:39 2006
@@ -1804,5 +1804,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/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable.java
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable.java?rev=378880&view=auto
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable.java
(added)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable.java
Sun Feb 19 03:46:39 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/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1.java
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1.java?rev=378880&view=auto
==============================================================================
---
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1.java
(added)
+++
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1.java
Sun Feb 19 03:46:39 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/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1Impl.java
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1Impl.java?rev=378880&view=auto
==============================================================================
---
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1Impl.java
(added)
+++
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable1Impl.java
Sun Feb 19 03:46:39 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/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2.java
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2.java?rev=378880&view=auto
==============================================================================
---
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2.java
(added)
+++
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2.java
Sun Feb 19 03:46:39 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/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2Impl.java
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2Impl.java?rev=378880&view=auto
==============================================================================
---
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2Impl.java
(added)
+++
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Ownable2Impl.java
Sun Feb 19 03:46:39 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/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Owner.java
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Owner.java?rev=378880&view=auto
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Owner.java
(added)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/Owner.java
Sun Feb 19 03:46:39 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/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/ProxyExamples.java
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/ProxyExamples.java?rev=378880&r1=378879&r2=378880&view=diff
==============================================================================
---
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/ProxyExamples.java
(original)
+++
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/ProxyExamples.java
Sun Feb 19 03:46:39 2006
@@ -5,6 +5,8 @@
import java.util.Iterator;
import java.util.Vector;
+import org.apache.ojb.broker.core.proxy.ProxyHelper;
+import org.apache.ojb.broker.query.Criteria;
import org.apache.ojb.broker.query.Query;
import org.apache.ojb.broker.query.QueryFactory;
import org.apache.ojb.junit.PBTestCase;
@@ -304,4 +306,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(ProxyHelper.isProxy(owned1));
+ assertTrue(ProxyHelper.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/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/repository_junit.xml
URL:
http://svn.apache.org/viewcvs/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/repository_junit.xml?rev=378880&r1=378879&r2=378880&view=diff
==============================================================================
---
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/repository_junit.xml
(original)
+++
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/repository_junit.xml
Sun Feb 19 03:46:39 2006
@@ -3087,4 +3087,69 @@
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]