• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
build()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 }