diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2007-01-13 20:01:54 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2007-01-13 20:01:54 +0000 | 
| commit | 72c7e609b9f3395f8666023dcb7b371f9130be0f (patch) | |
| tree | 416cfc392524ff2f658da3b5d1f95dc340ddcaa8 | |
| parent | 0cee037e638c29e3fea3bcb2c1c68fc2403a6fc7 (diff) | |
Fix for getting supplied filter values when duplicate property filters exist.
| -rw-r--r-- | src/test/java/com/amazon/carbonado/filter/TestFilterSuppliedValues.java | 23 | 
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/filter/TestFilterSuppliedValues.java b/src/test/java/com/amazon/carbonado/filter/TestFilterSuppliedValues.java index ff12948..6f174c5 100644 --- a/src/test/java/com/amazon/carbonado/filter/TestFilterSuppliedValues.java +++ b/src/test/java/com/amazon/carbonado/filter/TestFilterSuppliedValues.java @@ -117,4 +117,27 @@ public class TestFilterSuppliedValues extends TestCase {          assertEquals("hello", values[0]);
          assertEquals(new Integer(5), values[1]);
      }
 +
 +    public void testSuppliedValuesFor_multipleReferences() {
 +        // Test with property filter duplication.
 +        Filter<Order> oneProp = Filter.filterFor(Order.class, "orderTotal != ?");
 +        oneProp = oneProp.bind();
 +
 +        // Note that reduce is not called on the filter, as it would reduce the
 +        // filter back to one term.
 +        Filter<Order> f = oneProp.and(oneProp);
 +
 +        // Note that values are only for oneProp.
 +        FilterValues<Order> fv = oneProp.initialFilterValues();
 +
 +        Object[] values = fv.getSuppliedValuesFor(f);
 +        assertEquals(0, values.length);
 +
 +        // Supply one actual value...
 +        values = fv.with(10).getSuppliedValuesFor(f);
 +        // ...which is duplicated as required by f.
 +        assertEquals(2, values.length);
 +        assertEquals(new Integer(10), values[0]);
 +        assertEquals(new Integer(10), values[1]);
 +    }
  }
  | 
