[prev in list] [next in list] [prev in thread] [next in thread]
List: ojb-dev
Subject: svn commit: r522116 -
From: arminw () apache ! org
Date: 2007-03-24 22:08:49
Message-ID: 20070324220849.76CBE1A983A () eris ! apache ! org
[Download RAW message or body]
Author: arminw
Date: Sat Mar 24 15:08:48 2007
New Revision: 522116
URL: http://svn.apache.org/viewvc?view=rev&rev=522116
Log:
add new tests
Modified:
db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/QueryTest.java
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/QueryTest.java
URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/QueryTest.java?view=diff&rev=522116&r1=522115&r2=522116
==============================================================================
--- db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/QueryTest.java \
(original)
+++ db/ojb/branches/OJB_1_0_RELEASE/src/test/org/apache/ojb/broker/QueryTest.java Sat \
Mar 24 15:08:48 2007 @@ -30,6 +30,7 @@
import org.apache.ojb.broker.accesslayer.sql.SqlGenerator;
import org.apache.ojb.broker.metadata.ClassDescriptor;
import org.apache.ojb.broker.metadata.CollectionDescriptor;
+import org.apache.ojb.broker.metadata.FieldDescriptor;
import org.apache.ojb.broker.platforms.PlatformHsqldbImpl;
import org.apache.ojb.broker.query.Criteria;
import org.apache.ojb.broker.query.LikeCriteria;
@@ -37,6 +38,7 @@
import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.query.QueryFactory;
import org.apache.ojb.broker.query.ReportQueryByCriteria;
+import org.apache.ojb.broker.util.ObjectModification;
import org.apache.ojb.junit.PBTestCase;
/**
@@ -66,6 +68,86 @@
}
/**
+ * Execute an arbitrary sql-string based report-query.
+ */
+ public void testReportQueryByArbitrarySql()
+ {
+ String name = "testReportQueryByArbitrarySql_" + System.currentTimeMillis();
+ Article a1 = new Article();
+ a1.setArticleName(name);
+ Article a2 = new Article();
+ a2.setArticleName(name);
+ broker.beginTransaction();
+ broker.store(a1, ObjectModification.INSERT);
+ broker.store(a2, ObjectModification.INSERT);
+ broker.commitTransaction();
+ ClassDescriptor cld = broker.getClassDescriptor(Article.class);
+ FieldDescriptor fld = cld.getFieldDescriptorByName("articleName");
+
+ String sql = "select * from " + cld.getFullTableName() + " as A1 where A1." \
+ fld.getColumnName() + " = '" + name + "'"; +
+ Query query = QueryFactory.newQuery(sql);
+ Iterator it = broker.getReportQueryIteratorByQuery(query);
+ boolean match = false;
+ int counter=0;
+ while(it.hasNext())
+ {
+ Object[] arr = (Object[]) it.next();
+ //System.out.println("result: " + ArrayUtils.toString(arr));
+ for(int i = 0; i < arr.length; i++)
+ {
+ Object obj = arr[i];
+ if(obj != null && name.equals(obj.toString()))
+ {
+ match = true;
+ break;
+ }
+ }
+ assertTrue(match);
+ ++counter;
+ }
+ assertEquals(2, counter);
+ }
+
+ /**
+ * Compare fields of the same object in query.
+ */
+ public void testQueryEqualFields()
+ {
+ String name = "testQueryEqualFields_" + System.currentTimeMillis();
+ Person p1 = new Person();
+ p1.setFirstname("jeff");
+ p1.setLastname(name);
+
+ Person p2 = new Person();
+ p2.setFirstname(name);
+ p2.setLastname(name);
+
+ Person p3 = new Person();
+ p3.setFirstname("tom");
+ p3.setLastname(name);
+
+ broker.beginTransaction();
+ broker.store(p1);
+ broker.store(p2);
+ broker.store(p3);
+ broker.commitTransaction();
+
+ Criteria crit = new Criteria().addEqualToField("firstname", "lastname");
+ QueryByCriteria q = QueryFactory.newQuery(Person.class, crit);
+ q.setDistinct(true);
+ Collection result = broker.getCollectionByQuery(q);
+
+ assertEquals(1, result.size());
+ for(Iterator iterator = result.iterator(); iterator.hasNext();)
+ {
+ Person p = (Person) iterator.next();
+ assertEquals(name, p.getFirstname());
+ assertEquals(name, p.getLastname());
+ }
+ }
+
+ /**
* Simple ReportQuery returning rows with 3 columns of Person
*/
public void testReportQueryNullFields()
@@ -393,7 +475,7 @@
*/
public void testSubQuery2()
{
- Collection results = null;
+ Collection results;
String stamp = "testSubQuery2_" + System.currentTimeMillis();
int loops = 10;
// create ProductGroups without article
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic