public function processShouldApplyConverterIfFieldFilterReturnsTrueToReadItems()
{
$iterator = m::mock('\\Iterator');
$iterator->shouldReceive('rewind');
$iterator->shouldReceive('valid')->andReturn(true)->once();
$iterator->shouldReceive('current')->andReturn(['foo' => 'foobar']);
$iterator->shouldReceive('next');
$iterator->shouldReceive('valid')->andReturn(false)->once();
$reader = $this->getMockReader();
$reader->shouldReceive('getIterator')->andReturn($iterator);
$converter = $this->getMockConverter();
$converter->shouldReceive('convert')->with(['foo' => 'foobar'])->once()->andReturn(['foo' => 'FOOBAR']);
$filter = $this->getMockFilter();
$filter->shouldReceive('filter')->with('foobar')->once()->andReturn(true);
$this->workflow->addConverter(['converter' => $converter, 'filter' => $filter, 'filterField' => 'foo']);
$result = $this->workflow->process($reader);
$this->assertEquals(1, $result->getReadCount());
}