mirror of
https://github.com/rectorphp/rector.git
synced 2025-04-22 00:12:29 +02:00
[NodeTypeResolver] split tests to 2 classes
This commit is contained in:
parent
d013fe2534
commit
922b1f855c
@ -1,15 +1,14 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace Rector\NodeTypeResolver\Tests\NodeVisitor;
|
||||
namespace Rector\NodeTypeResolver\Tests\NodeVisitor\ClassLikeTypeResolver;
|
||||
|
||||
use Nette\Utils\Html;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use Rector\Contract\Parser\ParserInterface;
|
||||
use Rector\NodeTraverser\StandaloneTraverseNodeTraverser;
|
||||
use Rector\Tests\AbstractContainerAwareTestCase;
|
||||
|
||||
final class ClassLikeTypeResolverTest extends AbstractContainerAwareTestCase
|
||||
final class PropertyTest extends AbstractContainerAwareTestCase
|
||||
{
|
||||
/**
|
||||
* @var ParserInterface
|
||||
@ -27,33 +26,24 @@ final class ClassLikeTypeResolverTest extends AbstractContainerAwareTestCase
|
||||
$this->standaloneTraverseNodeTraverser = $this->container->get(StandaloneTraverseNodeTraverser::class);
|
||||
}
|
||||
|
||||
public function testVariable(): void
|
||||
{
|
||||
$nodes = $this->parser->parseFile(__DIR__ . '/ClassLikeTypeResolverSource/VariableType.php');
|
||||
|
||||
$nodes = $this->standaloneTraverseNodeTraverser->traverse($nodes);
|
||||
|
||||
/** @var Variable $htmlVariableNode */
|
||||
$htmlVariableNode = $nodes[1]->stmts[1]->stmts[0]->stmts[0]->expr->var;
|
||||
$this->assertSame(Html::class, $htmlVariableNode->getAttribute('type'));
|
||||
|
||||
/** @var Variable $assignedVariableNode */
|
||||
$assignedVariableNode = $nodes[1]->stmts[1]->stmts[0]->stmts[1]->expr->var;
|
||||
$this->assertSame(Html::class, $assignedVariableNode->getAttribute('type'));
|
||||
}
|
||||
|
||||
public function testProperty(): void
|
||||
public function test(): void
|
||||
{
|
||||
$nodes = $this->parser->parseFile(__DIR__ . '/ClassLikeTypeResolverSource/PropertyType.php');
|
||||
|
||||
$nodes = $this->standaloneTraverseNodeTraverser->traverse($nodes);
|
||||
|
||||
// $this->property;
|
||||
/** @var PropertyFetch $propertyFetchNode */
|
||||
$propertyFetchNode = $nodes[1]->stmts[1]->stmts[2]->stmts[0]->expr;
|
||||
$this->assertSame(Html::class, $propertyFetchNode->getAttribute('type'));
|
||||
|
||||
// @todo test asl well
|
||||
//$propertyNode = $nodes[1]->stmts[1]->stmts[0];
|
||||
// /** @var Type */ $property;
|
||||
$propertyNode = $nodes[1]->stmts[1]->stmts[0];
|
||||
$this->assertSame(Html::class, $propertyNode->getAttribute('type'));
|
||||
|
||||
dump($propertyNode);
|
||||
die;
|
||||
|
||||
// $constructorVariableNode = $nodes[1]->stmts[1]->stmts[1]->params[0]->var;
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace Rector\NodeTypeResolver\Tests\NodeVisitor\ClassLikeTypeResolver;
|
||||
|
||||
use Nette\Utils\Html;
|
||||
use PhpParser\Node\Expr\Variable;
|
||||
use Rector\Contract\Parser\ParserInterface;
|
||||
use Rector\NodeTraverser\StandaloneTraverseNodeTraverser;
|
||||
use Rector\Tests\AbstractContainerAwareTestCase;
|
||||
|
||||
final class VariableTest extends AbstractContainerAwareTestCase
|
||||
{
|
||||
/**
|
||||
* @var ParserInterface
|
||||
*/
|
||||
private $parser;
|
||||
|
||||
/**
|
||||
* @var StandaloneTraverseNodeTraverser
|
||||
*/
|
||||
private $standaloneTraverseNodeTraverser;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->parser = $this->container->get(ParserInterface::class);
|
||||
$this->standaloneTraverseNodeTraverser = $this->container->get(StandaloneTraverseNodeTraverser::class);
|
||||
|
||||
$nodes = $this->parser->parseFile(__DIR__ . '/ClassLikeTypeResolverSource/VariableType.php');
|
||||
$this->nodes = $this->standaloneTraverseNodeTraverser->traverse($nodes);
|
||||
}
|
||||
|
||||
/**
|
||||
* $variable
|
||||
*/
|
||||
public function testVariable(): void
|
||||
{
|
||||
/** @var Variable $htmlVariableNode */
|
||||
$htmlVariableNode = $this->nodes[1]->stmts[1]->stmts[0]->stmts[0]->expr->var;
|
||||
$this->assertSame(Html::class, $htmlVariableNode->getAttribute('type'));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* $newVariable = $variable;
|
||||
*/
|
||||
public function testReassignedVariable(): void
|
||||
{
|
||||
/** @var Variable $assignedVariableNode */
|
||||
$assignedVariableNode = $this->nodes[1]->stmts[1]->stmts[0]->stmts[1]->expr->var;
|
||||
$this->assertSame(Html::class, $assignedVariableNode->getAttribute('type'));
|
||||
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user