Home | History | Annotate | Download | only in shadows
      1 package com.xtremelabs.robolectric.shadows;
      2 
      3 import android.app.Activity;
      4 import android.support.v4.view.PagerAdapter;
      5 import android.support.v4.view.ViewPager;
      6 import android.view.View;
      7 import com.xtremelabs.robolectric.WithTestDefaultsRunner;
      8 import org.junit.Before;
      9 import org.junit.Test;
     10 import org.junit.runner.RunWith;
     11 
     12 import static junit.framework.Assert.*;
     13 
     14 @RunWith(WithTestDefaultsRunner.class)
     15 public class ViewPagerTest {
     16 
     17     private ViewPager pager;
     18     private TestPagerAdapter adapter;
     19 
     20     @Before
     21     public void setUp() throws Exception {
     22         pager = new ViewPager(new Activity());
     23         adapter = new TestPagerAdapter();
     24     }
     25 
     26     @Test
     27     public void shouldSetAndGetAdapter() throws Exception {
     28         assertNull(pager.getAdapter());
     29 
     30         pager.setAdapter(adapter);
     31         assertSame(adapter, pager.getAdapter());
     32     }
     33 
     34     @Test
     35     public void test_getAndSetCurrentItem() throws Exception {
     36         pager.setCurrentItem(2);
     37         assertEquals(2, pager.getCurrentItem());
     38     }
     39 
     40     @Test
     41     public void setCurrentItem_shouldInvokeListener() throws Exception {
     42         TestOnPageChangeListener listener = new TestOnPageChangeListener();
     43         pager.setOnPageChangeListener(listener);
     44         assertFalse(listener.onPageSelectedCalled);
     45         pager.setCurrentItem(2);
     46         assertTrue(listener.onPageSelectedCalled);
     47     }
     48 
     49     private static class TestPagerAdapter extends PagerAdapter {
     50         @Override
     51         public int getCount() {
     52             return 0;
     53         }
     54 
     55         @Override
     56         public boolean isViewFromObject(View view, Object object) {
     57             return false;
     58         }
     59     }
     60 
     61     private static class TestOnPageChangeListener extends ViewPager.SimpleOnPageChangeListener {
     62         public boolean onPageSelectedCalled;
     63 
     64         @Override
     65         public void onPageSelected(int position) {
     66             onPageSelectedCalled = true;
     67         }
     68     }
     69 }
     70