@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 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 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 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 queryAlbumWithoutArtist() { Uri uri = MediaContract.Albums.buildAlbumUri(hostInfo.getId(), TestValues.AlbumWithoutArtist.albumId); Cursor cursor = shadowContentResolver.query(uri, TestValues.AlbumWithoutArtist.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 1, cursor.getCount()); assertTrue(cursor.moveToFirst()); TestValues.AlbumWithoutArtist.test(cursor); }
@Test public void queryAlbumTest() { Uri uri = MediaContract.Albums.buildAlbumUri(hostInfo.getId(), TestValues.Album.albumId); Cursor cursor = shadowContentResolver.query(uri, TestValues.Album.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 1, cursor.getCount()); assertTrue(cursor.moveToFirst()); TestValues.Album.test(cursor); }
@Test public void queryAlbumsForArtistTest() { Uri uri = MediaContract.AlbumArtists.buildAlbumsForArtistListUri(hostInfo.getId(), TestValues.Artist.artistId); Cursor cursor = shadowContentResolver.query(uri, TestValues.Album.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 1, cursor.getCount()); assertTrue(cursor.moveToFirst()); TestValues.Album.test(cursor); }
@Test public void queryAlbumWithMultipleArtists() { Uri uri = MediaContract.Albums.buildAlbumUri(hostInfo.getId(), TestValues.AlbumWithMultipleArtists.albumId); Cursor cursor = shadowContentResolver.query(uri, TestValues.AlbumWithMultipleArtists.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 1, cursor.getCount()); assertTrue(cursor.moveToFirst()); TestValues.AlbumWithMultipleArtists.test(cursor); } }
@Test public void queryAllAlbumsTest() { Uri uri = MediaContract.Albums.buildAlbumsListUri(hostInfo.getId()); Cursor cursor = shadowContentResolver.query(uri, TestValues.Album.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 235, cursor.getCount()); int columnIndex = cursor.getColumnIndex(MediaContract.AlbumsColumns.ALBUMID); TestUtils.testCursorContainsRange(cursor, columnIndex, 1, 75); TestUtils.testCursorContainsRange(cursor, columnIndex, 77, 82); TestUtils.testCursorContainsRange(cursor, columnIndex, 84, 237); }
@Test public void queryAllArtistsTest() { Uri uri = MediaContract.Artists.buildArtistsListUri(hostInfo.getId()); Cursor cursor = shadowContentResolver.query(uri, TestValues.Artist.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 229, cursor.getCount()); TestUtils.testCursorContainsRange(cursor, cursor.getColumnIndex(MediaContract.ArtistsColumns.ARTISTID), 1, 94); //Artist id 95 should be missing TestUtils.testCursorContainsRange(cursor, cursor.getColumnIndex(MediaContract.ArtistsColumns.ARTISTID), 96, 230); }
@Test public void queryAlbumSongsTest() { Uri uri = MediaContract.Songs.buildAlbumSongsListUri(hostInfo.getId(), TestValues.Album.albumId); Cursor cursor = shadowContentResolver.query(uri, new String[] {MediaProvider.Qualified.SONGS_SONGID}, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 17, cursor.getCount()); TestUtils.testCursorContainsRange(cursor, cursor.getColumnIndex(MediaContract.SongsColumns.SONGID), 96, 112); }
@Test public void queryAllGenresTest() { Uri uri = MediaContract.AudioGenres.buildAudioGenresListUri(hostInfo.getId()); Cursor cursor = shadowContentResolver.query(uri, new String[] {MediaContract.AudioGenresColumns.GENREID}, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 39, cursor.getCount()); TestUtils.testCursorContainsRange(cursor, cursor.getColumnIndex(MediaContract.AudioGenresColumns.GENREID), 1, 39); }
@Test public void queryAllSongsTest() { Uri uri = MediaContract.Songs.buildSongsListUri(hostInfo.getId()); Cursor cursor = shadowContentResolver.query(uri, TestValues.ArtistSong.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 1817, cursor.getCount()); TestUtils.testCursorContainsRange(cursor, cursor.getColumnIndex(MediaContract.Songs.SONGID), 1, 1817); }
@Test public void queryMultidiscAlbumSongsTest() { Uri uri = MediaContract.Songs.buildAlbumSongsListUri(hostInfo.getId(), TestValues.MultidiscAlbumSongs.albumId); Cursor cursor = shadowContentResolver.query(uri, TestValues.MultidiscAlbumSongs.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 7, cursor.getCount()); TestUtils.testCursorContainsRange(cursor, cursor.getColumnIndex(MediaContract.SongsColumns.SONGID), 1811, 1817); }
@Test public void queryArtistsSongWithArtistWithoutAlbumTest() { Uri uri = MediaContract.Songs.buildArtistSongsListUri(hostInfo.getId(), TestValues.SongWithArtistWithoutAlbum.artistId); Cursor cursor = shadowContentResolver.query(uri, TestValues.SongWithArtistWithoutAlbum.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 1, cursor.getCount()); assertTrue(cursor.moveToFirst()); TestValues.SongWithArtistWithoutAlbum.test(cursor); }
@Test public void queryArtistTest() { Uri uri = MediaContract.Artists.buildArtistUri(hostInfo.getId(), TestValues.Artist.artistId); Cursor cursor = shadowContentResolver.query(uri, TestValues.Artist.PROJECTION, null, null, null); assertNotNull(cursor); assertEquals("cursor size ", 1, cursor.getCount()); assertTrue(cursor.moveToFirst()); TestValues.Artist.test(cursor); } }
@Test public void queryAllSongsSongWithAlbumWithoutArtistTest() { Uri uri = MediaContract.Songs.buildSongsListUri(hostInfo.getId()); Cursor cursor = shadowContentResolver.query(uri, TestValues.ArtistSong.PROJECTION, null, null, null); assertTrue(CursorUtils.moveCursorToFirstOccurrence(cursor, cursor.getColumnIndex(MediaContract.Songs.SONGID), TestValues.SongWithAlbumWithoutArtist.songId)); TestValues.SongWithAlbumWithoutArtist.test(cursor); }
@Test public void queryAllSongsSongWithAlbumAndArtistTest() { Uri uri = MediaContract.Songs.buildSongsListUri(hostInfo.getId()); Cursor cursor = shadowContentResolver.query(uri, TestValues.ArtistSong.PROJECTION, null, null, null); assertTrue(CursorUtils.moveCursorToFirstOccurrence(cursor, cursor.getColumnIndex(MediaContract.Songs.SONGID), TestValues.SongWithAlbumAndArtist.songId)); TestValues.SongWithAlbumAndArtist.test(cursor); }
@Test public void queryAllSongsSongWithMultipleArtistsTest() { Uri uri = MediaContract.Songs.buildSongsListUri(hostInfo.getId()); Cursor cursor = shadowContentResolver.query(uri, TestValues.ArtistSong.PROJECTION, null, null, null); assertTrue(CursorUtils.moveCursorToFirstOccurrence(cursor, cursor.getColumnIndex(MediaContract.Songs.SONGID), TestValues.SongWithMultipleArtists.songId)); TestValues.SongWithMultipleArtists.test(cursor); }
@Test public void queryAllSongsSongWithArtistWithoutAlbumTest() { Uri uri = MediaContract.Songs.buildSongsListUri(hostInfo.getId()); Cursor cursor = shadowContentResolver.query(uri, TestValues.ArtistSong.PROJECTION, null, null, null); assertTrue(CursorUtils.moveCursorToFirstOccurrence(cursor, cursor.getColumnIndex(MediaContract.Songs.SONGID), TestValues.SongWithArtistWithoutAlbum.songId)); TestValues.SongWithArtistWithoutAlbum.test(cursor); }