summaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2008-04-14 03:18:32 +0000
committerBrian S. O'Neill <bronee@gmail.com>2008-04-14 03:18:32 +0000
commit718538484ac934f2d41f387baed8e145de8034c7 (patch)
tree3ee1e02b9687ae42e5bb0fa92e5de81861c12772 /src/test/java
parent95850d9dbe049bd797553bcf27e33c0931c4458a (diff)
Support query fetch limits.
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/com/amazon/carbonado/TestStorables.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/TestStorables.java b/src/test/java/com/amazon/carbonado/TestStorables.java
index 96b7504..5073ef8 100644
--- a/src/test/java/com/amazon/carbonado/TestStorables.java
+++ b/src/test/java/com/amazon/carbonado/TestStorables.java
@@ -2430,6 +2430,74 @@ public class TestStorables extends TestCase {
assertEquals(total, actual);
}
+ public void test_fetchSlice() throws Exception {
+ Storage<StorableTestBasic> storage = getRepository().storageFor(StorableTestBasic.class);
+
+ for (int i=0; i<100; i++) {
+ StorableTestBasic sb = storage.prepare();
+ sb.setId(i);
+ sb.setIntProp(99 - i);
+ sb.setLongProp(i);
+ sb.setDoubleProp(i);
+ sb.setStringProp(String.valueOf(i));
+ sb.insert();
+ }
+
+ // No slice
+ List<StorableTestBasic> results;
+ results = storage.query().fetch(0, null).toList();
+ assertEquals(100, results.size());
+
+ // To slice
+ results = storage.query().fetch(0, 50L).toList();
+ assertEquals(50, results.size());
+ results = storage.query().orderBy("id").fetch(0, 50L).toList();
+ assertEquals(50, results.size());
+ assertEquals(0, results.get(0).getId());
+ assertEquals(1, results.get(1).getId());
+ results = storage.query().orderBy("intProp").fetch(0, 50L).toList();
+ assertEquals(50, results.size());
+ assertEquals(99, results.get(0).getId());
+ assertEquals(98, results.get(1).getId());
+
+ // From slice
+ results = storage.query().fetch(40, null).toList();
+ assertEquals(60, results.size());
+ results = storage.query().orderBy("id").fetch(40, null).toList();
+ assertEquals(60, results.size());
+ assertEquals(40, results.get(0).getId());
+ assertEquals(41, results.get(1).getId());
+ results = storage.query().orderBy("intProp").fetch(40, null).toList();
+ assertEquals(60, results.size());
+ assertEquals(59, results.get(0).getId());
+ assertEquals(58, results.get(1).getId());
+
+ // From and to slice
+ results = storage.query().fetch(40, 50L).toList();
+ assertEquals(10, results.size());
+ results = storage.query().orderBy("id").fetch(40, 50L).toList();
+ assertEquals(10, results.size());
+ assertEquals(40, results.get(0).getId());
+ assertEquals(41, results.get(1).getId());
+ results = storage.query().orderBy("intProp").fetch(40, 50L).toList();
+ assertEquals(10, results.size());
+ assertEquals(59, results.get(0).getId());
+ assertEquals(58, results.get(1).getId());
+
+ // Filter and slice
+ Query<StorableTestBasic> query = storage.query("doubleProp >= ?").with(30.0);
+ results = query.fetch(10, 20L).toList();
+ assertEquals(10, results.size());
+ results = query.orderBy("id").fetch(10, 20L).toList();
+ assertEquals(10, results.size());
+ assertEquals(40, results.get(0).getId());
+ assertEquals(41, results.get(1).getId());
+ results = query.orderBy("intProp").fetch(10, 20L).toList();
+ assertEquals(10, results.size());
+ assertEquals(89, results.get(0).getId());
+ assertEquals(88, results.get(1).getId());
+ }
+
public void test_lobInsert() throws Exception {
Storage<StorableWithLobs> storage = getRepository().storageFor(StorableWithLobs.class);