diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2008-03-28 16:55:16 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2008-03-28 16:55:16 +0000 | 
| commit | a197d416798acbcc1ad51c8152f00c8602a360ec (patch) | |
| tree | 1e994cb4bd2c0387b0e3064ba594085f6db61cd0 /src | |
| parent | 71952848c6fac8d9105e5cf08db7fb76fb77cf5c (diff) | |
Prevent duplicate field generation.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/cursor/TestFilteredCursor.java | 26 | 
1 files changed, 26 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 53c3171..e21b788 100644 --- a/src/test/java/com/amazon/carbonado/cursor/TestFilteredCursor.java +++ b/src/test/java/com/amazon/carbonado/cursor/TestFilteredCursor.java @@ -800,6 +800,32 @@ public class TestFilteredCursor extends TestCase {          assertEquals(4, matches.get(2).getOrderID());
      }
 +    public void testExpandedForm() throws Exception {
 +        // Tests that duplicate property filters don't break code generation.
 +
 +        Repository repo = new ToyRepository();
 +        Storage<Order> orders = repo.storageFor(Order.class);
 +
 +        Filter<Order> filter = Filter.filterFor
 +            (Order.class, "orderTotal < ? & (orderNumber = ? | addressID = ?)");
 +
 +        FilterValues<Order> fv = filter.initialFilterValues();
 +        fv = fv.withValues(100, "xyz", 123);
 +
 +        // Create the duplicates as a result of this transformation.
 +        filter = filter.disjunctiveNormalForm();
 +
 +        Cursor<Order> cursor = EmptyCursor.the();
 +
 +        try {
 +            cursor = FilteredCursor.applyFilter(filter, fv, cursor);
 +        } catch (LinkageError e) {
 +            throw e;
 +        }
 +
 +        assertFalse(cursor.hasNext());
 +    }
 +
      @PrimaryKey("ID")
      public static interface FloatRecord extends Storable {
          int getID();
  | 
