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/07/15 16:38:16 UTC
svn commit: r422236 [2/3] - in /db/ojb/trunk/src: schema/
test/org/apache/ojb/broker/ test/org/apache/ojb/broker/cache/
test/org/apache/ojb/broker/cloneable/ test/org/apache/ojb/broker/metadata/
test/org/apache/ojb/broker/metadata/torque/
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/ExtentAwarePathExpressionsTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/ExtentAwarePathExpressionsTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/ExtentAwarePathExpressionsTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/ExtentAwarePathExpressionsTest.java Sat Jul 15 07:38:14 2006
@@ -6,75 +6,76 @@
import org.apache.ojb.broker.query.Criteria;
import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.query.QueryFactory;
+import org.apache.ojb.broker.query.Query;
import org.apache.ojb.junit.PBTestCase;
/**
* Tests for extent aware path expressions
- *
+ *
* @author <a href="leandro@ibnetwork.com.br">Leandro Rodrigo Saad Cruz</a>
- *
- * $Id$
+ *
+ * $Id$
*/
public class ExtentAwarePathExpressionsTest extends PBTestCase
{
- public static void main(String[] args)
- {
- String[] arr = {ExtentAwarePathExpressionsTest.class.getName()};
- junit.textui.TestRunner.main(arr);
- }
-
- public ExtentAwarePathExpressionsTest(String testName)
- {
- super(testName);
- }
-
- public void testWithoutHintClass1() throws Exception
- {
- Criteria criteria = new Criteria();
- criteria.addEqualTo("qualifiers.name", "Cars");
- QueryByCriteria query = QueryFactory.newQuery(News.class, criteria);
-
- broker.clearCache();
- List content = (List) broker.getCollectionByQuery(query);
- assertEquals(1, content.size());
- }
-
- public void testWithoutHintClass2() throws Exception
- {
- Criteria criteria = new Criteria();
- criteria.addLike("qualifiers.name", "%ers%");
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
-
- broker.clearCache();
- List content = (List) broker.getCollectionByQuery(query);
- assertEquals(2, content.size());
- }
+ public static void main(String[] args)
+ {
+ String[] arr = {ExtentAwarePathExpressionsTest.class.getName()};
+ junit.textui.TestRunner.main(arr);
+ }
+
+ public ExtentAwarePathExpressionsTest(String testName)
+ {
+ super(testName);
+ }
+
+ public void testWithoutHintClass1() throws Exception
+ {
+ Criteria criteria = new Criteria();
+ criteria.addEqualTo("qualifiers.name", "Cars");
+ Query query = QueryFactory.newQuery(News.class, criteria);
+
+ broker.clearCache();
+ List content = (List) broker.getCollectionByQuery(query);
+ assertEquals(1, content.size());
+ }
+
+ public void testWithoutHintClass2() throws Exception
+ {
+ Criteria criteria = new Criteria();
+ criteria.addLike("qualifiers.name", "%ers%");
+ Query query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+
+ broker.clearCache();
+ List content = (List) broker.getCollectionByQuery(query);
+ assertEquals(2, content.size());
+ }
public void testNotNullPathElement()
{
Criteria criteria = new Criteria();
criteria.addNotNull("qualifiers.name");
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ Query query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
List content = (List) broker.getCollectionByQuery(query);
- assertEquals(4,content.size());
+ assertEquals(4, content.size());
}
-
+
public void testSetPathClass()
{
Criteria criteria = new Criteria();
criteria.addNotNull("qualifiers.name");
QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- query.setPathClass("qualifiers",Category.class);
+ query.setPathClass("qualifiers", Category.class);
List content = (List) broker.getCollectionByQuery(query);
- assertEquals(2,content.size());
- for (Iterator iter = content.iterator(); iter.hasNext();)
+ assertEquals(2, content.size());
+ for(Iterator iter = content.iterator(); iter.hasNext();)
{
BaseContentImpl element = (BaseContentImpl) iter.next();
- assertTrue(element.getId() <=3 && element.getId() >=2);
+ assertTrue(element.getId() <= 3 && element.getId() >= 2);
}
}
-
+
public void testSetPathClassInCriteria()
{
Criteria criteria = new Criteria();
@@ -82,15 +83,15 @@
criteria.addNotNull("qualifiers.name");
criteria.setPathClass("qualifiers", Category.class);
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- List content = (List)broker.getCollectionByQuery(query);
+ Query query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ List content = (List) broker.getCollectionByQuery(query);
- assertEquals(2,content.size());
- for (Iterator iter = content.iterator(); iter.hasNext();)
+ assertEquals(2, content.size());
+ for(Iterator iter = content.iterator(); iter.hasNext();)
{
BaseContentImpl element = (BaseContentImpl) iter.next();
- assertTrue(element.getId() <=3 && element.getId() >=2);
+ assertTrue(element.getId() <= 3 && element.getId() >= 2);
}
}
@@ -100,11 +101,11 @@
Criteria criteria = new Criteria();
criteria.addNotNull("qualifiers.name");
QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- query.addPathClass("qualifiers",Qualifier.class);
- query.addPathClass("qualifiers",Area.class);
+ query.addPathClass("qualifiers", Qualifier.class);
+ query.addPathClass("qualifiers", Area.class);
List content = (List) broker.getCollectionByQuery(query);
- assertEquals(1,content.size());
- assertEquals(10,((Paper)content.get(0)).getId());
+ assertEquals(1, content.size());
+ assertEquals(10, ((Paper) content.get(0)).getId());
}
public void testAddPathClassInCriteria()
@@ -115,33 +116,33 @@
criteria.addPathClass("qualifiers", Qualifier.class);
criteria.addPathClass("qualifiers", Area.class);
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- List content = (List)broker.getCollectionByQuery(query);
+ Query query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(10, ((Paper)content.get(0)).getId());
+ assertEquals(10, ((Paper) content.get(0)).getId());
}
/**
- * The order of criteria elements influences the use of parenthesis,
- * If we add the Like element before the NotNull one we get the wrong query
+ * The order of criteria elements influences the use of parenthesis,
+ * If we add the Like element before the NotNull one we get the wrong query
* Right clause : WHERE WHERE (A2.NAME IS NOT NULL OR A2E1.NAME IS NOT NULL ) AND A0.HEADLINE LIKE 'Bra%
- * Wrong clause : WHERE (A0.HEADLINE LIKE 'Bra%' ) AND A2.NAME IS NOT NULL OR A2E1.NAME IS NOT NULL
+ * Wrong clause : WHERE (A0.HEADLINE LIKE 'Bra%' ) AND A2.NAME IS NOT NULL OR A2E1.NAME IS NOT NULL
*/
public void testAddPathClasses()
{
Criteria criteria = new Criteria();
-
- criteria.addLike("headline","Bra%");
+
+ criteria.addLike("headline", "Bra%");
criteria.addNotNull("qualifiers.name");
QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- query.addPathClass("qualifiers",Qualifier.class);
- query.addPathClass("qualifiers",Topic.class);
- query.addPathClass("qualifiers",Category.class);
-
+ query.addPathClass("qualifiers", Qualifier.class);
+ query.addPathClass("qualifiers", Topic.class);
+ query.addPathClass("qualifiers", Category.class);
+
List content = (List) broker.getCollectionByQuery(query);
- assertEquals(1,content.size());
- assertEquals(3,((News)content.get(0)).getId());
+ assertEquals(1, content.size());
+ assertEquals(3, ((News) content.get(0)).getId());
}
public void testAddPathClassesInCriteria()
@@ -154,19 +155,19 @@
criteria.addPathClass("qualifiers", Topic.class);
criteria.addPathClass("qualifiers", Category.class);
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- List content = (List)broker.getCollectionByQuery(query);
+ Query query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(3, ((News)content.get(0)).getId());
-}
+ assertEquals(3, ((News) content.get(0)).getId());
+ }
// Test for OJB-50
public void testComplexCriteriaWithPathClasses_1()
{
- Criteria criteria = new Criteria();
+ Criteria criteria = new Criteria();
Criteria categoryCriteria = new Criteria();
- Criteria topicCriteria = new Criteria();
+ Criteria topicCriteria = new Criteria();
topicCriteria.addEqualTo("qualifiers.importance", "important");
topicCriteria.addPathClass("qualifiers", Topic.class);
@@ -175,19 +176,19 @@
categoryCriteria.addPathClass("qualifiers", Category.class);
criteria.addOrCriteria(categoryCriteria);
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- List content = (List)broker.getCollectionByQuery(query);
+ Query query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(2, ((News)content.get(0)).getId());
+ assertEquals(2, ((News) content.get(0)).getId());
}
// Test for OJB-50
public void testComplexCriteriaWithPathClasses_2()
{
- Criteria criteria = new Criteria();
+ Criteria criteria = new Criteria();
Criteria categoryCriteria = new Criteria();
- Criteria topicCriteria = new Criteria();
+ Criteria topicCriteria = new Criteria();
categoryCriteria.addLike("qualifiers.description", "The%");
categoryCriteria.addPathClass("qualifiers", Category.class);
@@ -200,23 +201,23 @@
criteria.addOrCriteria(categoryCriteria);
criteria.addOrCriteria(topicCriteria);
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- List content = (List) broker.getCollectionByQuery(query);
+ QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(2, ((News)content.get(0)).getId());
- assertNotNull(((News)content.get(0)).getQualifiers());
- assertEquals(3, ((News)content.get(0)).getQualifiers().size());
-}
+ assertEquals(2, ((News) content.get(0)).getId());
+ assertNotNull(((News) content.get(0)).getQualifiers());
+ assertEquals(3, ((News) content.get(0)).getQualifiers().size());
+ }
// Test for OJB-50
public void testComplexCriteriaWithPathClasses_3()
{
- Criteria criteria = new Criteria();
- Criteria criteriaTopicExtAndCategory = new Criteria();
+ Criteria criteria = new Criteria();
+ Criteria criteriaTopicExtAndCategory = new Criteria();
Criteria categoryCriteria = new Criteria();
- Criteria topicCriteria = new Criteria();
- Criteria topicExtCriteria = new Criteria();
+ Criteria topicCriteria = new Criteria();
+ Criteria topicExtCriteria = new Criteria();
categoryCriteria.addLike("qualifiers.description", "The buyer");
categoryCriteria.addPathClass("qualifiers", Category.class);
@@ -234,13 +235,13 @@
criteria.addAndCriteria(criteriaTopicExtAndCategory);
criteria.addAndCriteria(topicCriteria);
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
- List content = (List) broker.getCollectionByQuery(query);
+ QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(2, ((News)content.get(0)).getId());
- assertNotNull(((News)content.get(0)).getQualifiers());
- assertEquals(3, ((News)content.get(0)).getQualifiers().size());
+ assertEquals(2, ((News) content.get(0)).getId());
+ assertNotNull(((News) content.get(0)).getQualifiers());
+ assertEquals(3, ((News) content.get(0)).getQualifiers().size());
}
// Test for OJB-62
@@ -253,10 +254,10 @@
List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(2, ((News)content.get(0)).getId());
- assertNotNull(((News)content.get(0)).getQualifiers());
- assertEquals(3, ((News)content.get(0)).getQualifiers().size());
-}
+ assertEquals(2, ((News) content.get(0)).getId());
+ assertNotNull(((News) content.get(0)).getQualifiers());
+ assertEquals(3, ((News) content.get(0)).getQualifiers().size());
+ }
// Test for OJB-62
public void testAddClassPathOnQuery_2()
@@ -274,75 +275,75 @@
public void testMultipleClassPath_1a()
{
Criteria criteria = new Criteria();
- criteria.addLike("headline", "SAL%");
+ criteria.addLike("date", "yes%");
criteria.addEqualTo("qualifiers.importance", "unimportant");
criteria.addEqualTo("qualifiers.name", "Sellers");
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ QueryByCriteria query = QueryFactory.newQuery(Paper.class, criteria, true);
query.addPathClass("qualifiers", Qualifier.class);
query.addPathClass("qualifiers", Topic.class);
query.addPathClass("qualifiers", TopicExt.class);
List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(11, ((Paper)content.get(0)).getId());
- assertNotNull(((Paper)content.get(0)).getQualifiers());
- assertEquals(2, ((Paper)content.get(0)).getQualifiers().size());
+ assertEquals(11, ((Paper) content.get(0)).getId());
+ assertNotNull(((Paper) content.get(0)).getQualifiers());
+ assertEquals(2, ((Paper) content.get(0)).getQualifiers().size());
}
// Test multiple path class on query object
public void testMultipleClassPath_1b()
{
Criteria criteria = new Criteria();
- criteria.addLike("headline", "SAL%");
+ criteria.addLike("date", "yes%");
criteria.addEqualTo("qualifiers.importance", "unimportant");
criteria.addEqualTo("qualifiers.name", "Sellers");
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ QueryByCriteria query = QueryFactory.newQuery(Paper.class, criteria, true);
//query.addPathClass("qualifiers", Qualifier.class);
query.addPathClass("qualifiers", Topic.class);
query.addPathClass("qualifiers", TopicExt.class);
List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(11, ((Paper)content.get(0)).getId());
- assertNotNull(((Paper)content.get(0)).getQualifiers());
- assertEquals(2, ((Paper)content.get(0)).getQualifiers().size());
+ assertEquals(11, ((Paper) content.get(0)).getId());
+ assertNotNull(((Paper) content.get(0)).getQualifiers());
+ assertEquals(2, ((Paper) content.get(0)).getQualifiers().size());
}
// Test multiple path class on criteria object
public void testMultipleClassPath_2a()
{
Criteria criteria = new Criteria();
- criteria.addLike("headline", "SAL%");
+ criteria.addLike("date", "yes%");
criteria.addEqualTo("qualifiers.importance", "unimportant");
criteria.addEqualTo("qualifiers.name", "Sellers");
criteria.addPathClass("qualifiers", Qualifier.class);
criteria.addPathClass("qualifiers", TopicExt.class);
criteria.addPathClass("qualifiers", Topic.class);
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ QueryByCriteria query = QueryFactory.newQuery(Paper.class, criteria, true);
List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(11, ((Paper)content.get(0)).getId());
- assertNotNull(((Paper)content.get(0)).getQualifiers());
- assertEquals(2, ((Paper)content.get(0)).getQualifiers().size());
+ assertEquals(11, ((Paper) content.get(0)).getId());
+ assertNotNull(((Paper) content.get(0)).getQualifiers());
+ assertEquals(2, ((Paper) content.get(0)).getQualifiers().size());
}
// Test multiple path class on query object
public void testMultipleClassPath_2b()
{
Criteria criteria = new Criteria();
- criteria.addLike("headline", "SAL%");
+ criteria.addLike("date", "yes%");
criteria.addEqualTo("qualifiers.importance", "unimportant");
criteria.addEqualTo("qualifiers.name", "Sellers");
//criteria.addPathClass("qualifiers", Qualifier.class);
criteria.addPathClass("qualifiers", TopicExt.class);
criteria.addPathClass("qualifiers", Topic.class);
- QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class, criteria, true);
+ QueryByCriteria query = QueryFactory.newQuery(Paper.class, criteria, true);
List content = (List) broker.getCollectionByQuery(query);
assertEquals(1, content.size());
- assertEquals(11, ((Paper)content.get(0)).getId());
- assertNotNull(((Paper)content.get(0)).getQualifiers());
- assertEquals(2, ((Paper)content.get(0)).getQualifiers().size());
+ assertEquals(11, ((Paper) content.get(0)).getId());
+ assertNotNull(((Paper) content.get(0)).getQualifiers());
+ assertEquals(2, ((Paper) content.get(0)).getQualifiers().size());
}
-}
\ No newline at end of file
+}
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/FactoryCreatedBaseObject.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/FactoryCreatedBaseObject.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/FactoryCreatedBaseObject.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/FactoryCreatedBaseObject.java Sat Jul 15 07:38:14 2006
@@ -16,6 +16,16 @@
this.value = value;
}
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
public String getName()
{
return name;
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/FactoryCreatedObject.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/FactoryCreatedObject.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/FactoryCreatedObject.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/FactoryCreatedObject.java Sat Jul 15 07:38:14 2006
@@ -12,13 +12,33 @@
this.value = value;
}
+ 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 int getValue()
{
return value;
+ }
+
+ public void setValue(int value)
+ {
+ this.value = value;
}
}
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/FieldConversionTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/FieldConversionTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/FieldConversionTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/FieldConversionTest.java Sat Jul 15 07:38:14 2006
@@ -1,13 +1,22 @@
package org.apache.ojb.broker;
+import java.io.Serializable;
+import java.sql.Time;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Vector;
+
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.apache.ojb.broker.accesslayer.conversions.ConversionException;
import org.apache.ojb.broker.accesslayer.conversions.FieldConversion;
+import org.apache.ojb.broker.accesslayer.conversions.IntList2VarcharFieldConversion;
+import org.apache.ojb.broker.accesslayer.conversions.StringList2VarcharFieldConversion;
+import org.apache.ojb.broker.accesslayer.conversions.StringVector2VarcharFieldConversion;
+import org.apache.ojb.broker.accesslayer.conversions.TimeList2VarcharFieldConversion;
import org.apache.ojb.junit.PBTestCase;
-import java.io.Serializable;
-
/**
* Test case to check the field conversion.
*
@@ -22,6 +31,296 @@
junit.textui.TestRunner.main(arr);
}
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ }
+
+ public void tearDown() throws Exception
+ {
+ super.tearDown();
+ }
+
+ public void testStringList2VarcharFieldConversion()
+ {
+ FieldConversion conv = new StringList2VarcharFieldConversion();
+ List list = new ArrayList();
+ list.add("1");
+ List result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new ArrayList();
+ list.add("");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new ArrayList();
+ list.add("");
+ list.add("");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new ArrayList();
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new ArrayList();
+ list.add(null);
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ result = doubleConvertList2Varchar(conv, null);
+ assertEquals(null, result);
+
+ result = doubleConvertList2Varchar(conv, Collections.EMPTY_LIST);
+ assertEquals(0, result.size());
+
+ list = new ArrayList();
+ list.add("");
+ list.add("1");
+ list.add("2");
+ // '#' is not allowed, but within a String the
+ // conversion pass nevertheless
+ list.add("2#a");
+ list.add("3");
+ list.add("");
+ list.add(null);
+ list.add("");
+ list.add(null);
+ list.add("8");
+ list.add("+9+");
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ // '#' is not allowed, but within a String the
+ // conversion pass nevertheless
+ list = new ArrayList();
+ list.add("e#e");
+ list.add("test");
+ list.add("a#a#a#a#a");
+ list.add("2#####a#b");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new ArrayList();
+ list.add("NULL");
+ list.add("EMPTY");
+ list.add("EMTPY");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new ArrayList();
+ list.add("NULL");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new ArrayList();
+ list.add("EMPTY");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new ArrayList();
+ list.add("EMTPY");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+ }
+
+ public void testStringVector2VarcharFieldConversion()
+ {
+ FieldConversion conv = new StringVector2VarcharFieldConversion();
+ List list = new Vector();
+ list.add("1");
+ List result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new Vector();
+ list.add("");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new Vector();
+ list.add("");
+ list.add("");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new Vector();
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new Vector();
+ list.add(null);
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ result = doubleConvertList2Varchar(conv, null);
+ assertEquals(null, result);
+
+ result = doubleConvertList2Varchar(conv, Collections.EMPTY_LIST);
+ assertEquals(0, result.size());
+
+ list = new Vector();
+ list.add("");
+ list.add("1");
+ list.add("2");
+ // '#' is not allowed, but within a String the
+ // conversion pass nevertheless
+ list.add("2#a");
+ list.add("3");
+ list.add("");
+ list.add(null);
+ list.add("");
+ list.add(null);
+ list.add("8");
+ list.add("+9+");
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ // '#' is not allowed, but within a String the
+ // conversion pass nevertheless
+ list = new Vector();
+ list.add("e#e");
+ list.add("test");
+ list.add("a#a#a#a#a");
+ list.add("2#####a#b");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new Vector();
+ list.add("NULL");
+ list.add("EMPTY");
+ list.add("EMTPY");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new Vector();
+ list.add("NULL");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new Vector();
+ list.add("EMPTY");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+
+ list = new Vector();
+ list.add("EMTPY");
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list, result);
+ }
+
+ public void testTimeList2VarcharFieldConversion()
+ {
+ FieldConversion conv = new TimeList2VarcharFieldConversion();
+
+ List list = new ArrayList();
+ list.add(new Time(1));
+ List result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list.toString(), result.toString());
+
+ list = new ArrayList();
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list.toString(), result.toString());
+
+ list = new ArrayList();
+ list.add(null);
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list.toString(), result.toString());
+
+ result = doubleConvertList2Varchar(conv, null);
+ assertEquals(null, result);
+
+ result = doubleConvertList2Varchar(conv, Collections.EMPTY_LIST);
+ assertEquals(0, result.size());
+
+ list = new ArrayList();
+ list.add(null);
+ list.add(new Time(1));
+ list.add(new Time(2));
+ list.add(new Time(System.currentTimeMillis()));
+ // '#' is not allowed, but within a String the
+ // conversion pass nevertheless
+ list.add(new Time(3));
+ list.add(new Time(4));
+ list.add(null);
+ list.add(null);
+ list.add(new Time(5));
+ list.add(new Time(6));
+ list.add(new Time(Long.MAX_VALUE));
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list.toString(), result.toString());
+ }
+
+ public void testIntList2VarcharFieldConversion()
+ {
+ FieldConversion conv = new IntList2VarcharFieldConversion();
+
+ List list = new ArrayList();
+ list.add(new Integer(1));
+ List result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list.toString(), result.toString());
+
+ list = new ArrayList();
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list.toString(), result.toString());
+
+ list = new ArrayList();
+ list.add(null);
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list.toString(), result.toString());
+
+ result = doubleConvertList2Varchar(conv, null);
+ assertEquals(null, result);
+
+ result = doubleConvertList2Varchar(conv, Collections.EMPTY_LIST);
+ assertEquals(0, result.size());
+
+ list = new ArrayList();
+ list.add(null);
+ list.add(new Integer(1));
+ list.add(new Integer(2));
+ // '#' is not allowed, but within a String the
+ // conversion pass nevertheless
+ list.add(new Integer(3));
+ list.add(new Integer(4));
+ list.add(null);
+ list.add(null);
+ list.add(new Integer(5));
+ list.add(new Integer(6));
+ list.add(null);
+ result = doubleConvertList2Varchar(conv, list);
+ assertEquals(list.toString(), result.toString());
+ }
+
+ private List doubleConvertList2Varchar(FieldConversion conv, List list)
+ {
+ String str = (String) conv.javaToSql(list);
+ //System.out.println("start: " + list);
+ //System.out.println("-->conv_sql: " + str);
+ List list2 = (List) conv.sqlToJava(str);
+ //System.out.println(" -->conv_java: " + list2);
+ str = (String) conv.javaToSql(list2);
+ //System.out.println(" -->conv_sql: " + str);
+ list2 = (List) conv.sqlToJava(str);
+ //System.out.println(" -->conv_java: " + list2);
+ //System.out.println("");
+
+ return list2;
+ }
+
+
+
public void testConversion()
{
int id = (int) (System.currentTimeMillis() % Integer.MAX_VALUE);
@@ -31,9 +330,9 @@
broker.store(vo);
broker.commitTransaction();
- Identity identity = new Identity(vo, broker);
+ Identity identity = broker.serviceIdentity().buildIdentity(vo);
broker.clearCache();
- ConversionVO find_vo = (ConversionVO) broker.getObjectByIdentity(identity);
+ broker.getObjectByIdentity(identity);
}
public static class FieldConversionConversionIdToInteger implements FieldConversion
@@ -66,6 +365,7 @@
{
public Object javaToSql(Object source) throws ConversionException
{
+ if(source == null) return null;
if (!(source instanceof Long))
{
throw new ConversionException(
@@ -77,6 +377,7 @@
public Object sqlToJava(Object source) throws ConversionException
{
+ if(source == null) return null;
if (!(source instanceof Integer))
{
throw new ConversionException(
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/InheritanceMultipleTableTest.java Sat Jul 15 07:38:14 2006
@@ -11,14 +11,11 @@
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
-import org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl;
import org.apache.ojb.broker.metadata.ClassDescriptor;
import org.apache.ojb.broker.query.Criteria;
import org.apache.ojb.broker.query.Query;
import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.query.QueryFactory;
-import org.apache.ojb.broker.util.logging.LoggerFactory;
-import org.apache.ojb.broker.util.logging.PoorMansLoggerImpl;
import org.apache.ojb.junit.PBTestCase;
/**
@@ -43,6 +40,41 @@
broker.serviceBatchManager().setBatchMode(true);
}
+ /**
+ * Bug:
+ * this test show a problem when using table-per-subclass inheritance
+ * and method PB.getByIdentity. When the real class of the Identity is not
+ * correct the returned object has the wrong type. For table-per-class inheritance strategy
+ * this behavior will be correct, but in this case OJB should anyway detect the correct
+ * type of the result.
+ * Strange: When set logging property
+ * org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.LogLevel=DEBUG
+ * instead of WARN, the test will pass.
+ */
+ public void testLookupByIdentity_2()
+ {
+ long timestamp = System.currentTimeMillis();
+ Long id_2 = new Long(timestamp);
+ String name = "testLookupByIdentity_2_" + timestamp;
+ Executive executive = new Executive(id_2, "executive_" + name, "department_1", null);
+
+ broker.beginTransaction();
+ broker.store(executive);
+ broker.commitTransaction();
+ broker.clearCache();
+
+ // we build the Identity with "wrong" real class specified
+ // (which is Executive, not Employee), but this shouldn't matter
+ // because OJB should detect the correct type on query
+ Identity oid = broker.serviceIdentity().buildIdentity(
+ Employee.class, new String[]{"id", "id_2"}, new Object[]{executive.getId(), executive.getId_2()});
+ Object result = broker.getObjectByIdentity(oid);
+
+ //System.out.println("Result: " + result);
+ assertEquals(Executive.class.getName(), result.getClass().getName());
+ assertEquals(executive, result);
+ }
+
public void testLookupByIdentity()
{
long timestamp = System.currentTimeMillis();
@@ -75,54 +107,68 @@
assertNotNull(newEm1);
assertNotNull(newEx1);
assertNotNull(newM1);
+
assertEquals(em1.getId(), newEm1.getId());
assertEquals(em1.getId_2(), newEm1.getId_2());
assertEquals(2, newM1.getExecutives().size());
assertEquals(m1.getId(), newM1.getId());
assertEquals(m1.getId_2(), newM1.getId_2());
+ assertEquals(2, newM1.getExecutives().size());
assertEquals(ex1.getId(), newEx1.getId());
assertEquals(ex1.getId_2(), newEx1.getId_2());
+ assertEquals(ex1.getDepartment(), newEx1.getDepartment());
}
- /**
- * Bug:
- * this test show a problem when using table-per-subclass inheritance
- * and method PB.getByIdentity. When the real class of the Identity is not
- * correct the returned object has the wrong type. For table-per-class inheritance strategy
- * this behavior will be correct, but in this case OJB should anyway detect the correct
- * type of the result.
- * Strange: When set logging property
- * org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl.LogLevel=DEBUG
- * instead of WARN, the test will pass.
- */
- public void testLookupByIdentity_2()
+ public void testLookupByQuery()
{
-// PoorMansLoggerImpl logger = (PoorMansLoggerImpl) LoggerFactory.getLogger(SqlGeneratorDefaultImpl.class);
-// logger.setLevel("DEBUG");
-// logger.setLevel("WARN");
-
long timestamp = System.currentTimeMillis();
Long id_2 = new Long(timestamp);
- String name = "testLookupByIdentity_2_" + timestamp;
- Executive executive = new Executive(id_2, "executive_" + name, "department_1", null);
+ String name = "testLookupByIdentity_" + timestamp;
+ Employee em1 = new Employee(id_2, "employee_" + name);
+ Executive ex1 = new Executive(id_2, "executive_" + name, "department_1", null);
+ Executive ex2 = new Executive(id_2, "executive_" + name, "department_2", null);
+ ArrayList list = new ArrayList();
+ list.add(ex1);
+ list.add(ex2);
+ Manager m1 = new Manager(id_2, "manager_" + name);
+ m1.setExecutives(list);
broker.beginTransaction();
- broker.store(executive);
+ broker.store(em1);
+ broker.store(m1);
broker.commitTransaction();
+
+ Criteria crit = new Criteria();
+ crit.addEqualTo("name", "employee_" + name);
+ Query q = QueryFactory.newQuery(Employee.class, crit);
+ Employee newEm1 = (Employee) broker.getObjectByQuery(q);
+
+ crit = new Criteria();
+ crit.addEqualTo("name", "executive_" + name);
+ q = QueryFactory.newQuery(Employee.class, crit);
+ Executive newEx1 = (Executive) broker.getObjectByQuery(q);
+
+ crit = new Criteria();
+ crit.addEqualTo("name", "manager_" + name);
+ q = QueryFactory.newQuery(Employee.class, crit);
+ Manager newM1 = (Manager) broker.getObjectByQuery(q);
+
broker.clearCache();
- // we build the Identity with "wrong" real class specified
- // (which is Executive, not Employee), but this shouldn't matter
- // because OJB should detect the correct type on query
- Identity oid = broker.serviceIdentity().buildIdentity(
- Employee.class, new String[]{"id", "id_2"}, new Object[]{executive.getId(), executive.getId_2()});
- Object result = broker.getObjectByIdentity(oid);
+ assertNotNull(newEm1);
+ assertNotNull(newEx1);
+ assertNotNull(newM1);
+ assertEquals(2, newM1.getExecutives().size());
+ assertEquals(em1.getId(), newEm1.getId());
+ assertEquals(em1.getId_2(), newEm1.getId_2());
- System.out.println("Result: " + result);
- assertEquals(Executive.class.getName(), result.getClass().getName());
- assertEquals(executive, result);
+ assertEquals(m1.getId(), newM1.getId());
+ assertEquals(m1.getId_2(), newM1.getId_2());
+
+ assertEquals(ex1.getId(), newEx1.getId());
+ assertEquals(ex1.getId_2(), newEx1.getId_2());
}
public void testQueryInheritancedObjects()
@@ -370,6 +416,9 @@
public void testInheritedReferences() throws Exception
{
+ // TODO: fix this bug
+ //if(ojbSkipKnownIssueProblem("[OJB-84] Will be fixed in next version")) return;
+
long timestamp = System.currentTimeMillis();
Long id_2 = new Long(timestamp);
String name = "testInheritedReferences_" + timestamp;
@@ -1262,6 +1311,36 @@
assertNull(newM1);
}
+ public void testDelete_2()
+ {
+ long timestamp = System.currentTimeMillis();
+ Long id_2 = new Long(timestamp);
+ String name = "testDelete_2_" + timestamp;
+ Manager m1 = new Manager(id_2, "manager_" + name);
+
+ broker.beginTransaction();
+ broker.store(m1);
+ broker.commitTransaction();
+
+ Identity m1_oid = broker.serviceIdentity().buildIdentity(m1);
+ broker.clearCache();
+ Manager newM1 = (Manager) broker.getObjectByIdentity(m1_oid);
+ assertNotNull(newM1);
+
+ broker.beginTransaction();
+ broker.delete(newM1);
+ broker.commitTransaction();
+
+ newM1 = (Manager) broker.getObjectByIdentity(m1_oid);
+ assertNull(newM1);
+
+ Query q = QueryFactory.newQuery(
+ Employee.class,
+ new Criteria().addEqualTo("id", m1.getId()).addEqualTo("name", m1.getName()));
+ Object result = broker.getObjectByQuery(q);
+ assertNull(result);
+ }
+
/**
* Check backward compatibility with 'old' super-reference handling using explicite
* anonymous field for FK to super class/table.
@@ -1783,6 +1862,25 @@
this.name = name;
}
+ public List getManagers()
+ {
+ return managers;
+ }
+
+ public void setManagers(List managers)
+ {
+ this.managers = managers;
+ }
+
+ public void addManager(Manager manager)
+ {
+ if(this.managers == null)
+ {
+ this.managers = new ArrayList();
+ }
+ this.managers.add(manager);
+ }
+
public List getShareholders()
{
return shareholders;
@@ -1820,32 +1918,6 @@
{
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE, false, Consortium.class);
}
-
- /**
- * @return the managers
- */
- public List getManagers()
- {
- return managers;
- }
-
- /**
- * @param managers the managers to set
- */
- public void setManagers(List managers)
- {
- this.managers = managers;
- }
-
- public void addManager(Manager manager)
- {
- if(this.managers == null)
- {
- this.managers = new ArrayList();
- }
- this.managers.add(manager);
- }
-
}
public static class Entity
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/InitializableObject.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/InitializableObject.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/InitializableObject.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/InitializableObject.java Sat Jul 15 07:38:14 2006
@@ -22,4 +22,24 @@
initCalled = true;
}
+ public boolean isInitCalled()
+ {
+ return initCalled;
+ }
+
+ public void setInitCalled(boolean initCalled)
+ {
+ this.initCalled = initCalled;
+ }
+
+ public int getId()
+ {
+ return id;
+ }
+
+ public void setId(int id)
+ {
+ this.id = id;
+ }
+
}
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/KeyConstraintViolationTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/KeyConstraintViolationTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/KeyConstraintViolationTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/KeyConstraintViolationTest.java Sat Jul 15 07:38:14 2006
@@ -1,5 +1,6 @@
package org.apache.ojb.broker;
+import org.apache.ojb.broker.util.ObjectModification;
import org.apache.ojb.junit.PBTestCase;
/**
@@ -34,7 +35,7 @@
obj.setProductGroupId(new Integer(1));
obj.articleName = "repeated Article";
// storing once should be ok.
- broker.store(obj, OJB.INSERT);
+ broker.store(obj, ObjectModification.INSERT);
broker.commitTransaction();
broker.clearCache();
@@ -47,7 +48,7 @@
obj2.articleName = "repeated Article";
// store it again!
- broker.store(obj2, OJB.INSERT);
+ broker.store(obj2, ObjectModification.INSERT);
broker.commitTransaction();
fail("Should have thrown a KeyConstraintViolatedException");
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/M2NTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/M2NTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/M2NTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/M2NTest.java Sat Jul 15 07:38:14 2006
@@ -110,12 +110,12 @@
assertNull(new_p_1);
}
- public void testSimpleStore()
+ public void testSimpleStore_1()
{
ojbChangeReferenceSetting(MovieImpl.class, "actors", true, OBJECT, OBJECT, false);
ojbChangeReferenceSetting(MovieImpl.class, "actors2", true, OBJECT, OBJECT, false);
ojbChangeReferenceSetting(Actor.class, "movies", true, OBJECT, OBJECT, false);
- String postfix = "testSimple_" + System.currentTimeMillis();
+ String postfix = "testSimpleStore_1_" + System.currentTimeMillis();
Movie m = new MovieImpl(postfix, postfix, null);
Actor a = new Actor(postfix);
@@ -133,6 +133,30 @@
assertEquals(1, a.getMovies().size());
}
+ public void testSimpleStore_2()
+ {
+ ojbChangeReferenceSetting(MovieImpl.class, "actors", false, OBJECT, OBJECT, false);
+ ojbChangeReferenceSetting(MovieImpl.class, "actors2", false, OBJECT, OBJECT, false);
+ ojbChangeReferenceSetting(Actor.class, "movies", false, OBJECT, OBJECT, false);
+ String postfix = "testSimpleStore_2_" + System.currentTimeMillis();
+ Movie m = new MovieImpl(postfix, postfix, null);
+ Actor a = new Actor(postfix);
+
+ broker.beginTransaction();
+ broker.store(m);
+ broker.store(a);
+
+ m.addActor(a);
+ broker.store(m);
+ broker.commitTransaction();
+
+ // needed, because autoretrieve is set false
+ broker.retrieveAllReferences(a);
+
+ assertNotNull(a.getMovies());
+ assertEquals(1, a.getMovies().size());
+ }
+
/**
* Test deprecated auto Settings
*/
@@ -654,7 +678,6 @@
broker.beginTransaction();
broker.store(movie);
broker.commitTransaction();
- broker.clearCache();
/*
all auto-xxx settings are false, so only the movie object should be
@@ -1246,21 +1269,14 @@
return QueryFactory.newQuery(Movie.class, c);
}
- QueryByCriteria movieWithArrayQuery(String postfix)
- {
- Criteria c = new Criteria();
- c.addLike("idStr", "%" + postfix + "%");
- return QueryFactory.newQuery(MovieWithArray.class, c);
- }
-
- QueryByCriteria queryActor(String postfix)
+ Query queryActor(String postfix)
{
Criteria c = new Criteria();
c.addLike("name", "%" + postfix + "%");
return QueryFactory.newQuery(Actor.class, c);
}
- QueryByCriteria queryRole(Actor actor, Movie movie)
+ Query queryRole(Actor actor, Movie movie)
{
Criteria c = new Criteria();
if(actor != null) c.addEqualTo("actorId", actor.getId());
@@ -1279,7 +1295,7 @@
return QueryFactory.newQuery(Role.class, c);
}
- QueryByCriteria roleQueryActorOrMovieMatch(Actor actor, Movie movie)
+ Query roleQueryActorOrMovieMatch(Actor actor, Movie movie)
{
Criteria c_1 = new Criteria();
Criteria c_2 = new Criteria();
@@ -1298,6 +1314,13 @@
c_2 = c_1;
}
return QueryFactory.newQuery(Role.class, c_2);
+ }
+
+ QueryByCriteria movieWithArrayQuery(String postfix)
+ {
+ Criteria c = new Criteria();
+ c.addLike("idStr", "%" + postfix + "%");
+ return QueryFactory.newQuery(MovieWithArray.class, c);
}
/**
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/MtoNTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/MtoNTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/MtoNTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/MtoNTest.java Sat Jul 15 07:38:14 2006
@@ -126,9 +126,9 @@
qual.setName("qual " + now);
paper.setQualifiers(Arrays.asList(new Qualifier[] { qual }));
broker.beginTransaction();
- broker.store(paper); // store Paper and intermediary table only
broker.store(qual); // store Qualifier
- Identity paperId = new Identity(paper, broker);
+ broker.store(paper); // store Paper and intermediary table only
+ Identity paperId = broker.serviceIdentity().buildIdentity(paper);
broker.commitTransaction();
broker.clearCache();
@@ -366,8 +366,10 @@
Category categoryId1 = new Category(1);
+ broker.beginTransaction();
MtoNImplementor m2n = new MtoNImplementor(broker, "qualifiers", newsId2, categoryId1);
broker.deleteMtoNImplementor(m2n);
+ broker.commitTransaction();
broker.clearCache();
newNews = (News) broker.getObjectByIdentity(id);
@@ -386,7 +388,9 @@
int size = newNews.getQualifiers().size();
MtoNImplementor m2n = new MtoNImplementor(broker, "qualifiers", newsId2,categoryId2);
+ broker.beginTransaction();
broker.addMtoNImplementor(m2n);
+ broker.commitTransaction();
broker.clearCache();
newNews = (News) broker.getObjectByIdentity(id);
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/MultipleDBTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/MultipleDBTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/MultipleDBTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/MultipleDBTest.java Sat Jul 15 07:38:14 2006
@@ -61,7 +61,7 @@
*/
public void testMaterializeFromDifferentDB()
{
- String name = "testMaterializeFromDifferentDB" + System.currentTimeMillis();
+ String name = "testMaterializeFromDifferentDB_" + System.currentTimeMillis();
PersistenceBroker broker = ojb.lookupBroker();
PersistenceBroker brokerFarAway = ojb.lookupBroker(TestHelper.FAR_AWAY_KEY);
@@ -73,7 +73,7 @@
broker.store(obj);
broker.commitTransaction();
- Identity oid = new Identity(obj, broker);
+ Identity oid = broker.serviceIdentity().buildIdentity(obj);
MultipleObjectRef ref_1 = new MultipleObjectRef();
MultipleObjectRef ref_2 = new MultipleObjectRef();
@@ -99,14 +99,8 @@
}
finally
{
- if(broker != null)
- {
- broker.close();
- }
- if(brokerFarAway != null)
- {
- brokerFarAway.close();
- }
+ if(broker != null) broker.close();
+ if(brokerFarAway != null) brokerFarAway.close();
}
}
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/ObjectRepository.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/ObjectRepository.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/ObjectRepository.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/ObjectRepository.java Sat Jul 15 07:38:14 2006
@@ -149,14 +149,33 @@
public static abstract class AB extends ABE implements Serializable
{
- /** the special attribute telling OJB which concrete class this Object has.
+ private int id;
+ /**
+ * This special attribute telling OJB which concrete class this Object has.
* NOTE: this attribute MUST be called ojbConcreteClass
*/
- protected String ojbConcreteClass;
+ private String ojbConcreteClass;
- public String getConcreteClass()
+ protected AB()
{
- return ojbConcreteClass;
+ // this guarantee that always the correct class name will be set
+ this.ojbConcreteClass = this.getClass().getName();
+ }
+
+ protected AB(int id)
+ {
+ this();
+ this.id = id;
+ }
+
+ public int getId()
+ {
+ return id;
+ }
+
+ public void setId(int id)
+ {
+ this.id = id;
}
public String getOjbConcreteClass()
@@ -170,7 +189,6 @@
}
}
-
public static interface AAlone
{
}
@@ -181,19 +199,17 @@
public static class A extends AB implements AAlone
{
- int id;
- int someValue;
- String someAField;
+ private int someValue;
+ private String someAField;
public A()
{
- setOjbConcreteClass(A.class.getName());
+ super();
}
- public A(int pId, String pOjbConcreteClass, int pSomeValue)
+ public A(int pId, int pSomeValue)
{
- this.id = pId;
- this.ojbConcreteClass = pOjbConcreteClass;
+ super(pId);
this.someValue = pSomeValue;
}
@@ -207,16 +223,6 @@
this.someAField = someAField;
}
- public int getId()
- {
- return id;
- }
-
- public void setId(int id)
- {
- this.id = id;
- }
-
public int getSomeValue()
{
return someValue;
@@ -230,19 +236,17 @@
public static class B extends AB
{
- int id;
- int someValue;
- String someBField;
+ private int someValue;
+ private String someBField;
public B()
{
- setOjbConcreteClass(B.class.getName());
+ super();
}
- public B(int pId, String pOjbConcreteClass, int pSomeValue)
+ public B(int pId, int pSomeValue)
{
- this.id = pId;
- this.ojbConcreteClass = pOjbConcreteClass;
+ super(pId);
this.someValue = pSomeValue;
}
@@ -256,16 +260,6 @@
this.someBField = someBField;
}
- public int getId()
- {
- return id;
- }
-
- public void setId(int id)
- {
- this.id = id;
- }
-
public int getSomeValue()
{
return someValue;
@@ -282,35 +276,29 @@
public B1()
{
super();
- setOjbConcreteClass(B1.class.getName());
}
- public B1(int pId, String pOjbConcreteClass, int pSomeValue)
+ public B1(int pId, int pSomeValue)
{
- super(pId, pOjbConcreteClass, pSomeValue);
+ super(pId, pSomeValue);
}
}
public static class C implements Serializable
{
- int id;
- String ojbConcreteClass;
- int someValue;
-
- public String getConcreteClass()
- {
- return ojbConcreteClass;
- }
+ private String ojbConcreteClass;
+ private int id;
+ private int someValue;
public C()
{
- ojbConcreteClass = C.class.getName();
+ ojbConcreteClass = this.getClass().getName();
}
- public C(int pId, String pOjbConcreteClass, int pSomeValue)
+ public C(int pId, int pSomeValue)
{
+ this();
this.id = pId;
- this.ojbConcreteClass = pOjbConcreteClass;
this.someValue = pSomeValue;
}
@@ -349,21 +337,19 @@
{
public D()
{
- ojbConcreteClass = D.class.getName();
+ super();
}
- public D(int pId, String pOjbConcreteClass, int pSomeValue)
+ public D(int pId, int pSomeValue)
{
- this.id = pId;
- this.ojbConcreteClass = pOjbConcreteClass;
- this.someValue = pSomeValue;
+ super(pId, pSomeValue);
}
}
public static class E extends ABE implements Serializable
{
- Integer id;
- protected int someSuperValue;
+ private Integer id;
+ private int someSuperValue;
public Integer getId()
{
@@ -384,7 +370,6 @@
{
this.someSuperValue = someSuperValue;
}
-
}
public static abstract class LMNO implements Serializable
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/OneToManyTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/OneToManyTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/OneToManyTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/OneToManyTest.java Sat Jul 15 07:38:14 2006
@@ -54,23 +54,23 @@
broker.clearCache();
pg = (ProductGroupWithRemovalAwareCollection) broker.getObjectByIdentity(pgId);
- assertEquals(3,pg.getAllArticles().size());
+ assertEquals(3,pg.getAllArticlesInGroup().size());
- InterfaceArticle ic = (InterfaceArticle) pg.getAllArticles().get(2);
+ InterfaceArticle ic = (InterfaceArticle) pg.getAllArticlesInGroup().get(2);
// BRJ:
// the object to be removed must be part of the collection
// removing a materialized object when the collection contains proxies
// does not work with the new implementation of RemovalAwareCollection
- pg.getAllArticles().remove(ic);
- pg.getAllArticles().remove(0);
+ pg.getAllArticlesInGroup().remove(ic);
+ pg.getAllArticlesInGroup().remove(0);
broker.beginTransaction();
broker.store(pg);
broker.commitTransaction();
broker.clearCache();
pg = (ProductGroupWithRemovalAwareCollection) broker.getObjectByIdentity(pgId);
- assertEquals(1,pg.getAllArticles().size());
+ assertEquals(1,pg.getAllArticlesInGroup().size());
}
/**
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable1Impl.java Sat Jul 15 07:38:14 2006
@@ -6,4 +6,14 @@
public class Ownable1Impl implements Ownable1
{
private Integer id;
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
}
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Ownable2Impl.java Sat Jul 15 07:38:14 2006
@@ -6,4 +6,14 @@
public class Ownable2Impl implements Ownable2
{
private Integer id;
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
}
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/Owner.java Sat Jul 15 07:38:14 2006
@@ -11,8 +11,33 @@
private Integer ownedId;
private Ownable owned;
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public Integer getOwnedId()
+ {
+ return ownedId;
+ }
+
+ public void setOwnedId(Integer ownedId)
+ {
+ this.ownedId = ownedId;
+ }
+
public Ownable getOwned()
{
return owned;
+ }
+
+ public void setOwned(Ownable owned)
+ {
+ this.owned = owned;
}
}
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/cache/LocalCacheTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/cache/LocalCacheTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/cache/LocalCacheTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/cache/LocalCacheTest.java Sat Jul 15 07:38:14 2006
@@ -21,8 +21,6 @@
import java.util.List;
import org.apache.ojb.broker.Identity;
-import org.apache.ojb.broker.metadata.ClassDescriptor;
-import org.apache.ojb.broker.metadata.MetadataException;
import org.apache.ojb.broker.metadata.ObjectReferenceDescriptor;
import org.apache.ojb.broker.query.Criteria;
import org.apache.ojb.broker.query.Query;
@@ -33,13 +31,12 @@
* Tests both caching level (LocalCache + real OjbjectCache) using circular
* relationship tests.
*
- * @author <a href="mailto:arminw@apache.org">Armin Waibel</a>
* @version $Id$
*/
public class LocalCacheTest extends PBTestCase
{
- private static final int CASCADE_NONE = ObjectReferenceDescriptor.CASCADE_NONE;
- private static final int CASCADE_LINK = ObjectReferenceDescriptor.CASCADE_LINK;
+ //private static final int CASCADE_NONE = ObjectReferenceDescriptor.CASCADE_NONE;
+ //private static final int CASCADE_LINK = ObjectReferenceDescriptor.CASCADE_LINK;
private static final int CASCADE_OBJECT = ObjectReferenceDescriptor.CASCADE_OBJECT;
public static void main(String[] args)
@@ -50,28 +47,24 @@
public void tearDown() throws Exception
{
- setReferenceMetadata(Person.class, "father", true, CASCADE_NONE, CASCADE_NONE, false);
- setReferenceMetadata(Person.class, "grandfather", true, CASCADE_NONE, CASCADE_NONE, false);
- setReferenceMetadata(Person.class, "childs", true, CASCADE_NONE, CASCADE_NONE, false);
- setReferenceMetadata(Person.class, "grandchilds", true, CASCADE_NONE, CASCADE_NONE, false);
super.tearDown();
}
public void testCircularStore()
{
// prepare test
- setReferenceMetadata(Person.class, "father", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
- setReferenceMetadata(Person.class, "grandfather", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
- setReferenceMetadata(Person.class, "childs", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
- setReferenceMetadata(Person.class, "grandchilds", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "father", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "grandfather", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "childs", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "grandchilds", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
String postfix = "_testCircularStore_" + System.currentTimeMillis();
Person junior = createComplexFamily(postfix);
broker.beginTransaction();
broker.store(junior);
broker.commitTransaction();
- Identity oidJunior = new Identity(junior, broker);
- Identity oidSenior = new Identity(junior.getFather(), broker);
+ Identity oidJunior = broker.serviceIdentity().buildIdentity(junior);
+ Identity oidSenior = broker.serviceIdentity().buildIdentity(junior.getFather());
broker.clearCache();
Criteria crit = new Criteria();
@@ -93,31 +86,79 @@
Collection result = broker.getCollectionByQuery(q);
assertEquals(2, result.size());
- for (Iterator iterator = result.iterator(); iterator.hasNext();)
+ for(Iterator iterator = result.iterator(); iterator.hasNext();)
{
- Person p = (Person)iterator.next();
+ Person p = (Person) iterator.next();
assertNotNull(p.getFather());
- assertEquals("jeffJunior"+postfix, p.getFather().getName());
+ assertEquals("jeffJunior" + postfix, p.getFather().getName());
assertNotNull(p.getGrandfather());
- assertEquals("jeffSenior"+postfix, p.getGrandfather().getName());
+ assertEquals("jeffSenior" + postfix, p.getGrandfather().getName());
+ }
+ }
+
+ /**
+ * same as above but without clearing the cache
+ */
+ public void testCircularStore_2()
+ {
+ // prepare test
+ ojbChangeReferenceSetting(Person.class, "father", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "grandfather", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "childs", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "grandchilds", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+
+ String postfix = "_testCircularStore_2_" + System.currentTimeMillis();
+ Person junior = createComplexFamily(postfix);
+ broker.beginTransaction();
+ broker.store(junior);
+ broker.commitTransaction();
+ Identity oidJunior = broker.serviceIdentity().buildIdentity(junior);
+ Identity oidSenior = broker.serviceIdentity().buildIdentity(junior.getFather());
+
+ Criteria crit = new Criteria();
+ crit.addLike("name", "jeffChild_%" + postfix);
+ Query q = QueryFactory.newQuery(Person.class, crit);
+
+ Person newJunior = (Person) broker.getObjectByIdentity(oidJunior);
+ assertNotNull(newJunior);
+ assertNotNull(newJunior.getFather());
+ assertNotNull(newJunior.getChilds());
+ assertEquals(2, newJunior.getChilds().size());
+
+ Person newSenior = (Person) broker.getObjectByIdentity(oidSenior);
+ assertNotNull(newSenior);
+ assertNotNull(newSenior.getChilds());
+ assertEquals(1, newSenior.getChilds().size());
+ assertNotNull(newSenior.getGrandchilds());
+ assertEquals(2, newSenior.getGrandchilds().size());
+
+ Collection result = broker.getCollectionByQuery(q);
+ assertEquals(2, result.size());
+ for(Iterator iterator = result.iterator(); iterator.hasNext();)
+ {
+ Person p = (Person) iterator.next();
+ assertNotNull(p.getFather());
+ assertEquals("jeffJunior" + postfix, p.getFather().getName());
+ assertNotNull(p.getGrandfather());
+ assertEquals("jeffSenior" + postfix, p.getGrandfather().getName());
}
}
public void testCircularStoreUpdate()
{
// prepare test
- setReferenceMetadata(Person.class, "father", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
- setReferenceMetadata(Person.class, "grandfather", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
- setReferenceMetadata(Person.class, "childs", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
- setReferenceMetadata(Person.class, "grandchilds", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "father", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "grandfather", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "childs", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "grandchilds", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
String postfix = "_testCircularStore_" + System.currentTimeMillis();
Person junior = createComplexFamily(postfix);
broker.beginTransaction();
broker.store(junior);
broker.commitTransaction();
- Identity oidJunior = new Identity(junior, broker);
- Identity oidSenior = new Identity(junior.getFather(), broker);
+ Identity oidJunior = broker.serviceIdentity().buildIdentity(junior);
+ Identity oidSenior = broker.serviceIdentity().buildIdentity(junior.getFather());
broker.clearCache();
Criteria crit = new Criteria();
@@ -139,17 +180,17 @@
Collection result = broker.getCollectionByQuery(q);
assertEquals(2, result.size());
- for (Iterator iterator = result.iterator(); iterator.hasNext();)
+ for(Iterator iterator = result.iterator(); iterator.hasNext();)
{
- Person p = (Person)iterator.next();
+ Person p = (Person) iterator.next();
assertNotNull(p.getFather());
- assertEquals("jeffJunior"+postfix, p.getFather().getName());
+ assertEquals("jeffJunior" + postfix, p.getFather().getName());
assertNotNull(p.getGrandfather());
- assertEquals("jeffSenior"+postfix, p.getGrandfather().getName());
+ assertEquals("jeffSenior" + postfix, p.getGrandfather().getName());
}
broker.beginTransaction();
- Person newChild = new Person("newGrandChild"+postfix, null, newSenior, null);
+ Person newChild = new Person("newGrandChild" + postfix, null, newSenior, null);
newSenior.addGranschild(newChild);
broker.store(newSenior);
broker.commitTransaction();
@@ -163,22 +204,65 @@
assertEquals(3, newSenior.getGrandchilds().size());
}
- private void setReferenceMetadata(Class clazz, String reference, boolean autoretrieve, int autoupdate, int autodelete, boolean useProxy)
+ /**
+ * same as above, but without clearing the cache
+ */
+ public void testCircularStoreUpdate_2()
{
- ClassDescriptor cld = broker.getClassDescriptor(clazz);
- ObjectReferenceDescriptor ord = cld.getObjectReferenceDescriptorByName(reference);
- if(ord == null)
- {
- ord = cld.getCollectionDescriptorByName(reference);
- }
- if(ord == null)
+ // prepare test
+ ojbChangeReferenceSetting(Person.class, "father", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "grandfather", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "childs", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+ ojbChangeReferenceSetting(Person.class, "grandchilds", true, CASCADE_OBJECT, CASCADE_OBJECT, false);
+
+ String postfix = "_testCircularStore_2_" + System.currentTimeMillis();
+ Person junior = createComplexFamily(postfix);
+ broker.beginTransaction();
+ broker.store(junior);
+ broker.commitTransaction();
+ Identity oidJunior = broker.serviceIdentity().buildIdentity(junior);
+ Identity oidSenior = broker.serviceIdentity().buildIdentity(junior.getFather());
+
+ Criteria crit = new Criteria();
+ crit.addLike("name", "jeffChild_%" + postfix);
+ Query q = QueryFactory.newQuery(Person.class, crit);
+
+ Person newJunior = (Person) broker.getObjectByIdentity(oidJunior);
+ assertNotNull(newJunior);
+ assertNotNull(newJunior.getFather());
+ assertNotNull(newJunior.getChilds());
+ assertEquals(2, newJunior.getChilds().size());
+
+ Person newSenior = (Person) broker.getObjectByIdentity(oidSenior);
+ assertNotNull(newSenior);
+ assertNotNull(newSenior.getChilds());
+ assertEquals(1, newSenior.getChilds().size());
+ assertNotNull(newSenior.getGrandchilds());
+ assertEquals(2, newSenior.getGrandchilds().size());
+
+ Collection result = broker.getCollectionByQuery(q);
+ assertEquals(2, result.size());
+ for(Iterator iterator = result.iterator(); iterator.hasNext();)
{
- throw new MetadataException("Reference with name '" + reference + "' does not exist in " + clazz.getName());
+ Person p = (Person) iterator.next();
+ assertNotNull(p.getFather());
+ assertEquals("jeffJunior" + postfix, p.getFather().getName());
+ assertNotNull(p.getGrandfather());
+ assertEquals("jeffSenior" + postfix, p.getGrandfather().getName());
}
- ord.setCascadeRetrieve(autoretrieve);
- ord.setCascadingStore(autoupdate);
- ord.setCascadingDelete(autodelete);
- ord.setLazy(useProxy);
+
+ broker.beginTransaction();
+ Person newChild = new Person("newGrandChild" + postfix, null, newSenior, null);
+ newSenior.addGranschild(newChild);
+ broker.store(newSenior);
+ broker.commitTransaction();
+
+ newSenior = (Person) broker.getObjectByIdentity(oidSenior);
+ assertNotNull(newSenior);
+ assertNotNull(newSenior.getChilds());
+ assertEquals(1, newSenior.getChilds().size());
+ assertNotNull(newSenior.getGrandchilds());
+ assertEquals(3, newSenior.getGrandchilds().size());
}
/**
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/cloneable/CloneableGroup.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/cloneable/CloneableGroup.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/cloneable/CloneableGroup.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/cloneable/CloneableGroup.java Sat Jul 15 07:38:14 2006
@@ -21,18 +21,25 @@
return super.clone();
}
- /**
- * mapped to column KategorieName
- */
- public final String getName()
- {
- return groupName;
- }
+ public Integer getId()
+ {
+ return id;
+ }
- public final void setName(String name)
- {
- this.groupName = name;
- }
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public String getGroupName()
+ {
+ return groupName;
+ }
+
+ public void setGroupName(String groupName)
+ {
+ this.groupName = groupName;
+ }
public String toString()
{
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/MetadataMultithreadedTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/MetadataMultithreadedTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/MetadataMultithreadedTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/MetadataMultithreadedTest.java Sat Jul 15 07:38:14 2006
@@ -1,25 +1,23 @@
package org.apache.ojb.broker.metadata;
-import java.util.ArrayList;
-import java.util.List;
import java.util.Collection;
import java.util.Iterator;
+import java.util.List;
import org.apache.commons.lang.ClassUtils;
+import org.apache.ojb.broker.Article;
import org.apache.ojb.broker.OJBRuntimeException;
import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.PersistenceConfiguration;
import org.apache.ojb.broker.Person;
-import org.apache.ojb.broker.Project;
-import org.apache.ojb.broker.Role;
-import org.apache.ojb.broker.Article;
import org.apache.ojb.broker.ProductGroupWithCollectionProxy;
import org.apache.ojb.broker.accesslayer.OJBIterator;
import org.apache.ojb.broker.query.Query;
-import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.query.QueryFactory;
import org.apache.ojb.broker.sequence.Repository;
import org.apache.ojb.broker.util.ClassHelper;
+import org.apache.ojb.broker.util.logging.Logger;
+import org.apache.ojb.broker.util.logging.LoggerFactory;
import org.apache.ojb.junit.JUnitExtensions;
/**
@@ -32,10 +30,17 @@
// we change table name in test for target class
private String newTestObjectString = "SM_TAB_MAX_AA";
private Class targetTestClass = Repository.SMMaxA.class;
+ int loops = 7;
+ int threads = 4;
+ // need min 80% free memory after test campared with
+ // beginning, else test fails
+ int minimalFreeMemAfterTest = 80;
private String oldTestObjectString;
DescriptorRepository defaultRepository;
+ protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+
public MetadataMultithreadedTest(String s)
{
super(s);
@@ -105,9 +110,11 @@
// supported
Throwable expectedThrowable = null;
try {
+ //System.err.println("------ The following exception is part of the tests...");
groupIter.next();
} catch (Throwable t) {
expectedThrowable = t;
+ //System.err.println("------");
}
assertNotNull("Should get metadata exception from proxy", expectedThrowable);
groupIter.releaseDbResources();
@@ -189,12 +196,6 @@
public void testRuntimeMetadataChanges() throws Exception
{
- int loops = 7;
- int threads = 8;
- // need min 80% free memory after test campared with
- // beginning, else test fails
- int minimalFreeMemAfterTest = 80;
-
PersistenceBroker broker = null;
try
{
@@ -239,15 +240,21 @@
// run test classes
runTestCaseRunnables(tct);
++count;
- System.out.println("Free/total Memory after loop " + count + ": "
+ if (logger.isDebugEnabled())
+ {
+ logger.debug("Free/total Memory after loop " + count + ": "
+ convertToMB(Runtime.getRuntime().freeMemory())
+ "/" + convertToMB(getTotalMemory()) + "MB");
}
+ }
period = System.currentTimeMillis() - period;
- System.out.println(ClassUtils.getShortClassName(MetadataMultithreadedTest.class) + " take: "
+ if (logger.isDebugEnabled())
+ {
+ logger.debug(ClassUtils.getShortClassName(MetadataMultithreadedTest.class) + " take: "
+ period + " ms for " + loops + " loops, creating each with " + threads + " threads");
- System.out.println("Free/total Memory before test: "
+ logger.debug("Free/total Memory before test: "
+ convertToMB(memory) + "/" + convertToMB(totalMemory) + "MB");
+ }
Runtime.getRuntime().gc();
Thread.sleep(200);
Runtime.getRuntime().gc();
@@ -255,10 +262,13 @@
memoryUseBeforeTest = convertToMB(memory);
memoryUseAfterTest = convertToMB(Runtime.getRuntime().freeMemory());
- System.out.println("Free/total Memory after test and gc: "
+ if (logger.isDebugEnabled())
+ {
+ logger.debug("Free/total Memory after test and gc: "
+ memoryUseAfterTest
+ "/" + convertToMB(getTotalMemory()) + "MB");
- System.out.println("Do cleanup now ...");
+ logger.debug("Do cleanup now ...");
+ }
}
finally
{
@@ -298,8 +308,8 @@
class ThreadedUsingBroker extends JUnitExtensions.MultiThreadedTestCase.TestCaseRunnable
{
private PersistenceConfiguration persistenceConf;
- private int loops;
- private String title = "ThreadedUsingBroker_" + System.currentTimeMillis();
+ int loops;
+ String title = "ThreadedUsingBroker_" + System.currentTimeMillis();
public ThreadedUsingBroker(PersistenceConfiguration persistenceConf, int loops)
{
@@ -347,48 +357,11 @@
Query query = QueryFactory.newQuery(Person.class, null, true);
broker.getCollectionByQuery(query);
// store target object
- /*
- store some complex objects to check if references to
- metadata classes are cached
- */
- Project project = new Project();
- project.setTitle(title);
-
- Person p1 = new Person();
- p1.setFirstname(title);
- List l1 = new ArrayList();
- l1.add(project);
- p1.setProjects(l1);
-
- Person p2 = new Person();
- p2.setFirstname(title);
- List l2 = new ArrayList();
- l2.add(project);
- p2.setProjects(l2);
-
- Role r1 = new Role();
- r1.setPerson(p1);
- r1.setRoleName(title);
- r1.setProject(project);
- List roles1 = new ArrayList();
- roles1.add(r1);
-
- Role r2 = new Role();
- r2.setPerson(p2);
- r2.setRoleName(title);
- r2.setProject(project);
- List roles2 = new ArrayList();
- roles2.add(r2);
-
- p1.setRoles(roles1);
- p2.setRoles(roles2);
Object obj = ClassHelper.newInstance(targetTestClass);
broker.beginTransaction();
broker.store(obj);
- broker.store(p1);
- broker.store(p2);
broker.commitTransaction();
// delete target object
broker.beginTransaction();
@@ -421,7 +394,7 @@
class GlobalUsingBroker extends JUnitExtensions.MultiThreadedTestCase.TestCaseRunnable
{
private PersistenceConfiguration persistenceConf;
- private int loops;
+ int loops;
public GlobalUsingBroker(PersistenceConfiguration persistenceConf, int loops)
{
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/MetadataTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/MetadataTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/MetadataTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/MetadataTest.java Sat Jul 15 07:38:14 2006
@@ -1,5 +1,7 @@
package org.apache.ojb.broker.metadata;
+import java.io.File;
+import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.ojb.broker.Identity;
@@ -16,10 +18,9 @@
import org.apache.ojb.broker.query.Query;
import org.apache.ojb.broker.query.QueryFactory;
import org.apache.ojb.broker.sequence.Repository;
-import org.apache.ojb.broker.util.sequence.SequenceManagerNativeImpl;
import org.apache.ojb.broker.util.sequence.HighLowSequence;
+import org.apache.ojb.broker.util.sequence.SequenceManagerNativeImpl;
import org.apache.ojb.junit.OJBTestCase;
-import org.apache.ojb.odmg.OJB;
import org.odmg.Database;
import org.odmg.Implementation;
import org.odmg.OQLQuery;
@@ -34,6 +35,7 @@
public static final String TEST_CLASS_DESCRIPTOR = "Test_ClassDescriptor.xml";
public static final String TEST_CONNECTION_DESCRIPTOR = "Test_ConnectionDescriptor.xml";
public static final String TEST_REPOSITORY = "Test_Repository.xml";
+ public static final String TEST_JAR = "Test_Repository_Renamed_DTD.xml";
/**
* A persistent object class
@@ -51,6 +53,11 @@
super(name);
}
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ }
+
public void tearDown() throws Exception
{
try
@@ -63,6 +70,39 @@
super.tearDown();
}
+ public void testReadRepository_1() throws Exception
+ {
+ MetadataManager mm = ojb.getMetadataManager();
+
+ FileInputStream inst = new FileInputStream(new File(TEST_CLASS_DESCRIPTOR));
+ DescriptorRepository dr_1 = mm.readDescriptorRepository(inst);
+ inst.close();
+ assertNotNull(dr_1);
+
+ inst = new FileInputStream(new File(TEST_CONNECTION_DESCRIPTOR));
+ ConnectionRepository cr_1 = mm.readConnectionRepository(inst);
+ inst.close();
+ assertNotNull(cr_1);
+
+ dr_1 = mm.readDescriptorRepository(TEST_CLASS_DESCRIPTOR);
+ cr_1 = mm.readConnectionRepository(TEST_CONNECTION_DESCRIPTOR);
+ assertNotNull(dr_1);
+ assertNotNull(cr_1);
+ }
+
+ public void testReadRepository_2() throws Exception
+ {
+ MetadataManager mm = MetadataManager.getInstance();
+
+ DescriptorRepository dr_1 = mm.readDescriptorRepository(TEST_JAR);
+ assertNotNull(dr_1);
+ System.out.println("" + dr_1.toXML());
+
+ ConnectionRepository cr_1 = mm.readConnectionRepository(TEST_JAR);
+ assertNotNull(cr_1);
+ System.out.println("" + cr_1.toXML());
+ }
+
public void testFindFirstConcreteClassDescriptor()
{
DescriptorRepository dr = ojb.getMetadataManager().getRepository();
@@ -70,8 +110,6 @@
ClassDescriptor firstConcrete = dr.findFirstConcreteClass(cld);
assertTrue(firstConcrete.isMappedToTable());
assertFalse(firstConcrete.isAbstract());
- firstConcrete = dr.findFirstConcreteClass(cld);
- firstConcrete = dr.findFirstConcreteClass(cld);
}
public void testDescriptorRepository_1()
@@ -205,7 +243,7 @@
broker.store(compChild);
broker.commitTransaction();
- Identity oid = new Identity(compChild, broker);
+ Identity oid = broker.serviceIdentity().buildIdentity(compChild);
broker.clearCache();
compChild = (ObjectRepository.Component) broker.getObjectByIdentity(oid);
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/PersistentFieldPerfTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/PersistentFieldPerfTest.java?rev=422236&r1=422235&r2=422236&view=diff
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/PersistentFieldPerfTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/metadata/PersistentFieldPerfTest.java Sat Jul 15 07:38:14 2006
@@ -8,6 +8,7 @@
import org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectImpl;
import org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldIntrospectorImpl;
import org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldPrivilegedImpl;
+import org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldCGLibImpl;
import org.apache.ojb.broker.util.ClassHelper;
import org.apache.ojb.junit.OJBTestCase;
@@ -52,6 +53,7 @@
Class[] persistentFieldClasses = new Class[]{
PersistentFieldDirectImpl.class
+ , PersistentFieldCGLibImpl.class
, PersistentFieldIntrospectorImpl.class
, PersistentFieldPrivilegedImpl.class
, PersistentFieldAutoProxyImpl.class};
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org