public void testVariableArgumentsWorkInFunctions() { AtomicReference<String> name = new AtomicReference<>("Sam"); Function<Integer> caseWhen = Function.caseWhen(TestModel.FIRST_NAME.eq(name)); BooleanProperty nameMatches = BooleanProperty.fromFunction(caseWhen, "nameMatches"); Query query = Query.select(TestModel.ID, TestModel.FIRST_NAME, nameMatches).where(TestModel.ID.eq(1)); TestModel model = database.fetchByQuery(TestModel.class, query); assertNotNull(model); assertEquals(name.get(), model.getFirstName()); assertTrue(model.get(nameMatches)); name.set("Bob"); model = database.fetchByQuery(TestModel.class, query); assertNotNull(model); assertNotSame(name.get(), model.getFirstName()); assertFalse(model.get(nameMatches)); }
public void testOrderByFunction() { AtomicReference<String> name = new AtomicReference<>("Sam"); Function<Integer> caseWhen = Function.caseWhen(TestModel.FIRST_NAME.eq(name)); BooleanProperty nameMatches = BooleanProperty.fromFunction(caseWhen, "nameMatches");
public void testBooleanFunctionOnCriterion() { BooleanProperty onCriterion = BooleanProperty .fromFunction(Function.caseWhen(TestModel.FIRST_NAME.eq("Sam")), "firstNameSam"); SquidCursor<TestModel> cursor = database .query(TestModel.class, Query.select(onCriterion).orderBy(Order.asc(TestModel.ID))); try { cursor.moveToFirst(); assertTrue(cursor.get(onCriterion)); cursor.moveToNext(); assertFalse(cursor.get(onCriterion)); } finally { cursor.close(); } }
public void testBooleanFunctionPropertyConstants() { BooleanProperty alwaysTrue = BooleanProperty.fromFunction(Function.TRUE, "alwaysTrue"); BooleanProperty alwaysFalse = BooleanProperty.fromFunction(Function.FALSE, "alwaysFalse"); SquidCursor<TestModel> cursor = database.query(TestModel.class, Query.select(alwaysTrue, alwaysFalse)); try { cursor.moveToFirst(); assertTrue(cursor.get(alwaysTrue)); assertFalse(cursor.get(alwaysFalse)); } finally { cursor.close(); } }