diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2012-10-31 16:31:51 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2012-10-31 16:31:51 +0000 | 
| commit | 818f4d63ba9eeb48c342ec6220cfc72947dbfef3 (patch) | |
| tree | f6603457631125fb8d7e62ae016946e0c4b8d7c7 /src/test | |
| parent | a57babd5403f7532049bc9584395236193709df9 (diff) | |
Support range filtering of array types.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/cursor/TestFilteredCursor.java | 38 | 
1 files changed, 38 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/cursor/TestFilteredCursor.java b/src/test/java/com/amazon/carbonado/cursor/TestFilteredCursor.java index 899d9e5..a8709e9 100644 --- a/src/test/java/com/amazon/carbonado/cursor/TestFilteredCursor.java +++ b/src/test/java/com/amazon/carbonado/cursor/TestFilteredCursor.java @@ -389,6 +389,35 @@ public class TestFilteredCursor extends TestCase {          assertEquals(expected.length, actualCount);
      }
 +    public void testByteArrayFilter() throws Exception {
 +        // Range comparison requires a special comparator to be used.
 +
 +        Repository repo = new ToyRepository();
 +        Storage<ByteArrayRecord> storage = repo.storageFor(ByteArrayRecord.class);
 +
 +        byte[][] arrays = {{1}, {2}, {3}};
 +
 +        for (int i=0; i<arrays.length; i++) {
 +            ByteArrayRecord rec = storage.prepare();
 +            rec.setID(i);
 +            rec.setArrayValue(arrays[i]);
 +            rec.insert();
 +        }
 +
 +        Filter<ByteArrayRecord> filter = Filter
 +            .filterFor(ByteArrayRecord.class, "arrayValue < ?").bind();
 +
 +        Cursor<ByteArrayRecord> all = storage.query().fetch();
 +
 +        Cursor<ByteArrayRecord> filtered = FilteredCursor
 +            .applyFilter(filter, filter.initialFilterValues().with(new byte[]{3}), all);
 +
 +        List<ByteArrayRecord> records = filtered.toList();
 +        int actualCount = records.size();
 +
 +        assertEquals(2, actualCount);
 +    }
 +
      public void testExistsNoParams() throws Exception {
          Repository repo = new ToyRepository();
          Storage<Order> orders = repo.storageFor(Order.class);
 @@ -863,4 +892,13 @@ public class TestFilteredCursor extends TestCase {          Double getDoubleValue();
          void setDoubleValue(Double value);
      }
 +
 +    @PrimaryKey("ID")
 +    public static interface ByteArrayRecord extends Storable {
 +        int getID();
 +        void setID(int id);
 +
 +        byte[] getArrayValue();
 +        void setArrayValue(byte[] value);
 +    }
  }
  | 
