From 1e814b1df1670f0a19a77d55848fe6f836fa4e6b Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Mon, 4 Sep 2006 23:02:22 +0000 Subject: OrderingScore supports automatic ordering direction when unspecified. --- .../com/amazon/carbonado/qe/TestOrderingScore.java | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/test') diff --git a/src/test/java/com/amazon/carbonado/qe/TestOrderingScore.java b/src/test/java/com/amazon/carbonado/qe/TestOrderingScore.java index 91b5676..ecacf9a 100644 --- a/src/test/java/com/amazon/carbonado/qe/TestOrderingScore.java +++ b/src/test/java/com/amazon/carbonado/qe/TestOrderingScore.java @@ -543,4 +543,46 @@ public class TestOrderingScore extends TestCase { assertEquals("+doubleProp", score.getHandledOrderings().get(1).toString()); assertEquals("+longProp", score.getRemainderOrderings().get(0).toString()); } + + public void testUnspecifiedDirection() throws Exception { + // Tests that an originally unspecified ordering direction is determined. + final StorableIndex ix; + List> ops; + OrderingScore score; + Filter filter; + + ix = makeIndex(StorableTestBasic.class, "id", "intProp", "doubleProp"); + ops = makeOrderings(StorableTestBasic.class, "~intProp", "-doubleProp"); + filter = Filter.filterFor(StorableTestBasic.class, "id = ?"); + + score = OrderingScore.evaluate(ix, filter, ops); + assertEquals(2, score.getHandledCount()); + assertEquals(0, score.getRemainderCount()); + assertEquals(true, score.shouldReverseOrder()); + + assertEquals("-intProp", score.getHandledOrderings().get(0).toString()); + assertEquals("-doubleProp", score.getHandledOrderings().get(1).toString()); + + ops = makeOrderings(StorableTestBasic.class, "~id", "intProp", "~doubleProp"); + + score = OrderingScore.evaluate(ix, null, ops); + assertEquals(3, score.getHandledCount()); + assertEquals(0, score.getRemainderCount()); + assertEquals(false, score.shouldReverseOrder()); + + assertEquals("+id", score.getHandledOrderings().get(0).toString()); + assertEquals("+intProp", score.getHandledOrderings().get(1).toString()); + assertEquals("+doubleProp", score.getHandledOrderings().get(2).toString()); + + ops = makeOrderings(StorableTestBasic.class, "~id", "-intProp", "~doubleProp"); + + score = OrderingScore.evaluate(ix, null, ops); + assertEquals(3, score.getHandledCount()); + assertEquals(0, score.getRemainderCount()); + assertEquals(true, score.shouldReverseOrder()); + + assertEquals("-id", score.getHandledOrderings().get(0).toString()); + assertEquals("-intProp", score.getHandledOrderings().get(1).toString()); + assertEquals("-doubleProp", score.getHandledOrderings().get(2).toString()); + } } -- cgit v1.2.3