public void testInstanceVsStaticConjunction() { Criterion c1 = TestModel.FIRST_NAME.eq("Sam"); Criterion c2 = TestModel.LAST_NAME.eq("Bosley"); Criterion c3 = TestModel.LUCKY_NUMBER.eq(7); Criterion c = c1.and(c2); Criterion cand = c.and(c3); assertNotSame(c, cand); // Tests immutability of conjunction criterions when appending with the same operator assertEquals(Criterion.and(c1, c2, c3), c1.and(c2).and(c3)); assertEquals(Criterion.and(Arrays.asList(c1, c2, c3)), c1.and(c2).and(c3)); assertEquals(Criterion.or(c1, c2, c3), c1.or(c2).or(c3)); assertEquals(Criterion.or(Arrays.asList(c1, c2, c3)), c1.or(c2).or(c3)); assertEquals(Criterion.or(Criterion.and(c1, c2), c3), c1.and(c2).or(c3)); assertEquals(Criterion.and(Criterion.or(c1, c2), c3), c1.or(c2).and(c3)); assertEquals(Criterion.and(c1, Criterion.or(c2, c3)), c1.and(c2.or(c3))); assertEquals(Criterion.or(c1, Criterion.and(c2, c3)), c1.or(c2.and(c3))); }
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 testUpdateAll() { final int newLuckyNumber = 99; // check preconditions int numRows = database.countAll(TestModel.class); assertTrue(numRows > 0); int shouldBeZero = database.count(TestModel.class, TestModel.LUCKY_NUMBER.eq(newLuckyNumber)); assertEquals(0, shouldBeZero); // update testModels set luckyNumber = 99 Update update = Update.table(TestModel.TABLE).set(new Property<?>[]{TestModel.LUCKY_NUMBER}, new Integer[]{newLuckyNumber}); CompiledStatement compiled = update.compile(database.getCompileContext()); verifyCompiledSqlArgs(compiled, 1, newLuckyNumber); assertEquals(numRows, database.update(update)); int rowsWithNewLuckyNumber = database.count(TestModel.class, TestModel.LUCKY_NUMBER.eq(newLuckyNumber)); assertEquals(numRows, rowsWithNewLuckyNumber); }
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); }
@Override public void run() { // insert into testModels (firstName, lastName) select (firstName, lastName, creationDate) from // testModels where luckyNumber = 9; Query query = Query.select(TestModel.FIRST_NAME, TestModel.LAST_NAME, TestModel.BIRTHDAY) .from(TestModel.TABLE) .where(TestModel.LUCKY_NUMBER.eq(9)); Insert insert = Insert.into(TestModel.TABLE).columns(TestModel.FIRST_NAME, TestModel.LAST_NAME) .select(query); insert.compile(database.getCompileContext()); } }, IllegalStateException.class);
@Override public void run() { // insert into testModels select luckyNumber from testModels where luckyNumber = 9; Query query = Query.select(TestModel.FIRST_NAME, TestModel.LAST_NAME, TestModel.BIRTHDAY) .from(TestModel.TABLE) .where(TestModel.LUCKY_NUMBER.eq(9)); Insert insert = Insert.into(TestModel.TABLE).select(query); insert.compile(database.getCompileContext()); } }, IllegalStateException.class);