package dbfit.util; import org.junit.Test; import org.junit.Before; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import org.mockito.Mockito; import static org.mockito.Mockito.*; @RunWith(MockitoJUnitRunner.class) public class DiffListenerAdapterTest { private DiffListenerAdapter adapter; private DiffHandler handler; @Before public void prepare() { handler = Mockito.mock(DiffHandler.class); adapter = DiffListenerAdapter.from(handler); } @Test @SuppressWarnings("unchecked") public void shouldDelegateToEndCell() { MatchResult res = createResult(DataCell.class); adapter.onEvent(res); verify(handler).endCell(res); verify(handler, never()).endRow(any(MatchResult.class)); verify(handler, never()).endTable(any(MatchResult.class)); } @Test @SuppressWarnings("unchecked") public void shouldDelegatetoEndRow() { MatchResult res = createResult(DataRow.class); adapter.onEvent(res); verify(handler).endRow(res); verify(handler, never()).endCell(any(MatchResult.class)); verify(handler, never()).endTable(any(MatchResult.class)); } @Test @SuppressWarnings("unchecked") public void shouldDelegateToEndTable() { MatchResult res = createResult(DataTable.class); adapter.onEvent(res); verify(handler).endTable(res); verify(handler, never()).endCell(any(MatchResult.class)); verify(handler, never()).endRow(any(MatchResult.class)); } private <T> MatchResult<T, T> createResult(final Class<T> cls) { return MatchResult.create(Mockito.mock(cls), Mockito.mock(cls), cls); } }