public static BaseCondition not(BaseCondition c) { return c.not(); }
@Override public BaseCondition not() { BaseCondition[] reversedConditions = new BaseCondition[conditions.length]; for (int i = 0; i < conditions.length; i++) { reversedConditions[i] = conditions[i].not(); } return new JoinedCondition(logicalOperator.not(), reversedConditions); }
@Test public void testSimpleWhereWithNot() { saveManyBasicObjects(2); List<BasicObject> objects = yawp(BasicObject.class).where(c("intValue", "=", 1).not()).list(); assertEquals(1, objects.size()); assertEquals("xpto", objects.get(0).getStringValue()); assertEquals(2, objects.get(0).getIntValue()); }
@Test public void testWhereWithOrNot() { saveManyBasicObjects(3); List<BasicObject> objects = yawp(BasicObject.class).where(or(c("intValue", "=", 1), c("intValue", "=", 2)).not()).list(); assertEquals(1, objects.size()); assertEquals("xpto", objects.get(0).getStringValue()); assertEquals(3, objects.get(0).getIntValue()); }
@Test public void testWhereWithAndNot() { saveManyBasicObjects(5); List<BasicObject> objects = yawp(BasicObject.class).where(and(c("intValue", ">", 1), c("intValue", "<", 5)).not()).list(); assertEquals(2, objects.size()); sort(objects); assertEquals(1, objects.get(0).getIntValue()); assertEquals(5, objects.get(1).getIntValue()); }
@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)); }