2019-10-13 07:59:52 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
2019-07-16 11:07:26 +02:00
|
|
|
|
2020-02-06 22:48:18 +01:00
|
|
|
namespace Rector\Core\Tests\PhpParser\Node;
|
2019-07-16 11:07:26 +02:00
|
|
|
|
|
|
|
use Iterator;
|
|
|
|
use PhpParser\Node\Expr\Array_;
|
|
|
|
use PhpParser\Node\Expr\ArrayItem;
|
|
|
|
use PhpParser\Node\Scalar\LNumber;
|
|
|
|
use PhpParser\Node\Scalar\String_;
|
2020-02-06 22:48:18 +01:00
|
|
|
use Rector\Core\HttpKernel\RectorKernel;
|
|
|
|
use Rector\Core\PhpParser\Node\NodeFactory;
|
2019-07-16 11:07:26 +02:00
|
|
|
use Symplify\PackageBuilder\Tests\AbstractKernelTestCase;
|
|
|
|
|
|
|
|
final class NodeFactoryTest extends AbstractKernelTestCase
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var NodeFactory
|
|
|
|
*/
|
|
|
|
private $nodeFactory;
|
|
|
|
|
|
|
|
protected function setUp(): void
|
|
|
|
{
|
|
|
|
$this->bootKernel(RectorKernel::class);
|
|
|
|
|
|
|
|
$this->nodeFactory = self::$container->get(NodeFactory::class);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param mixed[] $inputArray
|
|
|
|
* @dataProvider provideDataForArray()
|
|
|
|
*/
|
|
|
|
public function testCreateArray(array $inputArray, Array_ $expectedArrayNode): void
|
|
|
|
{
|
|
|
|
$arrayNode = $this->nodeFactory->createArray($inputArray);
|
|
|
|
|
|
|
|
$this->assertEquals($expectedArrayNode, $arrayNode);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function provideDataForArray(): Iterator
|
|
|
|
{
|
|
|
|
$array = new Array_();
|
|
|
|
$array->items[] = new ArrayItem(new LNumber(1));
|
|
|
|
|
|
|
|
yield [[1], $array];
|
|
|
|
|
|
|
|
$array = new Array_();
|
|
|
|
$array->items[] = new ArrayItem(new LNumber(1), new String_('a'));
|
|
|
|
|
|
|
|
yield [['a' => 1], $array];
|
|
|
|
}
|
|
|
|
}
|