1f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesipackage com.xtremelabs.robolectric.shadows;
2f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi
37b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport static org.hamcrest.CoreMatchers.equalTo;
47b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport static org.hamcrest.CoreMatchers.is;
57b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport static org.hamcrest.CoreMatchers.nullValue;
67b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport static org.junit.Assert.assertThat;
77b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia
87b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport java.util.ArrayList;
97b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport java.util.List;
107b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia
11f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesiimport org.junit.Before;
12f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesiimport org.junit.Test;
13f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesiimport org.junit.runner.RunWith;
14f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi
157b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport android.database.AbstractCursor;
167b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport android.net.Uri;
17f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi
187b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport com.xtremelabs.robolectric.Robolectric;
197b5e903f71127867950ba87f363a491ba5e8306dDiego Garciaimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
20f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi
21f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi@RunWith(WithTestDefaultsRunner.class)
22f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesipublic class AbstractCursorTest {
2340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
2440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private TestCursor cursor;
2540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
2640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Before
2740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void setUp() throws Exception {
2840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor = new TestCursor();
2940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
3040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
3140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
3240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testMoveToFirst() {
3340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Foobar");
3440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(true));
3540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(1));
3640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
3740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
3840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
3940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testMoveToFirstEmptyList() {
4040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(false));
4140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(0));
4240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
430b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham
440b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham    @Test
450b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham    public void testMoveToLast() {
460b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham        cursor.theTable.add("Foobar");
470b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham        cursor.theTable.add("Bletch");
480b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham
490b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham        assertThat(cursor.moveToLast(), equalTo(true));
500b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham        assertThat(cursor.getCount(), equalTo(2));
510b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham    }
5240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
5340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
540b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham    public void testMoveToLastEmptyList() {
550b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham        assertThat(cursor.moveToLast(), equalTo(false));
560b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham        assertThat(cursor.getCount(), equalTo(0));
570b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham    }
580b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham
590b1cf2dae9f688eaf17eee6ba853ebf5f9b21689adriancowham    @Test
6040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testGetPosition() {
6140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Foobar");
6240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Bletch");
6340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
6440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(true));
6540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(2));
6640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getPosition(), equalTo(0));
6740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
6840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
6940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
7040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testGetPositionSingleEntry() {
7140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Foobar");
7240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
7340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(true));
7440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(1));
7540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getPosition(), equalTo(0));
7640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
7740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
7840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
7940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testGetPositionEmptyList() {
8040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(false));
8140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(0));
8240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getPosition(), equalTo(0));
8340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
8440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
8540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
8640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testMoveToNext() {
8740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Foobar");
8840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Bletch");
8940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
9040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(true));
9140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(2));
9240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToNext(), equalTo(true));
9340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getPosition(), equalTo(1));
9440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
9540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
9640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
9740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testAttemptToMovePastEnd() {
9840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Foobar");
9940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Bletch");
10040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
10140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(true));
10240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(2));
10340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToNext(), equalTo(true));
104bf6a1c2145b187c23b06243ceaa6f85c24498643Lenny Turetsky & Phil Plante        assertThat(cursor.getPosition(), equalTo(1));
10509e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isLast(), equalTo(true));
10640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToNext(), equalTo(false));
107bf6a1c2145b187c23b06243ceaa6f85c24498643Lenny Turetsky & Phil Plante        assertThat(cursor.isAfterLast(), equalTo(true));
10809e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.getPosition(), equalTo(2));
10940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
11040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
11140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
11240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testAttemptToMovePastSingleEntry() {
11340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        cursor.theTable.add("Foobar");
11440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
11540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(true));
11640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(1));
11740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToNext(), equalTo(false));
11809e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.getPosition(), equalTo(1));
11940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
12040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
12140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Test
12240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    public void testAttemptToMovePastEmptyList() {
12340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToFirst(), equalTo(false));
12440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getCount(), equalTo(0));
12540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.moveToNext(), equalTo(false));
12640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        assertThat(cursor.getPosition(), equalTo(0));
12740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
1287bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi
1297bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    @Test
1307bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    public void testMoveToPrevious() {
1317bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.theTable.add("Foobar");
1327bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.theTable.add("Bletch");
1337bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.moveToFirst(), equalTo(true));
1347bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.moveToNext(), equalTo(true));
1357bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.getPosition(), equalTo(1));
1367bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.moveToPrevious(), equalTo(true));
1377bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.getPosition(), equalTo(0));
1387bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    }
1397bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi
1407bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    @Test
1417bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    public void testAttemptToMovePastStart() {
1427bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.theTable.add("Foobar");
1437bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.theTable.add("Bletch");
1447bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.moveToFirst(), equalTo(true));
1457bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.moveToPrevious(), equalTo(true));
1467bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.getPosition(), equalTo(-1));
1477bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.moveToPrevious(), equalTo(false));
1487bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.getPosition(), equalTo(-1));
1497bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    }
1507bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi
1517bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    @Test
1527bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    public void testIsFirst() {
1537bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.theTable.add("Foobar");
1547bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.theTable.add("Bletch");
1557bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.moveToFirst(), equalTo(true));
1567bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.isFirst(), equalTo(true));
1577bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.moveToNext();
1587bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.isFirst(), equalTo(false));
1597bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.moveToFirst();
1607bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.moveToPrevious();
1617bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.isFirst(), equalTo(false));
1627bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    }
16340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
1647bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    @Test
1657bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    public void testIsLast() {
1667bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.theTable.add("Foobar");
1677bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.theTable.add("Bletch");
1687bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.moveToFirst(), equalTo(true));
1697bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.moveToNext();
1707bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.isLast(), equalTo(true));
1717bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.moveToPrevious();
1727bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        assertThat(cursor.isLast(), equalTo(false));
1737bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.moveToFirst();
1747bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi        cursor.moveToNext();
17539d72cd52c261ec6df86c2ef6a65c977c72738e0Michael Portuesi        assertThat(cursor.isLast(), equalTo(true));
1767bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi    }
1777bf3f1f842b448cd4a422fa0d7e4469d50deb279Michael Portuesi
17809e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken    @Test
17909e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken    public void testIsBeforeFirst() {
18009e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.theTable.add("Foobar");
18109e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.theTable.add("Bletch");
18209e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.moveToFirst(), equalTo(true));
18309e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToNext();
18409e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isLast(), equalTo(true));
18509e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToPrevious();
18609e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isLast(), equalTo(false));
18709e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToPrevious();
18809e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isFirst(), equalTo(false));
18909e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToPrevious();
19009e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isBeforeFirst(), equalTo(true));
19109e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken    }
19209e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken
19309e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken    @Test
19409e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken    public void testIsAfterLast() {
19509e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.theTable.add("Foobar");
19609e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.theTable.add("Bletch");
19709e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.moveToFirst(), equalTo(true));
19809e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToNext();
19909e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isLast(), equalTo(true));
20009e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToNext();
20109e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isAfterLast(), equalTo(true));
20209e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToPrevious();
20309e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isLast(), equalTo(true));
20409e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToPrevious();
20509e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isLast(), equalTo(false));
20609e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToFirst();
20709e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToNext();
208bf6a1c2145b187c23b06243ceaa6f85c24498643Lenny Turetsky & Phil Plante        assertThat(cursor.isAfterLast(), equalTo(false));
20909e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        cursor.moveToNext();
21009e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken        assertThat(cursor.isAfterLast(), equalTo(true));
21109e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken    }
2127b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia
2137b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia    @Test
2147b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia    public void testGetNotificationUri() {
2157b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia        Uri uri = Uri.parse("content://foo.com");
2167b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia        ShadowAbstractCursor shadow = Robolectric.shadowOf_(cursor);
2177b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia        assertThat(shadow.getNotificationUri_Compatibility(), is(nullValue()));
2187b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia        cursor.setNotificationUri(null, uri);
2197b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia        assertThat(shadow.getNotificationUri_Compatibility(), is(uri));
2207b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia    }
2217b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia
222605fe2e0d79665282551b03424c4552bf9157060Savvas Dalkitsis	@Test
223605fe2e0d79665282551b03424c4552bf9157060Savvas Dalkitsis	public void testIsClosedWhenAfterCallingClose() {
224605fe2e0d79665282551b03424c4552bf9157060Savvas Dalkitsis		assertThat(cursor.isClosed(), equalTo(false));
225605fe2e0d79665282551b03424c4552bf9157060Savvas Dalkitsis		cursor.close();
226605fe2e0d79665282551b03424c4552bf9157060Savvas Dalkitsis		assertThat(cursor.isClosed(), equalTo(true));
227605fe2e0d79665282551b03424c4552bf9157060Savvas Dalkitsis	}
2287b5e903f71127867950ba87f363a491ba5e8306dDiego Garcia
22940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private class TestCursor extends AbstractCursor {
23040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
23140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public List<Object> theTable = new ArrayList<Object>();
23240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
233f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi        @Override
234f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi        public int getCount() {
235f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi            return theTable.size();
236f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi        }
237f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi
23840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        @Override
23940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public String[] getColumnNames() {
2403f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz            throw new UnsupportedOperationException();
24140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        }
242b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi
24340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        @Override
24440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public double getDouble(int columnIndex) {
2453f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz            throw new UnsupportedOperationException();
24640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        }
247b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi
24840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        @Override
24940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public float getFloat(int columnIndex) {
2503f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz            throw new UnsupportedOperationException();
25140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        }
252b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi
25340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        @Override
25440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public int getInt(int columnIndex) {
2553f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz            throw new UnsupportedOperationException();
25640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        }
257b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi
25840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        @Override
25940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public long getLong(int columnIndex) {
2603f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz            throw new UnsupportedOperationException();
26140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        }
262b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi
26340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        @Override
26440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public short getShort(int columnIndex) {
2653f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz            throw new UnsupportedOperationException();
26640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        }
267b574da97569d2d098d0aaebbb947bffa8514a4f7Michael Portuesi
26840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        @Override
26940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public String getString(int columnIndex) {
2703f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz            throw new UnsupportedOperationException();
27140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        }
272f2ff212e318b6bd939734d35be9307d79300fd8dMichael Portuesi
27340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        @Override
27440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        public boolean isNull(int columnIndex) {
2753f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz            throw new UnsupportedOperationException();
27640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        }
2773f9ddcc54cfbf81115466d6cab8a4287b2eae67fPhil Goodwin & Tyler Schultz    }
27809e5078f4b638fae60c67b2e6b8f43cc796574a3Chris Van Vranken}