arminw 2005/11/14 18:20:45
Modified: src/test/org/apache/ojb/broker
ExtentAwarePathExpressionsTest.java
Log:
add test for OJB-62
add test using multiple class path for same reference field
Revision Changes Path
1.13 +85 -20
db-ojb/src/test/org/apache/ojb/broker/ExtentAwarePathExpressionsTest.java
Index: ExtentAwarePathExpressionsTest.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/test/org/apache/ojb/broker/ExtentAwarePathExpressionsTest.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ExtentAwarePathExpressionsTest.java 14 Nov 2005 00:36:11 -0000
1.12
+++ ExtentAwarePathExpressionsTest.java 15 Nov 2005 02:20:45 -0000
1.13
@@ -17,15 +17,8 @@
*/
public class ExtentAwarePathExpressionsTest extends PBTestCase
{
- /**
- * You can run the test like a java app
- */
public static void main(String[] args)
{
- //OBS: when running this test from eclipse, one must copy the
database file to the directory where
- //u checked out ojb from cvs
-// URL url = ClassHelper.getResource("DB.script");
-// System.out.println("Hsql database @ :" + url);
String[] arr = {ExtentAwarePathExpressionsTest.class.getName()};
junit.textui.TestRunner.main(arr);
}
@@ -35,18 +28,6 @@
super(testName);
}
-// public static Test suite()
-// {
-// TestSuite suite = new TestSuite();
-// //suite.addTest(new
ExtentAwarePathExpressionsTest("testAddPathClass"));
-// suite.addTest(new
ExtentAwarePathExpressionsTest("testAddPathClasses"));
-// //suite.addTest(new
ExtentAwarePathExpressionsTest("testNotNullPathElement"));
-// //suite.addTest(new
ExtentAwarePathExpressionsTest("testSetPathClass"));
-// //suite.addTest(new
ExtentAwarePathExpressionsTest("testWithoutHintClass1"));
-// //suite.addTest(new
ExtentAwarePathExpressionsTest("testWithoutHintClass2"));
-// return suite;
-// }
-
public void testWithoutHintClass1() throws Exception
{
Criteria criteria = new Criteria();
@@ -261,4 +242,88 @@
assertNotNull(((News)content.get(0)).getQualifiers());
assertEquals(3, ((News)content.get(0)).getQualifiers().size());
}
+
+ // Test for OJB-62
+ public void testAddClassPathOnQuery_1()
+ {
+ Criteria criteria = new Criteria();
+ criteria.addLike("qualifiers.importance", "impor%");
+ QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class,
criteria, true);
+ query.addPathClass("qualifiers", Topic.class);
+ 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());
+}
+
+ // Test for OJB-62
+ public void testAddClassPathOnQuery_2()
+ {
+ Criteria criteria = new Criteria();
+ criteria.addLike("qualifiers.importance", "NO_MATCH%");
+ QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.class,
criteria, true);
+ query.addPathClass("qualifiers", Topic.class);
+ List content = (List) broker.getCollectionByQuery(query);
+
+ assertEquals(0, content.size());
+ }
+
+ // Test multiple path class on query object
+ public void testMultipleClassPath_1a()
+ {
+ Criteria criteria = new Criteria();
+ criteria.addLike("headline", "SAL%");
+ criteria.addEqualTo("qualifiers.importance", "unimportant");
+ criteria.addEqualTo("qualifiers.name", "Sellers");
+ QueryByCriteria query = QueryFactory.newQuery(BaseContentImpl.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());
+ }
+
+ // Test multiple path class on criteria object
+ public void testMultipleClassPath_1b()
+ {
+ Criteria criteria = new Criteria();
+ criteria.addLike("headline", "SAL%");
+ 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);
+ 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());
+ }
+
+ // Test multiple path class on query object
+ public void testMultipleClassPath_1c()
+ {
+ Criteria criteria = new Criteria();
+ criteria.addLike("headline", "SAL%");
+ 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);
+ 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());
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]