diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2007-08-06 00:49:18 +0000 | 
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2007-08-06 00:49:18 +0000 | 
| commit | 7ece3797db2478e76d4a2ca8ea4dd8d034b464ef (patch) | |
| tree | 28ffde9d5e4e19b32db99b8d45e01d4aaefc071d /src | |
| parent | ecf73566b91313b61c06b104e45e24d89f4dd329 (diff) | |
Support filters as joined and not joined from one-to-many properties.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/filter/TestFilterNotJoinedFrom.java | 50 | 
1 files changed, 33 insertions, 17 deletions
diff --git a/src/test/java/com/amazon/carbonado/filter/TestFilterNotJoinedFrom.java b/src/test/java/com/amazon/carbonado/filter/TestFilterNotJoinedFrom.java index 1e97d89..6957913 100644 --- a/src/test/java/com/amazon/carbonado/filter/TestFilterNotJoinedFrom.java +++ b/src/test/java/com/amazon/carbonado/filter/TestFilterNotJoinedFrom.java @@ -23,6 +23,7 @@ import junit.framework.TestSuite;  import com.amazon.carbonado.stored.Address;
  import com.amazon.carbonado.stored.Order;
 +import com.amazon.carbonado.stored.OrderItem;
  import com.amazon.carbonado.stored.Shipment;
  /**
 @@ -47,11 +48,11 @@ public class TestFilterNotJoinedFrom extends TestCase {          Filter<Shipment> filter = Filter.getOpenFilter(Shipment.class);
          Filter<Shipment>.NotJoined nj = filter.notJoinedFrom("order");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
      }
 @@ -59,11 +60,11 @@ public class TestFilterNotJoinedFrom extends TestCase {          Filter<Shipment> filter = Filter.getClosedFilter(Shipment.class);
          Filter<Shipment>.NotJoined nj = filter.notJoinedFrom("order");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
      }
 @@ -72,11 +73,11 @@ public class TestFilterNotJoinedFrom extends TestCase {          filter = filter.bind();
          Filter<Shipment>.NotJoined nj = filter.notJoinedFrom("order");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          filter = Filter.filterFor(Shipment.class, "order.orderTotal < ?");
 @@ -88,7 +89,7 @@ public class TestFilterNotJoinedFrom extends TestCase {          assertEquals(Filter.getOpenFilter(Shipment.class), nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          filter = Filter.filterFor(Shipment.class, "order.address.addressCity = ?");
 @@ -117,11 +118,11 @@ public class TestFilterNotJoinedFrom extends TestCase {          filter = filter.bind();
          Filter<Shipment>.NotJoined nj = filter.notJoinedFrom("order");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          filter = Filter.filterFor
 @@ -136,7 +137,7 @@ public class TestFilterNotJoinedFrom extends TestCase {                       nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          filter = Filter.filterFor
 @@ -166,11 +167,11 @@ public class TestFilterNotJoinedFrom extends TestCase {          filter = filter.bind();
          Filter<Shipment>.NotJoined nj = filter.notJoinedFrom("order");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          filter = Filter.filterFor
 @@ -189,11 +190,11 @@ public class TestFilterNotJoinedFrom extends TestCase {          filter = filter.bind();
          nj = filter.notJoinedFrom("order");
 -        assertEquals(Filter.getOpenFilter(Order.class), nj.getNotJoinedFilter());
 +        assertEquals(null, nj.getNotJoinedFilter());
          assertEquals(filter, nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertTrue(nj.getNotJoinedFilter() instanceof OpenFilter);
 +        assertTrue(nj.getNotJoinedFilter() == null);
          assertEquals(filter, nj.getRemainderFilter());
          filter = Filter.filterFor
 @@ -219,11 +220,11 @@ public class TestFilterNotJoinedFrom extends TestCase {          filter = filter.bind();
          nj = filter.notJoinedFrom("order");
 -        assertEquals(Filter.getOpenFilter(Order.class), nj.getNotJoinedFilter());
 +        assertEquals(null, nj.getNotJoinedFilter());
          assertEquals(filter, nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertEquals(Filter.getOpenFilter(Address.class), nj.getNotJoinedFilter());
 +        assertEquals(null, nj.getNotJoinedFilter());
          assertEquals(filter, nj.getRemainderFilter());
      }
 @@ -242,7 +243,7 @@ public class TestFilterNotJoinedFrom extends TestCase {          assertEquals(Filter.getOpenFilter(Shipment.class), nj.getRemainderFilter());
          nj = filter.notJoinedFrom("order.address");
 -        assertEquals(Filter.getOpenFilter(Address.class), nj.getNotJoinedFilter());
 +        assertEquals(null, nj.getNotJoinedFilter());
          assertEquals(filter, nj.getRemainderFilter());
          filter = filter.and("order.address.customData > ?");
 @@ -268,4 +269,19 @@ public class TestFilterNotJoinedFrom extends TestCase {                        "| order.orderTotal != ?").bind(),
                       nj.getRemainderFilter());
      }
 +
 +    public void testOneToMany() {
 +        Filter<Order> filter = Filter.filterFor
 +            (Order.class, "orderItems.itemPrice = ? & addressID = ?");
 +
 +        Filter<Order>.NotJoined nj = filter.notJoinedFrom("orderItems");
 +
 +        assertEquals(Filter.filterFor(OrderItem.class, "itemPrice = ?").bind(),
 +                     nj.getNotJoinedFilter());
 +        assertEquals(Filter.filterFor(Order.class, "addressID = ?").bind(),
 +                     nj.getRemainderFilter());
 +
 +        assertEquals(Filter.filterFor(Order.class, "orderItems.itemPrice = ?").bind(),
 +                     nj.getNotJoinedFilter().asJoinedFrom(Order.class, "orderItems"));
 +    }
  }
  | 
