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 2006/06/16 23:29:25 UTC
svn commit: r414922 - in /db/ojb/branches/OJB_1_0_RELEASE/src:
schema/ojbtest-schema.xml test/org/apache/ojb/broker/AllTests.java
test/org/apache/ojb/broker/JdbcJavaObjectTest.java
test/org/apache/ojb/repository_junit.xml
Author: arminw
Date: Fri Jun 16 14:29:24 2006
New Revision: 414922
URL: http://svn.apache.org/viewvc?rev=414922&view=rev
Log:
add test to check handling of jdbc type JAVA_OBJECT
Added:
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/JdbcJavaObjectTest.java
Modified:
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/AllTests.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-schema.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/schema/ojbtest-schema.xml?rev=414922&r1=414921&r2=414922&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 Fri Jun 16 14:29:24 2006
@@ -1814,4 +1814,11 @@
<table name="Ownable2">
<column name="id" required="true" primaryKey="true" type="INTEGER"/>
</table>
+
+ <table name="CONTAINER_TBL">
+ <column name="ID_" required="true" primaryKey="true" type="INTEGER"/>
+ <column name="NAME" type="VARCHAR" size="150"/>
+ <column name="TARGET" type="JAVA_OBJECT"/>
+ <column name="EDITOR" type="JAVA_OBJECT"/>
+ </table>
</database>
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/AllTests.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/AllTests.java?rev=414922&r1=414921&r2=414922&view=diff
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/AllTests.java (original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/AllTests.java Fri Jun 16 14:29:24 2006
@@ -125,6 +125,7 @@
suite.addTestSuite(NoPkReferenceTest.class);
suite.addTestSuite(UnwrapHelperTest.class);
suite.addTestSuite(LOBTest.class);
+ suite.addTestSuite(JdbcJavaObjectTest.class);
// BRJ: ensure shutdown of hsqldb
suite.addTestSuite(HsqldbShutdown.class);
Added: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/JdbcJavaObjectTest.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/JdbcJavaObjectTest.java?rev=414922&view=auto
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/JdbcJavaObjectTest.java (added)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/JdbcJavaObjectTest.java Fri Jun 16 14:29:24 2006
@@ -0,0 +1,227 @@
+package org.apache.ojb.broker;
+
+/* Copyright 2002-2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.lang.Object;
+import java.io.Serializable;
+
+import org.apache.ojb.junit.PBTestCase;
+import org.apache.ojb.broker.query.QueryFactory;
+import org.apache.ojb.broker.query.Query;
+import org.apache.ojb.broker.query.Criteria;
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.commons.lang.builder.EqualsBuilder;
+
+/**
+ * This class
+ *
+ * @version $Id: $
+ */
+public class JdbcJavaObjectTest extends PBTestCase
+{
+ public static void main(String[] args)
+ {
+ String[] arr = {JdbcJavaObjectTest.class.getName()};
+ junit.textui.TestRunner.main(arr);
+ }
+
+ public void testInsert()
+ {
+ Container c = new Container("testInsert", new Editor(2, "object_test"), new Editor(3, "editor_test"));
+ doInsert(c);
+ }
+
+ public void testDelete()
+ {
+ Container c = new Container("testDelete", new Editor(2, "object_test"), new Editor(3, "editor_test"));
+ doInsert(c);
+ doDelete(c);
+ }
+
+ public void testRead()
+ {
+ Container c = new Container("testRead", new Editor(2, "object_test"), new Editor(3, "editor_test"));
+ doInsert(c);
+
+ Identity oid = broker.serviceIdentity().buildIdentity(c);
+ Container read = (Container) broker.getObjectByIdentity(oid);
+ assertEquals(c, read);
+
+ broker.clearCache();
+ read = (Container) broker.getObjectByIdentity(oid);
+ assertEquals(c, read);
+
+ doDelete(c);
+ }
+
+ public void testQuery()
+ {
+ Container c = new Container("testQuery", new Editor(2, "object_test"), new Editor(3, "editor_test"));
+ doInsert(c);
+
+ Criteria crit = new Criteria().addEqualTo("id", c.getId());
+ Query q = QueryFactory.newQuery(Container.class, crit);
+ Container read = (Container) broker.getObjectByQuery(q);
+ assertEquals(c, read);
+
+ broker.clearCache();
+ read = (Container) broker.getObjectByQuery(q);
+ assertEquals(c, read);
+
+ doDelete(c);
+ }
+
+ public void testUpdate()
+ {
+ Container c = new Container("testUpdate", new Editor(2, "object_test"), new Editor(3, "editor_test"));
+ doInsert(c);
+
+ broker.beginTransaction();
+ c.setName(getName() + "_update_1");
+ c.getEditor().str = c.getEditor().str + "_update_1";
+ ((Editor) c.getTarget()).str = ((Editor) c.getTarget()).str + "_update_1";
+ broker.store(c);
+ broker.commitTransaction();
+
+ Identity oid = broker.serviceIdentity().buildIdentity(c);
+ Container read = (Container) broker.getObjectByIdentity(oid);
+ assertEquals(c, read);
+
+ broker.clearCache();
+ read = (Container) broker.getObjectByIdentity(oid);
+ assertEquals(c, read);
+
+ broker.clearCache();
+ broker.beginTransaction();
+ c = read;
+ c.setName(getName() + "_update_2");
+ c.getEditor().str = c.getEditor().str + "_update_2";
+ ((Editor) c.getTarget()).str = ((Editor) c.getTarget()).str + "_update_2";
+ broker.store(c);
+ broker.commitTransaction();
+
+ broker.clearCache();
+ read = (Container) broker.getObjectByIdentity(oid);
+ assertEquals(c, read);
+
+ doDelete(c);
+ }
+
+ void doInsert(Container c)
+ {
+ broker.beginTransaction();
+ broker.store(c);
+ broker.commitTransaction();
+ }
+
+ void doDelete(Container c)
+ {
+ broker.beginTransaction();
+ broker.delete(c);
+ broker.commitTransaction();
+ }
+
+ public static class Container implements Serializable
+ {
+ private Integer id;
+ private String name;
+ private Object target;
+ private Editor editor;
+
+ public Container()
+ {
+ }
+
+ public Container(String name, Object target, Editor editor)
+ {
+ this.name = name;
+ this.target = target;
+ this.editor = editor;
+ }
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public Object getTarget()
+ {
+ return target;
+ }
+
+ public void setTarget(Object target)
+ {
+ this.target = target;
+ }
+
+ public Editor getEditor()
+ {
+ return editor;
+ }
+
+ public void setEditor(Editor editor)
+ {
+ this.editor = editor;
+ }
+
+ public boolean equals(Object obj)
+ {
+ return EqualsBuilder.reflectionEquals(this, obj);
+ }
+
+ public String toString()
+ {
+ return ToStringBuilder.reflectionToString(this);
+ }
+ }
+
+ public static class Editor implements Serializable
+ {
+ String str;
+ int aInt;
+
+ public Editor(int aInt, String str)
+ {
+ this.aInt = aInt;
+ this.str = str;
+ }
+
+ public boolean equals(Object obj)
+ {
+ return EqualsBuilder.reflectionEquals(this, obj);
+ }
+
+ public String toString()
+ {
+ return ToStringBuilder.reflectionToString(this);
+ }
+ }
+}
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/repository_junit.xml
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/repository_junit.xml?rev=414922&r1=414921&r2=414922&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 Fri Jun 16 14:29:24 2006
@@ -3229,4 +3229,36 @@
>
</field-descriptor>
</class-descriptor>
+
+
+ <class-descriptor
+ class="org.apache.ojb.broker.JdbcJavaObjectTest$Container"
+ table="CONTAINER_TBL"
+ >
+ <field-descriptor
+ name="id"
+ column="ID_"
+ jdbc-type="INTEGER"
+ primarykey="true"
+ autoincrement="true"
+ />
+
+ <field-descriptor
+ name="name"
+ column="NAME"
+ jdbc-type="VARCHAR"
+ />
+
+ <field-descriptor
+ name="target"
+ column="TARGET"
+ jdbc-type="JAVA_OBJECT"
+ />
+
+ <field-descriptor
+ name="editor"
+ column="EDITOR"
+ jdbc-type="JAVA_OBJECT"
+ />
+ </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