From fcb4d183dac0ed68e429fc58dc4e464d79c5eb6e Mon Sep 17 00:00:00 2001 From: Michael Portuesi Date: Fri, 14 Sep 2012 17:55:52 -0700 Subject: Implement one of the forms of rawQueryWithFactory --- .../robolectric/shadows/ShadowSQLiteDatabase.java | 26 +++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java index 023914d54..44755043b 100644 --- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java +++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java @@ -3,12 +3,7 @@ package com.xtremelabs.robolectric.shadows; import android.content.ContentValues; import android.database.Cursor; import android.database.DatabaseUtils; -import android.database.sqlite.SQLiteClosable; -import android.database.sqlite.SQLiteCursor; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteDatabaseCorruptException; -import android.database.sqlite.SQLiteQueryBuilder; -import android.database.sqlite.SQLiteStatement; +import android.database.sqlite.*; import com.xtremelabs.robolectric.Robolectric; import com.xtremelabs.robolectric.internal.Implementation; import com.xtremelabs.robolectric.internal.Implements; @@ -229,8 +224,20 @@ public class ShadowSQLiteDatabase { @Implementation - public Cursor rawQuery (String sql, String[] selectionArgs){ - String sqlBody = sql; + public Cursor rawQuery (String sql, String[] selectionArgs) { + return rawQueryWithFactory( new SQLiteDatabase.CursorFactory() { + @Override + public Cursor newCursor(SQLiteDatabase db, + SQLiteCursorDriver masterQuery, String editTable, SQLiteQuery query) { + return new SQLiteCursor(db, masterQuery, editTable, query); + } + + }, sql, selectionArgs, null ); + } + + @Implementation + public Cursor rawQueryWithFactory (SQLiteDatabase.CursorFactory cursorFactory, String sql, String[] selectionArgs, String editTable) { + String sqlBody = sql; if (sql != null) { sqlBody = buildWhereClause(sql, selectionArgs); } @@ -251,8 +258,7 @@ public class ShadowSQLiteDatabase { } //TODO: assert rawquery with args returns actual values - - SQLiteCursor cursor = new SQLiteCursor(null, null, null, null); + SQLiteCursor cursor = (SQLiteCursor) cursorFactory.newCursor(null, null, null, null); shadowOf(cursor).setResultSet(resultSet, sqlBody); return cursor; } -- cgit v1.2.3