@Before public void setup() throws Exception { contentResolver = ApplicationProvider.getApplicationContext().getContentResolver(); shadowOf(contentResolver).setCursor(uri, cursor); cursor.setColumnNames(asList( STRING_COLUMN, LONG_COLUMN, INT_COLUMN, BLOB_COLUMN, SHORT_COLUMN, FLOAT_COLUMN, DOUBLE_COLUMN, NULL_COLUMN )); }
@Test public void query_shouldReturnSpecificCursorsForSpecificUris() { assertThat(shadowContentResolver.query(uri21, null, null, null, null)).isNull(); assertThat(shadowContentResolver.query(uri22, null, null, null, null)).isNull(); BaseCursor cursor21 = new BaseCursor(); BaseCursor cursor22 = new BaseCursor(); shadowContentResolver.setCursor(uri21, cursor21); shadowContentResolver.setCursor(uri22, cursor22); assertThat((BaseCursor) shadowContentResolver.query(uri21, null, null, null, null)).isSameAs(cursor21); assertThat((BaseCursor) shadowContentResolver.query(uri22, null, null, null, null)).isSameAs(cursor22); }
@Test public void query_shouldKnowWhatItsParamsWere() { String[] projection = {}; String selection = "select"; String[] selectionArgs = {}; String sortOrder = "order"; QueryParamTrackingCursor testCursor = new QueryParamTrackingCursor(); shadowContentResolver.setCursor(testCursor); Cursor cursor = shadowContentResolver.query(uri21, projection, selection, selectionArgs, sortOrder); assertThat((QueryParamTrackingCursor) cursor).isEqualTo(testCursor); assertThat(testCursor.uri).isEqualTo(uri21); assertThat(testCursor.projection).isEqualTo(projection); assertThat(testCursor.selection).isEqualTo(selection); assertThat(testCursor.selectionArgs).isEqualTo(selectionArgs); assertThat(testCursor.sortOrder).isEqualTo(sortOrder); }
@Test public void whenCursorHasBeenSet_query_shouldReturnTheCursor() { assertThat(shadowContentResolver.query(null, null, null, null, null)).isNull(); BaseCursor cursor = new BaseCursor(); shadowContentResolver.setCursor(cursor); assertThat((BaseCursor) shadowContentResolver.query(null, null, null, null, null)).isSameAs(cursor); }
@Test public void startQuery_callbackIsCalled() throws Exception { FakeAsyncQueryHandler asyncQueryHandler = new FakeAsyncQueryHandler(contentResolver); shadowOf(contentResolver).setCursor(EXTERNAL_CONTENT_URI, CURSOR); asyncQueryHandler.startQuery( TOKEN, COOKIE, EXTERNAL_CONTENT_URI, null /* projection */, null /* selection */, null /* selectionArgs */, null /* orderBy */); assertThat(asyncQueryHandler.token).isEqualTo(TOKEN); assertThat(asyncQueryHandler.cookie).isEqualTo(COOKIE); assertThat(asyncQueryHandler.cursor).isEqualTo(CURSOR); }
@Test public void whenCursorHasBeenSet_queryWithCancellationSignal_shouldReturnTheCursor() { assertThat(shadowContentResolver.query(null, null, null, null, null, new CancellationSignal())).isNull(); BaseCursor cursor = new BaseCursor(); shadowContentResolver.setCursor(cursor); assertThat((BaseCursor) shadowContentResolver.query(null, null, null, null, null, new CancellationSignal())).isSameAs(cursor); }
@Test public void testVideoQueryReturnsVideoCursor() { Uri queryUri = MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI; ThumbFetcher.VideoThumbnailQuery query = new ThumbFetcher.VideoThumbnailQuery(getContentResolver()); RoboCursor testCursor = new RoboCursor(); Shadows.shadowOf(RuntimeEnvironment.application.getContentResolver()) .setCursor(queryUri, testCursor); assertEquals(testCursor, query.query(harness.uri)); }
@Test public void testImageQueryReturnsImageCursor() { Uri queryUri = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI; ThumbFetcher.ImageThumbnailQuery query = new ThumbFetcher.ImageThumbnailQuery(getContentResolver()); RoboCursor testCursor = new RoboCursor(); Shadows.shadowOf(RuntimeEnvironment.application.getContentResolver()) .setCursor(queryUri, testCursor); assertEquals(testCursor, query.query(harness.uri)); }