From ce3dcd0251311ff0cc9d25a23ce8d28d64039f7e Mon Sep 17 00:00:00 2001 From: TomasVotruba Date: Wed, 27 Dec 2017 16:04:33 +0100 Subject: [PATCH] use dataProvider --- .../AssignTypeResolverTest.php | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/packages/NodeTypeResolver/tests/PerNodeTypeResolver/AssignTypeResolver/AssignTypeResolverTest.php b/packages/NodeTypeResolver/tests/PerNodeTypeResolver/AssignTypeResolver/AssignTypeResolverTest.php index abca238b56f..4fa1f2403f3 100644 --- a/packages/NodeTypeResolver/tests/PerNodeTypeResolver/AssignTypeResolver/AssignTypeResolverTest.php +++ b/packages/NodeTypeResolver/tests/PerNodeTypeResolver/AssignTypeResolver/AssignTypeResolverTest.php @@ -10,44 +10,46 @@ use Rector\NodeTypeResolver\Tests\PerNodeTypeResolver\AbstractNodeTypeResolverTe */ final class AssignTypeResolverTest extends AbstractNodeTypeResolverTest { - public function testNew(): void + /** + * @dataProvider provideTypeForNodesAndFilesData() + * @param string[] + */ + public function test(string $file, int $nodePosition, array $expectedTypes): void { - $variableNodes = $this->getNodesForFileOfType(__DIR__ . '/Source/MethodCall.php.inc', Variable::class); + $variableNodes = $this->getNodesForFileOfType($file, Variable::class); - $this->assertSame( - ['Nette\Config\Configurator', 'Nette\Object'], - $this->nodeTypeResolver->resolve($variableNodes[0]) - ); - - $this->assertSame( - ['Nette\Config\Configurator', 'Nette\Object'], - $this->nodeTypeResolver->resolve($variableNodes[2]) - ); + $this->assertSame($expectedTypes, $this->nodeTypeResolver->resolve($variableNodes[$nodePosition])); } - public function testNewTwo(): void + /** + * @return mixed[][] + */ + public function provideTypeForNodesAndFilesData(): array { - $variableNodes = $this->getNodesForFileOfType(__DIR__ . '/Source/New.php.inc', Variable::class); + return [ + # assign of "new " + [__DIR__ . '/Source/MethodCall.php.inc', 0, ['Nette\Config\Configurator', 'Nette\Object']], + [__DIR__ . '/Source/MethodCall.php.inc', 2, ['Nette\Config\Configurator', 'Nette\Object']], + [__DIR__ . '/Source/New.php.inc', 0, [ + 'Symfony\Component\DependencyInjection\ContainerBuilder', + 'Symfony\Component\DependencyInjection\ResettableContainerInterface', + 'Symfony\Component\DependencyInjection\ContainerInterface', + 'Psr\Container\ContainerInterface', + 'Symfony\Component\DependencyInjection\TaggedContainerInterface', + 'Symfony\Component\DependencyInjection\Container', + ]], + [__DIR__ . '/Source/New.php.inc', 1, [ + 'Symfony\Component\DependencyInjection\ContainerBuilder', + 'Symfony\Component\DependencyInjection\ResettableContainerInterface', + 'Symfony\Component\DependencyInjection\ContainerInterface', + 'Psr\Container\ContainerInterface', + 'Symfony\Component\DependencyInjection\TaggedContainerInterface', + 'Symfony\Component\DependencyInjection\Container', + ]], + # method call + [__DIR__ . '/Source/MethodCall.php.inc', 1, ['Nette\DI\Container']], - $this->assertSame( - 'Symfony\Component\DependencyInjection\ContainerBuilder', - $this->nodeTypeResolver->resolve($variableNodes[0])[0] - ); - - $this->assertSame( - 'Symfony\Component\DependencyInjection\ContainerBuilder', - $this->nodeTypeResolver->resolve($variableNodes[1])[0] - ); - } - - public function testMethodCall(): void - { - $variableNodes = $this->getNodesForFileOfType(__DIR__ . '/Source/MethodCall.php.inc', Variable::class); - - $this->assertSame( - ['Nette\DI\Container'], - $this->nodeTypeResolver->resolve($variableNodes[1]) - ); + ]; } public function testMethodCallOnClassConstant(): void