@Test public void testJoinedConditions() { BasicObject object = new BasicObject(); object.setIntValue(10); object.setStringValue("ccc"); object.setLongValue(100l); assertTrue(c("intValue", "=", 10).and(c("stringValue", "=", "ccc")).evaluate(object)); assertFalse(c("intValue", "=", 10).and(c("stringValue", "!=", "ccc")).evaluate(object)); assertTrue(c("intValue", "=", 9).or(c("stringValue", "=", "ccc")).evaluate(object)); assertFalse(c("intValue", "=", 10).not().evaluate(object)); assertTrue(c("intValue", "=", 9).not().evaluate(object)); assertTrue(c("intValue", "=", 9).or(c("stringValue", "=", "bbb").or(c("longValue", "=", 100l))).evaluate(object)); }
@Test public void testWhereWithoutIndexOrCondition() { yawp.save(new BasicObject("a", 1l)); yawp.save(new BasicObject("b", 2l)); yawp.save(new BasicObject("c", 1l)); List<BasicObject> objects = yawp(BasicObject.class).where(c("stringValue", "=", "a").or(c("longValue", "=", 1l))).list(); assertObjects(objects, "a", "c"); }
@Test public void testWhereWithoutIndexComplexConditions() { yawp.save(new BasicObject("a", 1l)); yawp.save(new BasicObject("a", 2l)); yawp.save(new BasicObject("c", 3l)); yawp.save(new BasicObject("c", 4l)); yawp.save(new BasicObject("d", 5l)); yawp.save(new BasicObject("e", 6l)); BaseCondition c2 = c("stringValue", "=", "c").and(c("longValue", "=", 3l)); List<BasicObject> objects = yawp(BasicObject.class).where(c("stringValue", "=", "a").or(c2)).list(); assertObjects(objects, "a", "a", "c"); }
@Test public void testWhereWithoutIndexWithId() { yawp.save(setId(new BasicObject("a", 1l), 1l)); yawp.save(setId(new BasicObject("b", 2l), 2l)); yawp.save(setId(new BasicObject("c", 3l), 3l)); IdRef<BasicObject> id = IdRef.create(yawp, BasicObject.class, 1l); List<BasicObject> objects = yawp(BasicObject.class).where(c("id", "=", id).or(c("longValue", "=", 3l))).list(); assertObjects(objects, "a", "c"); objects = yawp(BasicObject.class).where(c("id", "=", id).and(c("longValue", "=", 1l))).list(); assertObjects(objects, "a"); objects = yawp(BasicObject.class).where(c("id", "=", id).and(c("longValue", "=", 3l))).list(); assertObjects(objects); }