public void testUpdateWithTemplate() { Criterion criterion = TestModel.LUCKY_NUMBER.lte(0); // check preconditions int rowsBeforeWithLuckyNumberLteZero = database.count(TestModel.class, criterion); assertTrue(rowsBeforeWithLuckyNumberLteZero > 0); // update testModels set luckyNumber = 777 where luckyNumber <= 0; TestModel template = new TestModel().setLuckyNumber(777); Update update = Update.table(TestModel.TABLE).fromTemplate(template).where(criterion); CompiledStatement compiled = update.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 2, template.getLuckyNumber(), 0); assertEquals(rowsBeforeWithLuckyNumberLteZero, database.update(update)); int rowsAfterWithLuckyNumberLteZero = database.count(TestModel.class, criterion); int rowsWithNewLuckyNumber = database.count(TestModel.class, TestModel.LUCKY_NUMBER.eq(777)); assertEquals(0, rowsAfterWithLuckyNumberLteZero); assertTrue(rowsWithNewLuckyNumber >= rowsBeforeWithLuckyNumberLteZero); }
public void testUpdateWhere() { Criterion criterion = TestModel.LUCKY_NUMBER.lte(0); // check preconditions int rowsBeforeWithLuckyNumberLteZero = database.count(TestModel.class, criterion); assertTrue(rowsBeforeWithLuckyNumberLteZero > 0); // update testModels set luckyNumber = 777 where luckyNumber <= 0; int luckyNumber = 777; Update update = Update.table(TestModel.TABLE).set(TestModel.LUCKY_NUMBER, luckyNumber).where(criterion); CompiledStatement compiled = update.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 2, luckyNumber, 0); assertEquals(rowsBeforeWithLuckyNumberLteZero, database.update(update)); int rowsAfterWithLuckyNumberLteZero = database.count(TestModel.class, criterion); int rowsWithNewLuckyNumber = database.count(TestModel.class, TestModel.LUCKY_NUMBER.eq(777)); assertEquals(0, rowsAfterWithLuckyNumberLteZero); assertTrue(rowsWithNewLuckyNumber >= rowsBeforeWithLuckyNumberLteZero); }
public void testDeleteWhere() { Criterion criterion = TestModel.LUCKY_NUMBER.lte(0); // check preconditions TestModel shouldBeFound = database.fetchByCriterion(TestModel.class, criterion, TestModel.PROPERTIES); assertNotNull(shouldBeFound); // delete from testModels where testModels.luckyNumber <= 0; Delete delete = Delete.from(TestModel.TABLE).where(criterion); CompiledStatement compiled = delete.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 1, 0); assertEquals(1, database.delete(delete)); int numRows = database.countAll(TestModel.class); assertEquals(3, numRows); TestModel shouldNotBeFound = database.fetchByCriterion(TestModel.class, criterion, TestModel.PROPERTIES); assertNull(shouldNotBeFound); }
public void testCriterionNegation() { assertNegationEqualsTheOther(TestModel.FIRST_NAME.eq("Sam"), TestModel.FIRST_NAME.neq("Sam")); assertNegationEqualsTheOther(TestModel.FIRST_NAME.isNull(), TestModel.FIRST_NAME.isNotNull()); assertNegationEqualsTheOther(TestModel.LUCKY_NUMBER.gt(5), TestModel.LUCKY_NUMBER.lte(5)); assertNegationEqualsTheOther(TestModel.LUCKY_NUMBER.gte(5), TestModel.LUCKY_NUMBER.lt(5)); assertNegationEqualsTheOther(TestModel.FIRST_NAME.in(Collections.EMPTY_SET), TestModel.FIRST_NAME.notIn(Collections.EMPTY_SET)); assertNegationEqualsTheOther(TestModel.FIRST_NAME.isNull(), TestModel.FIRST_NAME.isNotNull()); assertNegationEqualsTheOther(TestModel.LUCKY_NUMBER.between(1, 2), TestModel.LUCKY_NUMBER.notBetween(1, 2)); assertNegationEqualsTheOther(TestModel.FIRST_NAME.like("A"), TestModel.FIRST_NAME.notLike("A")); assertNegationEqualsTheOther(TestModel.FIRST_NAME.glob("A*"), TestModel.FIRST_NAME.notGlob("A*")); }