[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ojb-dev
Subject:    svn commit: r522123 -
From:       arminw () apache ! org
Date:       2007-03-24 22:26:26
Message-ID: 20070324222626.719321A983E () eris ! apache ! org
[Download RAW message or body]

Author: arminw
Date: Sat Mar 24 15:26:25 2007
New Revision: 522123

URL: http://svn.apache.org/viewvc?view=rev&rev=522123
Log:
add new tests

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=522123&r1=522122&r2=522123
 ==============================================================================
--- db/ojb/trunk/src/test/org/apache/ojb/broker/QueryTest.java (original)
+++ db/ojb/trunk/src/test/org/apache/ojb/broker/QueryTest.java Sat Mar 24 15:26:25 \
2007 @@ -31,6 +31,8 @@
 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;
 import org.apache.ojb.broker.query.Query;
@@ -39,7 +41,7 @@
 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.platforms.PlatformHsqldbImpl;
+import org.apache.ojb.broker.util.ObjectModification;
 import org.apache.ojb.junit.PBTestCase;
 
 /**
@@ -59,6 +61,86 @@
     {
         String[] arr = {QueryTest.class.getName()};
         junit.textui.TestRunner.main(arr);
+    }
+
+    /**
+     * 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").addEqualTo("lastname", name); +        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());
+        }
     }
 
     /**



---------------------------------------------------------------------
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