From 575a4089636cd668023f56781227339de8e4f1ee Mon Sep 17 00:00:00 2001 From: TomasVotruba Date: Wed, 27 Dec 2017 15:48:15 +0100 Subject: [PATCH] use dataProvider --- .../VariableTypeResolverTest.php | 64 +++++++------------ 1 file changed, 23 insertions(+), 41 deletions(-) diff --git a/packages/NodeTypeResolver/tests/PerNodeTypeResolver/VariableTypeResolver/VariableTypeResolverTest.php b/packages/NodeTypeResolver/tests/PerNodeTypeResolver/VariableTypeResolver/VariableTypeResolverTest.php index ce05f6daf1b..dc2b8630bd6 100644 --- a/packages/NodeTypeResolver/tests/PerNodeTypeResolver/VariableTypeResolver/VariableTypeResolverTest.php +++ b/packages/NodeTypeResolver/tests/PerNodeTypeResolver/VariableTypeResolver/VariableTypeResolverTest.php @@ -10,51 +10,33 @@ use Rector\NodeTypeResolver\Tests\PerNodeTypeResolver\AbstractNodeTypeResolverTe */ final class VariableTypeResolverTest extends AbstractNodeTypeResolverTest { - public function testThis(): void + /** + * @dataProvider provideTypeForNodesAndFilesData() + * @param string[] + */ + public function testCallbackArgumentTypehint(string $file, int $position, array $expectedTypes): void { - $variableNodes = $this->getNodesForFileOfType(__DIR__ . '/Source/This.php.inc', Variable::class); + $variableNodes = $this->getNodesForFileOfType($file, Variable::class); - $this->assertSame( - ['SomeNamespace\SomeClass', 'SomeNamespace\AnotherClass'], - $this->nodeTypeResolver->resolve($variableNodes[0]) - ); + $this->assertSame($expectedTypes, $this->nodeTypeResolver->resolve($variableNodes[$position])); } - public function testNew(): void + /** + * @return mixed[][] + */ + public function provideTypeForNodesAndFilesData(): array { - $variableNodes = $this->getNodesForFileOfType(__DIR__ . '/Source/SomeClass.php.inc', Variable::class); - - $this->assertSame( - ['SomeNamespace\AnotherType'], - $this->nodeTypeResolver->resolve($variableNodes[0]) - ); - $this->assertSame( - ['SomeNamespace\AnotherType'], - $this->nodeTypeResolver->resolve($variableNodes[2]) - ); - } - - public function testAssign(): void - { - $variableNodes = $this->getNodesForFileOfType(__DIR__ . '/Source/SomeClass.php.inc', Variable::class); - - $this->assertSame( - ['SomeNamespace\AnotherType'], - $this->nodeTypeResolver->resolve($variableNodes[1]) - ); - } - - public function testCallbackArgumentTypehint(): void - { - $variableNodes = $this->getNodesForFileOfType(__DIR__ . '/Source/ArgumentTypehint.php.inc', Variable::class); - - $this->assertSame( - ['SomeNamespace\UseUse'], - $this->nodeTypeResolver->resolve($variableNodes[0]) - ); - $this->assertSame( - ['SomeNamespace\UseUse'], - $this->nodeTypeResolver->resolve($variableNodes[1]) - ); + return [ + # this + [__DIR__ . '/Source/This.php.inc', 0, ['SomeNamespace\SomeClass', 'SomeNamespace\AnotherClass']], + # new + [__DIR__ . '/Source/SomeClass.php.inc', 0, ['SomeNamespace\AnotherType']], + [__DIR__ . '/Source/SomeClass.php.inc', 2, ['SomeNamespace\AnotherType']], + # assignment + [__DIR__ . '/Source/SomeClass.php.inc', 1, ['SomeNamespace\AnotherType']], + # callback arguments + [__DIR__ . '/Source/ArgumentTypehint.php.inc', 0, ['SomeNamespace\UseUse']], + [__DIR__ . '/Source/ArgumentTypehint.php.inc', 1, ['SomeNamespace\UseUse']], + ]; } }