package dbfit.util;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertThat;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.Mock;
import org.mockito.Captor;
import org.mockito.ArgumentCaptor;
import static org.mockito.Mockito.*;
import static java.util.Arrays.asList;
@RunWith(MockitoJUnitRunner.class)
public class DefaultDataTableProcessorTest {
@Mock DataRow r1, r2;
@Mock DataRowProcessor mockedChildProcessor;
@Captor ArgumentCaptor<DataRow> captor;
@Test
public void shouldInvokeProcessOnEachChild() {
DataTable dt = createDt(r1, r2);
new DefaultDataTableProcessor(mockedChildProcessor).process(dt);
verify(mockedChildProcessor, times(2)).process(captor.capture());
assertThat(captor.getAllValues(), contains(r1, r2));
}
private DataTable createDt(DataRow... rows) {
DataTable dt = mock(DataTable.class);
when(dt.getRows()).thenReturn(asList(rows));
return dt;
}
}