public function let(RowBuilderFactory $rowBuilderFactory, ColumnIndexTransformer $columnIndexTransformer, ValueTransformer $valueTransformer, RowBuilder $rowBuilder, Archive $archive)
{
$startWith = function ($startString) {
return function ($string) use($startString) {
return $startString === substr($string, 0, strlen($startString));
};
};
$columnIndexTransformer->transform(Argument::that($startWith('A')))->willReturn(0);
$columnIndexTransformer->transform(Argument::that($startWith('B')))->willReturn(1);
$columnIndexTransformer->transform(Argument::that($startWith('C')))->willReturn(2);
$columnIndexTransformer->transform(Argument::that($startWith('D')))->willReturn(3);
$row = null;
$rowBuilderFactory->create()->will(function () use($rowBuilder, &$row) {
$row = [];
return $rowBuilder;
});
$rowBuilder->addValue(Argument::type('int'), Argument::type('array'))->will(function ($args) use(&$row) {
$row[$args[0]] = $args[1];
});
$rowBuilder->getData()->will(function () use(&$row) {
return $row;
});
$this->beConstructedWith($rowBuilderFactory, $columnIndexTransformer, $valueTransformer, __DIR__ . '/fixtures/sheet.xml', [], $archive);
$valueTransformer->transform(Argument::type('string'), Argument::type('string'), Argument::type('string'))->will(function ($args) {
return $args;
});
}