@Test @SuppressWarnings("deprecation") public void testOnBindViewHolder() { MultiTypeAdapter adapter = new MultiTypeAdapter(); adapter.register(TestItem.class, mockedItemViewBinder); TestItem item = new TestItem("testOnCreateViewHolder"); adapter.setItems(Collections.singletonList(item)); TestItemViewBinder.ViewHolder holder = mock(TestItemViewBinder.ViewHolder.class); when(holder.getItemViewType()).thenReturn(adapter.getItemViewType(0)); adapter.onBindViewHolder(holder, 0); verify(mockedItemViewBinder).onBindViewHolder(eq(holder), eq(item), anyList()); List<Object> payloads = Collections.emptyList(); adapter.onBindViewHolder(holder, 0, payloads); verify(mockedItemViewBinder, times(2)).onBindViewHolder(holder, item, payloads); } }
@Test public void testOnCreateViewHolder() { MultiTypeAdapter adapter = new MultiTypeAdapter(); adapter.register(TestItem.class, mockedItemViewBinder); TestItem item = new TestItem("testOnCreateViewHolder"); adapter.setItems(Collections.singletonList(item)); int type = adapter.getItemViewType(0); adapter.onCreateViewHolder(parent, type); verify(mockedItemViewBinder).onCreateViewHolder(inflater, parent); }
@Test public void shouldGetNonNullAdapter() { Exception exception = null; MultiTypeAdapter adapter = new MultiTypeAdapter(); Items empty = new Items(); adapter.setItems(empty); TestItemViewBinder binder = new TestItemViewBinder(); adapter.register(TestItem.class, binder); empty.add(new TestItem("ItemViewBinderTest")); try { binder.notifyTestItemAdded(); } catch (Exception e) { e.printStackTrace(); exception = e; } assertNull(exception); }
@Test(expected = IllegalStateException.class) public void shouldThrowIllegalStateException() { MultiTypeAdapter adapter = new MultiTypeAdapter(); Items empty = new Items(); adapter.setItems(empty); TestItemViewBinder binder = new TestItemViewBinder(); empty.add(new TestItem("ItemViewBinderTest")); binder.notifyTestItemAdded(); adapter.register(TestItem.class, binder); }