1eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzpackage com.xtremelabs.robolectric.shadows;
2eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz
3eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzimport android.database.DataSetObserver;
4eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzimport android.support.v4.view.PagerAdapter;
5eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzimport android.view.View;
6eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
7eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzimport org.junit.Test;
8eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzimport org.junit.runner.RunWith;
9eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz
10eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzimport static com.xtremelabs.robolectric.Robolectric.shadowOf;
11eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzimport static junit.framework.Assert.assertTrue;
12eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz
13eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz@RunWith(WithTestDefaultsRunner.class)
14eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultzpublic class PagerAdapterTest {
15eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz    @Test
16eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz    public void shouldNotifyDataSetChanged() throws Exception {
17eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        PagerAdapter pagerAdapter = new NullPagerAdapter();
18eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        TestDataSetObserver datasetObserver= new TestDataSetObserver();
19eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        shadowOf(pagerAdapter).registerDataSetObserver(datasetObserver);
20eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        pagerAdapter.notifyDataSetChanged();
21eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz
22eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        assertTrue(datasetObserver.onChangedWasCalled);
23eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz    }
24eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz
25eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz    private static class NullPagerAdapter extends PagerAdapter {
26eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        @Override
27eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        public int getCount() {
28eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz            return 0;
29eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        }
30eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz
31eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        @Override
32eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        public boolean isViewFromObject(View view, Object object) {
33eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz            return false;
34eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        }
35eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz    }
36eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz
37eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz    private class TestDataSetObserver extends DataSetObserver {
38eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        boolean onChangedWasCalled;
39eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        @Override
40eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        public void onChanged() {
41eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz            onChangedWasCalled = true;
42eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz        }
43eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz    }
44eefb5d8c984ecd9b37b886cde33cac11ff31d050Phil Goodwin & Tyler Schultz}
45