@Override public QueryResult execute(@NotNull final FinishedSelectStatement finishedSelectStatement) { String sql = mStatementConverter.toSql(finishedSelectStatement); Object[] arguments = mStatementConverter.retrieveArguments(finishedSelectStatement); return mDatabase.executeSelectStatement(sql, toStringArray(arguments)); }
@Before public void setUp() { mDatabaseMock = mock(DummyDatabase.class); mStatementExecutor = new TestStatementExecutor(mDatabaseMock); }
void verifyStatementExecuted(final String sql, final Object... arguments) { verify(mDatabaseMock).executeStatement(eq(sql), aryEq(arguments)); }
@Test public void testRollback() { /* When */ rollback() .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("ROLLBACK"); }
@Test public void selectStar() { /* When */ select() .from("my_table") .executeOn(getStatementExecutor()); /* Then */ verifySelectStatementExecuted("SELECT * FROM my_table"); }
@Test public void deleteFromTable() { /* When */ delete() .from("my_table") .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("DELETE FROM my_table"); }
@Test public void vacuum() { /* When */ Statements.vacuum() .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("VACUUM"); } }
@Test public void endTransaction() { /* When */ end().transaction() .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("END TRANSACTION"); } }
@Test public void commitTransaction() { /* When */ commit().transaction().executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("COMMIT TRANSACTION"); } }
@Test public void dropTable() { /* When */ drop() .table("my_table") .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("DROP TABLE my_table"); }
@Test public void analyzeDatabaseAndTable() { /* When */ analyze() .databaseAndTableOrIndex("database", "table") .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("ANALYZE database.table"); } }
@Test public void beginTransaction() { /* When */ begin().transaction().executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("BEGIN TRANSACTION"); }
void verifySelectStatementExecuted(final String sql, final Object... arguments) { String[] strings = new String[arguments.length]; for (int i = 0; i < arguments.length; i++) { Object argument = arguments[i]; strings[i] = String.valueOf(argument); } verify(mDatabaseMock).executeSelectStatement(eq(sql), aryEq(strings)); }
@Test public void rollbackTo() { /* When */ rollback().to("savepointname") .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("ROLLBACK TO SAVEPOINT savepointname"); }
@Test public void selectColumns() { /* When */ select("a", "b") .from("my_table") .executeOn(getStatementExecutor()); /* Then */ verifySelectStatementExecuted("SELECT a,b FROM my_table"); }
@Test public void deleteFromDatabaseTable() { /* When */ delete() .from("my_database", "my_table") .executeOn(getStatementExecutor()); /* Then */ verifyStatementExecuted("DELETE FROM my_database.my_table"); }
@Override public long execute(@NotNull final FinishedUpdateStatement finishedUpdateStatement) { String sql = mStatementConverter.toSql(finishedUpdateStatement); Object[] arguments = mStatementConverter.retrieveArguments(finishedUpdateStatement); mDatabase.executeStatement(sql, arguments); return 0; }
@Override public void execute(@NotNull final FinishedStatement finishedStatement) { String sql = mStatementConverter.toSql(finishedStatement); Object[] arguments = mStatementConverter.retrieveArguments(finishedStatement); mDatabase.executeStatement(sql, arguments); } }
@Override public long execute(@NotNull final FinishedInsertStatement finishedInsertStatement) { String sql = mStatementConverter.toSql(finishedInsertStatement); Object[] arguments = mStatementConverter.retrieveArguments(finishedInsertStatement); mDatabase.executeStatement(sql, arguments); return 0; }
@Override public long execute(@NotNull final FinishedDeleteStatement finishedDeleteStatement) { String sql = mStatementConverter.toSql(finishedDeleteStatement); Object[] arguments = mStatementConverter.retrieveArguments(finishedDeleteStatement); mDatabase.executeStatement(sql, arguments); return 0; }