huaxunhuang
10/26/2017 - 11:46 AM

materialistic #10~#22

API: Line 56,81,84,85,86,87,88,94,96,97,98,104 Warning: Call requires API level 11 (current min is 9): android.widget.RemoteViewsService.RemoteViewsFactory#onCreate

@Before
public void setUp() {
    reset(itemManager);
    viewFactory = new WidgetService.ListRemoteViewsFactory(RuntimeEnvironment.application,
            itemManager, ItemManager.TOP_FETCH_MODE, false);
    viewFactory.onCreate();
}

@Test
public void testAdapter() {
    when(itemManager.getStories(anyString(), anyInt())).thenReturn(new Item[]{new TestHnItem(1L)});
    when(itemManager.getItem(anyString(), anyInt())).thenReturn(new TestHnItem(1L) {
        @Override
        public String getDisplayedTitle() {
            return "title";
        }

        @Override
        public int getScore() {
            return 100;
        }
    });
    viewFactory.onDataSetChanged();
    verify(itemManager).getStories(anyString(), anyInt());
    assertThat(viewFactory.hasStableIds()).isTrue();
    assertThat(viewFactory.getCount()).isEqualTo(1);
    assertThat(viewFactory.getLoadingView()).isNotNull();
    assertThat(viewFactory.getViewTypeCount()).isEqualTo(1);
    assertThat(viewFactory.getItemId(0)).isEqualTo(1L);
    assertThat(viewFactory.getViewAt(0)).isNotNull();
    verify(itemManager).getItem(eq("1"), anyInt());
}

@Test
public void testEmpty() {
    viewFactory.onDataSetChanged();
    verify(itemManager).getStories(anyString(), anyInt());
    assertThat(viewFactory.getCount()).isEqualTo(0);
    assertThat(viewFactory.getItemId(0)).isEqualTo(0L);
    assertThat(viewFactory.getViewAt(0)).isNotNull();
    verify(itemManager, never()).getItem(anyString(), anyInt());
}

@After
public void tearDown() {
    viewFactory.onDestroy();
}