diff options
Diffstat (limited to 'src')
| -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]);
+ }
}
|
