Added ShadowSQLiteDatabase#insertOrThrow
diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java
index 6217bf3..753ab46 100644
--- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java
+++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowSQLiteDatabase.java
@@ -45,6 +45,7 @@
private boolean mLockingEnabled = true;
private WeakHashMap<SQLiteClosable, Object> mPrograms;
private boolean transactionSuccess = false;
+ private boolean throwOnInsert;
@Implementation
public void setLockingEnabled(boolean lockingEnabled) {
@@ -61,6 +62,10 @@
mLock.unlock();
}
+ public void setThrowOnInsert(boolean throwOnInsert) {
+ this.throwOnInsert = throwOnInsert;
+ }
+
@Implementation
public static SQLiteDatabase openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags) {
connection = DatabaseConfig.getMemoryConnection();
@@ -71,6 +76,13 @@
public long insert(String table, String nullColumnHack, ContentValues values) {
return insertWithOnConflict(table, nullColumnHack, values, SQLiteDatabase.CONFLICT_NONE);
}
+
+ @Implementation
+ public long insertOrThrow(String table, String nullColumnHack, ContentValues values) {
+ if (throwOnInsert)
+ throw new android.database.SQLException();
+ return insertWithOnConflict(table, nullColumnHack, values, SQLiteDatabase.CONFLICT_NONE);
+ }
@Implementation
public long replace(String table, String nullColumnHack, ContentValues values) {