@Test
public void shouldNotifyFineGrainedEventsWithDiffWith() {

  final List<String> oldData = asList("A:1", "B:2", "C:3");
  final List<String> newData = asList("B:2", "A:4", "C:5");
  final DiffingLogic diffingLogic = new DiffingLogic(oldData, newData);
  final RepositoryPresenter<List<String>> diffingPresenter =
      dataBindingRepositoryPresenterOf(String.class)
          .layout(LAYOUT_ID)
          .itemId(ITEM_ID)
          .diffWith(diffingLogic, false)
          .forList();
  final boolean fineGrained = diffingPresenter.getUpdates(oldData, newData, listUpdateCallback);
  assertThat(fineGrained, is(true));
  DiffUtil.calculateDiff(diffingLogic, false).dispatchUpdatesTo(
      verifyingWrapper(listUpdateCallback));
  verifyNoMoreInteractions(listUpdateCallback);
}