Author: aadamchik
Date: Sun Nov  2 12:54:02 2008
New Revision: 709922

URL: http://svn.apache.org/viewvc?rev=709922&view=rev
Log:
Add LIMIT / OFFSET clause generation method to SelectTranslator lifecycle

a better test case for offsets and limits

Modified:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java?rev=709922&r1=709921&r2=709922&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
 Sun Nov  2 12:54:02 2008
@@ -30,6 +30,7 @@
 import org.apache.art.Exhibit;
 import org.apache.art.Gallery;
 import org.apache.art.Painting;
+import org.apache.cayenne.ObjectContext;
 import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.map.EntityResolver;
@@ -52,38 +53,41 @@
     }
 
     public void testFetchOffset() throws Exception {
+        ObjectContext context = createDataContext();
+
+        int totalRows = context.performQuery(new 
SelectQuery(Artist.class)).size();
+
         SelectQuery query = new SelectQuery(Artist.class);
+        query.addOrdering("db:" + Artist.ARTIST_ID_PK_COLUMN, true);
         query.setFetchOffset(5);
-        List results = createDataContext().performQuery(query);
+        List<Artist> results = context.performQuery(query);
 
-        SelectQuery sizeQ = new SelectQuery(Artist.class);
-        List allResults = createDataContext().performQuery(sizeQ);
-        assertEquals(allResults.size() - 5, results.size());
+        assertEquals(totalRows - 5, results.size());
+        assertEquals("artist6", results.get(0).getArtistName());
     }
 
     public void testFetchLimitWithOffset() throws Exception {
-        SelectQuery sizeQ = new SelectQuery();
-        sizeQ.setRoot(Artist.class);
-        query = sizeQ;
-        performQuery();
-        int sizeAll = opObserver.rowsForQuery(query).size();
-        
-        query = new SelectQuery();
-        query.setRoot(Artist.class);
-        query.setFetchOffset(sizeAll - 5);
+        ObjectContext context = createDataContext();
+
+        int totalRows = context.performQuery(new 
SelectQuery(Artist.class)).size();
+
+        SelectQuery query = new SelectQuery(Artist.class);
+        query.addOrdering("db:" + Artist.ARTIST_ID_PK_COLUMN, true);
+        query.setFetchOffset(totalRows - 5);
         query.setFetchLimit(5);
-        performQuery();
-        int size = opObserver.rowsForQuery(query).size();
-        assertEquals(size, 5);
+        List<Artist> results = context.performQuery(query);
+
+        assertEquals(5, results.size());
+        assertEquals("artist16", results.get(0).getArtistName());
     }
-    
+
     public void testFetchOffsetWithQualifier() throws Exception {
         query.setRoot(Artist.class);
         query.setQualifier(Expression.fromString("db:ARTIST_ID > 3"));
         query.setFetchOffset(5);
         performQuery();
         int size = opObserver.rowsForQuery(query).size();
-        
+
         SelectQuery sizeQ = new SelectQuery();
         sizeQ.setRoot(Artist.class);
         sizeQ.setQualifier(Expression.fromString("db:ARTIST_ID > 3"));


Reply via email to