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/09/28 13:49:03 UTC
svn commit: r450814 -
/db/ojb/trunk/src/test/org/apache/ojb/broker/QueryTest.java
Author: arminw
Date: Thu Sep 28 04:49:03 2006
New Revision: 450814
URL: http://svn.apache.org/viewvc?view=rev&rev=450814
Log:
add new ReportQuery test
Modified:
db/ojb/trunk/src/test/org/apache/ojb/broker/QueryTest.java
Modified: db/ojb/trunk/src/test/org/apache/ojb/broker/QueryTest.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/test/org/apache/ojb/broker/QueryTest.java?view=diff&rev=450814&r1=450813&r2=450814
==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/QueryTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/QueryTest.java Thu Sep 28 04:49:03 2006
@@ -36,9 +36,9 @@
import org.apache.ojb.broker.query.Query;
import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.query.QueryByExample;
+import org.apache.ojb.broker.query.QueryFactory;
import org.apache.ojb.broker.query.ReportQuery;
import org.apache.ojb.broker.query.ReportQueryByCriteria;
-import org.apache.ojb.broker.query.QueryFactory;
import org.apache.ojb.junit.PBTestCase;
/**
@@ -58,6 +58,78 @@
{
String[] arr = {QueryTest.class.getName()};
junit.textui.TestRunner.main(arr);
+ }
+
+ /**
+ * Simple ReportQuery returning rows with 3 columns of Person
+ */
+ public void testReportQueryNullFields()
+ {
+ String name = "testReportQueryNullFields_" + System.currentTimeMillis();
+ Person p1 = new Person();
+ p1.setFirstname("Robert");
+ p1.setLastname(name);
+ Person p2 = new Person();
+ p2.setFirstname(null);
+ p2.setLastname(name);
+ Person p3 = new Person();
+ p3.setFirstname(null);
+ p3.setLastname(name);
+ broker.beginTransaction();
+ broker.store(p1);
+ broker.store(p2);
+ broker.store(p3);
+ broker.commitTransaction();
+
+
+ Criteria crit = new Criteria();
+ crit.addLike("lastname", name);
+ Criteria crit2 = new Criteria();
+ crit2.addColumnIsNull("firstname");
+ crit.addAndCriteria(crit2);
+ ReportQueryByCriteria q = QueryFactory.newReportQuery(Person.class, crit);
+ q.setAttributes(new String[]{"firstname", "lastname", "count(*)"});
+ q.addGroupBy(new String[]{"firstname", "lastname"});
+
+ Iterator iter = broker.getReportQueryIteratorByQuery(q);
+ assertNotNull(iter);
+ int result = 0;
+ List results = new ArrayList();
+ while(iter.hasNext())
+ {
+ Object[] row = (Object[]) iter.next();
+ assertEquals(3, row.length);
+ results.add(row);
+ result += ((Integer) row[2]).intValue();
+ //System.out.println("Result_1: " + ArrayUtils.toString(row));
+ }
+ assertEquals(2, result);
+ // compare with count
+ int count = broker.getCount(q);
+ assertEquals(result, count);
+
+ crit = new Criteria();
+ crit.addLike("lastname", name);
+ q = QueryFactory.newReportQuery(Person.class, crit);
+ q.setAttributes(new String[]{"firstname", "lastname", "count(*)"});
+ q.addGroupBy(new String[]{"firstname", "lastname"});
+
+ iter = broker.getReportQueryIteratorByQuery(q);
+ assertNotNull(iter);
+ results = new ArrayList();
+ result = 0;
+ while(iter.hasNext())
+ {
+ Object[] row = (Object[]) iter.next();
+ assertEquals(3, row.length);
+ results.add(row);
+ result += ((Integer) row[2]).intValue();
+ //System.out.println("Result_2: " + ArrayUtils.toString(row));
+ }
+ assertEquals(3, result);
+ // compare with count
+ count = broker.getCount(q);
+ assertEquals(result, count);
}
public void testQueryZero()
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org