Home | History | Annotate | Download | only in shadows
      1 package org.robolectric.shadows;
      2 
      3 import static com.google.common.truth.Truth.assertThat;
      4 
      5 import android.content.ContentProvider;
      6 import android.content.ContentProviderOperation;
      7 import android.content.ContentProviderOperation.Builder;
      8 import android.content.ContentValues;
      9 import android.database.Cursor;
     10 import android.net.Uri;
     11 import androidx.test.ext.junit.runners.AndroidJUnit4;
     12 import org.junit.Test;
     13 import org.junit.runner.RunWith;
     14 
     15 @RunWith(AndroidJUnit4.class)
     16 public class ShadowContentProviderOperationBuilderTest {
     17   private Builder builder;
     18 
     19   @Test
     20   public void build() throws Exception {
     21     Uri uri = Uri.parse("content://authority/path");
     22 
     23     builder = ContentProviderOperation.newUpdate(uri);
     24     builder.withSelection("a=?", new String[] {"a"});
     25     builder.withValue("k1", "v1");
     26     ContentValues cv = new ContentValues();
     27     cv.put("k2", "v2");
     28     builder.withValues(cv);
     29     ContentProviderOperation op = builder.build();
     30 
     31     assertThat(op).isNotNull();
     32     assertThat(op.getUri()).isEqualTo(uri);
     33 
     34     final ContentRequest request = new ContentRequest();
     35     ContentProvider provider = new ContentProvider() {
     36       @Override
     37       public boolean onCreate() {
     38         return true;
     39       }
     40 
     41       @Override
     42       public Cursor query(Uri uri, String[] projection, String selection,
     43           String[] selectionArgs, String sortOrder) {
     44         return null;
     45       }
     46 
     47       @Override
     48       public String getType(Uri uri) {
     49         return null;
     50       }
     51 
     52       @Override
     53       public Uri insert(Uri uri, ContentValues values) {
     54         return null;
     55       }
     56 
     57       @Override
     58       public int delete(Uri uri, String selection, String[] selectionArgs) {
     59         return 0;
     60       }
     61 
     62       @Override
     63       public int update(Uri uri, ContentValues values, String selection,
     64           String[] selectionArgs) {
     65         request.uri = uri;
     66         request.values = values;
     67         request.selection = selection;
     68         request.selectionArgs = selectionArgs;
     69         return 0;
     70       }
     71 
     72     };
     73 
     74     op.apply(provider, null, 0);
     75 
     76     assertThat(request.uri).isEqualTo(uri);
     77     assertThat(request.selection).isEqualTo("a=?");
     78     assertThat(request.selectionArgs).isEqualTo(new String[] {"a"});
     79 
     80     assertThat(request.values.containsKey("k1")).isTrue();
     81     assertThat(request.values.containsKey("k2")).isTrue();
     82 
     83   }
     84 
     85   static class ContentRequest {
     86     Uri uri;
     87     String selection;
     88     String[] selectionArgs;
     89     ContentValues values;
     90   }
     91 
     92 }