aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Portuesi <mikep@zoodles.com>2012-09-14 17:55:52 -0700
committerMichael Portuesi <mikep@zoodles.com>2012-09-14 17:55:52 -0700
commitfcb4d183dac0ed68e429fc58dc4e464d79c5eb6e (patch)
treee1b8b845d689ce565fb38cc4aa08edeadf153fcf
parent3fc6cac3677cd2ca3958dfb5d4598728d304db4f (diff)
downloadrobolectric-fcb4d183dac0ed68e429fc58dc4e464d79c5eb6e.tar.gz
Implement one of the forms of rawQueryWithFactory
-rw-r--r--src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java26
1 files 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;
}