@Override public boolean hasNext() { return mLastReturned == null || mLastReturned.previous() != null; }
@Test public void selectFromWhereGroupByOrderByLimit() { /* When */ select("a", "b") .from("my_table") .where("a=? AND b=?", 1, 2) .groupBy("a") .orderBy("a", "b") .limit(5) .executeOn(getStatementExecutor()); /* Then */ verifySelectStatementExecuted("SELECT a,b FROM my_table WHERE a=? AND b=? GROUP BY a ORDER BY a,b LIMIT 5", 1, 2); } }
@Test public void updateSetWhere() { /* When */ update("my_table") .set("a") .values(1) .where("b=?", 2) .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("UPDATE my_table SET a=? WHERE b=?", 1, 2); }
@Test public void createTableAs() { /* When */ create() .table("my_table") .as( select("a", "b") .from("my_other_table") ) .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("CREATE TABLE my_table AS SELECT a,b FROM my_other_table"); } }
@Test public void insertIntoColumnsValues() { /* When */ insert() .into("my_table") .columns("a", "b", "c") .values(1, 2, 3) .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("INSERT INTO my_table (a,b,c) VALUES (?,?,?)", 1, 2, 3); }
@Test public void rollbackTransactionToSavepoint() { /* When */ rollback().transaction().to().savePoint("savepointname") .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("ROLLBACK TRANSACTION TO SAVEPOINT savepointname"); } }
@Test public void insertOrRollbackIntoColumnsValues() { /* When */ insertOrRollback() .into("my_table") .columns("a", "b", "c") .values(1, 2, 3) .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("INSERT OR ROLLBACK INTO my_table (a,b,c) VALUES (?,?,?)", 1, 2, 3); }
@Test public void insertOrReplaceIntoColumnsValues() { /* When */ insertOrReplace() .into("my_table") .columns("a", "b", "c") .values(1, 2, 3) .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("INSERT OR REPLACE INTO my_table (a,b,c) VALUES (?,?,?)", 1, 2, 3); }
@Test public void replaceIntoDatabaseTable() { /* When */ replace() .into("my_database", "my_table") .columns("a", "b") .values(1, "test") .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("REPLACE INTO my_database.my_table (a,b) VALUES (?,?)", 1, "test"); } }
@Test public void insertOrIgnoreIntoColumnsValues() { /* When */ insertOrIgnore() .into("my_table") .columns("a", "b", "c") .values(1, 2, 3) .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("INSERT OR IGNORE INTO my_table (a,b,c) VALUES (?,?,?)", 1, 2, 3); }
@Test public void rollbackTransactionTo() { /* When */ rollback().transaction().to("savepointname") .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("ROLLBACK TRANSACTION TO SAVEPOINT savepointname"); }
@Test public void beginExclusiveTransaction() { /* When */ begin().exclusive().transaction().executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("BEGIN EXCLUSIVE TRANSACTION"); }
@Test public void beginImmediateTransaction() { /* When */ begin().immediate().transaction().executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("BEGIN IMMEDIATE TRANSACTION"); } }
@Test public void insertOrAbortIntoValues() { /* When */ insertOrAbort() .into("my_database", "my_table") .values(1, 2, 3) .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("INSERT OR ABORT INTO my_database.my_table VALUES (?,?,?)", 1, 2, 3); }
@Test public void updateSetWhereMultiple() { /* When */ update("my_table") .set("a", "b") .values(1, 2) .where("c=? OR c=?", 3, 4) .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("UPDATE my_table SET a=?,b=? WHERE c=? OR c=?", 1, 2, 3, 4); }