mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-11 05:32:23 +00:00
45 lines
1.5 KiB
PHP
45 lines
1.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Rector\Tests\NodeTypeResolver\PerNodeTypeResolver\ClassAndInterfaceTypeResolver;
|
|
|
|
use Iterator;
|
|
use PhpParser\Node\Stmt\Interface_;
|
|
use PHPStan\Type\ObjectType;
|
|
use PHPStan\Type\TypeWithClassName;
|
|
use Rector\Tests\NodeTypeResolver\PerNodeTypeResolver\AbstractNodeTypeResolverTest;
|
|
use Rector\Tests\NodeTypeResolver\PerNodeTypeResolver\ClassAndInterfaceTypeResolver\Source\SomeInterfaceWithParentInterface;
|
|
|
|
/**
|
|
* @see \Rector\NodeTypeResolver\NodeTypeResolver\ClassAndInterfaceTypeResolver
|
|
*/
|
|
final class InterfaceTypeResolverTest extends AbstractNodeTypeResolverTest
|
|
{
|
|
/**
|
|
* @dataProvider dataProvider()
|
|
*/
|
|
public function test(string $file, int $nodePosition, TypeWithClassName $expectedTypeWithClassName): void
|
|
{
|
|
$variableNodes = $this->getNodesForFileOfType($file, Interface_::class);
|
|
|
|
$resolvedType = $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]);
|
|
$this->assertInstanceOf(TypeWithClassName::class, $resolvedType);
|
|
|
|
/** @var TypeWithClassName $resolvedType */
|
|
$this->assertEquals($expectedTypeWithClassName->getClassName(), $resolvedType->getClassName());
|
|
}
|
|
|
|
/**
|
|
* @return Iterator<int[]|string[]|ObjectType[]>
|
|
*/
|
|
public function dataProvider(): Iterator
|
|
{
|
|
yield [
|
|
__DIR__ . '/Source/SomeInterfaceWithParentInterface.php',
|
|
0,
|
|
new ObjectType(SomeInterfaceWithParentInterface::class),
|
|
];
|
|
}
|
|
}
|