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 /src/test/java | |
| parent | 0cee037e638c29e3fea3bcb2c1c68fc2403a6fc7 (diff) | |
Fix for getting supplied filter values when duplicate property filters exist.
Diffstat (limited to 'src/test/java')
| -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]);
+ }
}
|
