13fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalapackage com.xtremelabs.robolectric.tester.android.database; 23fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 33fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport android.content.ContentResolver; 43fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport android.net.Uri; 53fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport com.xtremelabs.robolectric.Robolectric; 63fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport com.xtremelabs.robolectric.WithTestDefaultsRunner; 73fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport com.xtremelabs.robolectric.shadows.ShadowContentResolver; 83fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport org.junit.Before; 93fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport org.junit.Test; 103fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport org.junit.runner.RunWith; 113fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 123fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport java.util.ArrayList; 133fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 143fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport static com.xtremelabs.robolectric.Robolectric.shadowOf; 153fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport static org.hamcrest.CoreMatchers.equalTo; 163fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalaimport static org.junit.Assert.assertThat; 173fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 183fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala@RunWith(WithTestDefaultsRunner.class) 193fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawalapublic class SimpleTestCursorTest { 203fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala private Uri uri; 213fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala private SimpleTestCursor cursor; 223fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala private ContentResolver contentResolver; 233fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 243fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala @Before 253fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala public void setup() throws Exception { 263fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala contentResolver = Robolectric.application.getContentResolver(); 273fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala ShadowContentResolver shadowContentResolver = shadowOf(contentResolver); 283fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala uri = Uri.parse("http://foo"); 293fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala cursor = new SimpleTestCursor(); 303fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala shadowContentResolver.setCursor(uri, cursor); 313fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala ArrayList<String> columnNames = new ArrayList<String>(); 323fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala columnNames.add("stringColumn"); 333fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala columnNames.add("longColumn"); 343fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala cursor.setColumnNames(columnNames); 353fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala } 363fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 373fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala @Test 383fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala public void doingQueryShouldMakeQueryParamsAvailable() throws Exception { 393fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala contentResolver.query(uri, new String[]{"projection"}, "selection", new String[]{"selection"}, "sortOrder"); 403fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.uri, equalTo(uri)); 413fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.projection[0], equalTo("projection")); 423fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.selection, equalTo("selection")); 433fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.selectionArgs[0], equalTo("selection")); 443fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.sortOrder, equalTo("sortOrder")); 453fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala } 463fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 473fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala @Test 483fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala public void canGetStringsAndLongs() throws Exception { 493fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala cursor.setResults(new Object[][]{new Object[]{"aString", 1234L}}); 503fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.moveToNext(), equalTo(true)); 513fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.getString(cursor.getColumnIndex("stringColumn")), equalTo("aString")); 523fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.getLong(cursor.getColumnIndex("longColumn")), equalTo(1234L)); 533fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala } 543fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 553fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala @Test 563fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala public void moveToNextAdvancesToNextRow() throws Exception { 573fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala cursor.setResults(new Object[][] { new Object[] { "aString", 1234L }, new Object[] { "anotherString", 5678L }}); 583fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.moveToNext(), equalTo(true)); 593fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.moveToNext(), equalTo(true)); 603fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.getString(cursor.getColumnIndex("stringColumn")), equalTo("anotherString")); 613fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.getLong(cursor.getColumnIndex("longColumn")), equalTo(5678L)); 623fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala } 633fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala 643fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala @Test 653fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala public void closeIsRemembered() throws Exception { 663fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala cursor.close(); 673fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala assertThat(cursor.getCloseWasCalled(), equalTo(true)); 683fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala } 693fbab426eba539805a7eeb4d1ae8fb29d2a6f40fBrian Colvin & Rick Kawala} 70