shadows/framework/src/main/java/org/robolectric/shadows/ShadowContentResolver.java
@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);
    }
  }
@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#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.