/** * If a {@link ContentProvider} is registered for the given {@link Uri}, its {@link * ContentProvider#insert(Uri, ContentValues)} method will be invoked. * * <p>Tests can verify that this method was called using {@link #getStatements()} or {@link * #getInsertStatements()}. * * <p>If no appropriate {@link ContentProvider} is found, no action will be taken and a {@link * Uri} including the incremented value set with {@link #setNextDatabaseIdForInserts(int)} will * returned. */ @Implementation protected final Uri insert(Uri url, ContentValues values) { ContentProvider provider = getProvider(url); ContentValues valuesCopy = (values == null) ? null : new ContentValues(values); InsertStatement insertStatement = new InsertStatement(url, provider, valuesCopy); statements.add(insertStatement); insertStatements.add(insertStatement); if (provider != null) { return provider.insert(url, values); } else { return Uri.parse(url.toString() + "/" + ++nextDatabaseIdForInserts); } }
@Test public void insert_shouldTrackInsertStatements() { ContentValues contentValues = new ContentValues(); contentValues.put("foo", "bar"); contentResolver.insert(EXTERNAL_CONTENT_URI, contentValues); assertThat(shadowContentResolver.getInsertStatements().size()).isEqualTo(1); assertThat(shadowContentResolver.getInsertStatements().get(0).getUri()).isEqualTo(EXTERNAL_CONTENT_URI); assertThat(shadowContentResolver.getInsertStatements().get(0).getContentValues().getAsString("foo")).isEqualTo("bar"); contentValues = new ContentValues(); contentValues.put("hello", "world"); contentResolver.insert(EXTERNAL_CONTENT_URI, contentValues); assertThat(shadowContentResolver.getInsertStatements().size()).isEqualTo(2); assertThat(shadowContentResolver.getInsertStatements().get(1).getContentValues().getAsString("hello")).isEqualTo("world"); }
/** * If a {@link ContentProvider} is registered for the given {@link Uri}, its {@link * ContentProvider#insert(Uri, ContentValues)} method will be invoked. * * <p>Tests can verify that this method was called using {@link #getStatements()} or {@link * #getInsertStatements()}. * * <p>If no appropriate {@link ContentProvider} is found, no action will be taken and a {@link * Uri} including the incremented value set with {@link #setNextDatabaseIdForInserts(int)} will * returned. */ @Implementation protected final Uri insert(Uri url, ContentValues values) { ContentProvider provider = getProvider(url); ContentValues valuesCopy = (values == null) ? null : new ContentValues(values); InsertStatement insertStatement = new InsertStatement(url, provider, valuesCopy); statements.add(insertStatement); insertStatements.add(insertStatement); if (provider != null) { return provider.insert(url, values); } else { return Uri.parse(url.toString() + "/" + ++nextDatabaseIdForInserts); } }
/** * If a {@link ContentProvider} is registered for the given {@link Uri}, its * {@link ContentProvider#bulkInsert(Uri, ContentValues[])} method will be invoked. * * Tests can verify that this method was called using {@link #getStatements()} or * {@link #getInsertStatements()}. * * If no appropriate {@link ContentProvider} is found, no action will be taken and * the number of rows in {@code values} will be returned. */ @Implementation public final int bulkInsert(Uri url, ContentValues[] values) { ContentProvider provider = getProvider(url); InsertStatement insertStatement = new InsertStatement(url, provider, values); statements.add(insertStatement); insertStatements.add(insertStatement); if (provider != null) { return provider.bulkInsert(url, values); } else { return values.length; } }
/** * If a {@link ContentProvider} is registered for the given {@link Uri}, its {@link * ContentProvider#bulkInsert(Uri, ContentValues[])} method will be invoked. * * <p>Tests can verify that this method was called using {@link #getStatements()} or {@link * #getInsertStatements()}. * * <p>If no appropriate {@link ContentProvider} is found, no action will be taken and the number * of rows in {@code values} will be returned. */ @Implementation protected final int bulkInsert(Uri url, ContentValues[] values) { ContentProvider provider = getProvider(url); InsertStatement insertStatement = new InsertStatement(url, provider, values); statements.add(insertStatement); insertStatements.add(insertStatement); if (provider != null) { return provider.bulkInsert(url, values); } else { return values.length; } }
/** * If a {@link ContentProvider} is registered for the given {@link Uri}, its * {@link ContentProvider#insert(Uri, ContentValues)} method will be invoked. * * Tests can verify that this method was called using {@link #getStatements()} or * {@link #getInsertStatements()}. * * If no appropriate {@link ContentProvider} is found, no action will be taken and * a {@link Uri} including the incremented value set with {@link #setNextDatabaseIdForInserts(int)} will returned. */ @Implementation public final Uri insert(Uri url, ContentValues values) { ContentProvider provider = getProvider(url); ContentValues valuesCopy = (values == null) ? null : new ContentValues(values); InsertStatement insertStatement = new InsertStatement(url, provider, valuesCopy); statements.add(insertStatement); insertStatements.add(insertStatement); if (provider != null) { return provider.insert(url, values); } else { return Uri.parse(url.toString() + "/" + ++nextDatabaseIdForInserts); } }
@Implementation public final Uri insert(Uri url, ContentValues values) { ContentProvider provider = getProvider(url); if (provider != null) { return provider.insert(url, values); } else { InsertStatement insertStatement = new InsertStatement(url, new ContentValues(values)); insertStatements.add(insertStatement); return Uri.parse(url.toString() + "/" + ++nextDatabaseIdForInserts); } }
@Implementation public final Uri insert(Uri url, ContentValues values) { ContentProvider provider = getProvider(url); if (provider != null) { return provider.insert(url, values); } else { InsertStatement insertStatement = new InsertStatement(url, new ContentValues(values)); insertStatements.add(insertStatement); return Uri.parse(url.toString() + "/" + ++nextDatabaseIdForInserts); } }
/** * If a {@link ContentProvider} is registered for the given {@link Uri}, its {@link * ContentProvider#bulkInsert(Uri, ContentValues[])} method will be invoked. * * <p>Tests can verify that this method was called using {@link #getStatements()} or {@link * #getInsertStatements()}. * * <p>If no appropriate {@link ContentProvider} is found, no action will be taken and the number * of rows in {@code values} will be returned. */ @Implementation protected final int bulkInsert(Uri url, ContentValues[] values) { ContentProvider provider = getProvider(url); InsertStatement insertStatement = new InsertStatement(url, provider, values); statements.add(insertStatement); insertStatements.add(insertStatement); if (provider != null) { return provider.bulkInsert(url, values); } else { return values.length; } }
@Test public void insert_supportsNullContentValues() { contentResolver.insert(EXTERNAL_CONTENT_URI, null); assertThat(shadowContentResolver.getInsertStatements().get(0).getContentValues()).isNull(); }