Skip to content
Snippets Groups Projects
Commit 1f079b85 authored by Vadim Justus's avatar Vadim Justus
Browse files

#22 Reproduce issue in integration test

parent 18d91072
No related branches found
No related tags found
1 merge request!23Reproducing issue #22 with tests
......@@ -39,9 +39,11 @@ class ParserChain implements ConfigParserInterface
public function execute(DOMElement $element): array
{
$data = [];
foreach ($this->parser as $parser) {
$data = array_merge($data, $parser->execute($element));
$data[] = $parser->execute($element);
}
return $data;
return array_merge(...$data);
}
}
<?php
declare(strict_types=1);
namespace Firegento\ContentProvisioning\Test\Integration\Model\Config\Parser\Query;
use Firegento\ContentProvisioning\Api\MediaFilesParserInterface;
use Firegento\ContentProvisioning\Model\Config\Parser\Query\FetchMediaFilesChain;
use PHPUnit\Framework\MockObject\MockObject;
class FetchMediaFilesChainTest extends \PHPUnit\Framework\TestCase
{
/**
* @var FetchMediaFilesChain
*/
private $chain;
/**
* @var MediaFilesParserInterface|MockObject
*/
private $parser1;
/**
* @var MediaFilesParserInterface|MockObject
*/
private $parser2;
protected function setUp()
{
$this->parser1 = self::getMockBuilder(MediaFilesParserInterface::class)
->disableOriginalConstructor()
->getMock();
$this->parser2 = self::getMockBuilder(MediaFilesParserInterface::class)
->disableOriginalConstructor()
->getMock();
$this->chain = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
->create(FetchMediaFilesChain::class, ['parsers' => [
$this->parser1,
$this->parser2,
]]);
}
public function testMergingData()
{
$this->parser1->method('execute')->willReturn([
'path/to/file1.png',
'path/to/file2.png',
'file3.png',
]);
$this->parser2->method('execute')->willReturn([
'file3.png',
'some/other/path.jpg',
]);
$result = $this->chain->execute('');
$this->assertSame([
'path/to/file1.png',
'path/to/file2.png',
'file3.png',
'file3.png',
'some/other/path.jpg',
], $result);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment