diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2008-04-14 03:18:32 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2008-04-14 03:18:32 +0000 | 
| commit | 718538484ac934f2d41f387baed8e145de8034c7 (patch) | |
| tree | 3ee1e02b9687ae42e5bb0fa92e5de81861c12772 /src | |
| parent | 95850d9dbe049bd797553bcf27e33c0931c4458a (diff) | |
Support query fetch limits.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/TestStorables.java | 68 | 
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);  | 
