public void testValidationPropagatesToSubqueryJoinAndCompoundSelect() { Query subquery = Query.select(Thing.FOO).from(Thing.TABLE).where(Thing.BAR.gt(0)); Query joinSubquery = Query.select(Thing.BAR).from(Thing.TABLE).where(Thing.FOO.isNotEmpty()); Query compoundSubquery = Query.select(Thing.BAZ).from(Thing.TABLE).where(Thing.IS_ALIVE.isTrue()); SubqueryTable subqueryTable = subquery.as("t1"); SubqueryTable joinTable = joinSubquery.as("t2"); Query query = Query.select().from(subqueryTable).innerJoin(joinTable, (Criterion[]) null) .union(compoundSubquery); final int queryLength = query.compile(database.getCompileContext()).sql.length(); String withValidation = query.sqlForValidation(database.getCompileContext()); assertEquals(queryLength + 6, withValidation.length()); }
public Criterion eq(boolean b) { return b ? isTrue() : isFalse(); }
public Criterion neq(boolean b) { return b ? isFalse() : isTrue(); } }
public void testQueriesWithBooleanPropertiesWork() { insertBasicTestModel(); TestModel model; SquidCursor<TestModel> result = database.query(TestModel.class, Query.select(TestModel.PROPERTIES).where(TestModel.IS_HAPPY.isTrue())); try { assertEquals(1, result.getCount()); result.moveToFirst(); model = new TestModel(result); assertTrue(model.isHappy()); model.setIsHappy(false); database.persist(model); } finally { result.close(); } result = database.query(TestModel.class, Query.select(TestModel.PROPERTIES).where(TestModel.IS_HAPPY.isFalse())); try { assertEquals(1, result.getCount()); result.moveToFirst(); model = new TestModel(result); assertFalse(model.isHappy()); } finally { result.close(); } }
@Override public void run() { Update update = Update.table(TestModel.TABLE).where(TestModel.IS_HAPPY.isTrue()); update.compile(database.getCompileContext()); } }, IllegalStateException.class);
public Criterion eq(boolean b) { return b ? isTrue() : isFalse(); }
public Criterion neq(boolean b) { return b ? isFalse() : isTrue(); } }