ParentConnectingVisitorTest.php 801 B

1234567891011121314151617181920212223242526
  1. <?php declare(strict_types=1);
  2. namespace PhpParser\NodeVisitor;
  3. use PhpParser\Node\Stmt\ClassMethod;
  4. use PhpParser\NodeFinder;
  5. use PhpParser\NodeTraverser;
  6. use PhpParser\ParserFactory;
  7. final class ParentConnectingVisitorTest extends \PHPUnit\Framework\TestCase {
  8. public function testConnectsChildNodeToParentNode(): void {
  9. $ast = (new ParserFactory())->createForNewestSupportedVersion()->parse(
  10. '<?php class C { public function m() {} }'
  11. );
  12. $traverser = new NodeTraverser();
  13. $traverser->addVisitor(new ParentConnectingVisitor());
  14. $ast = $traverser->traverse($ast);
  15. $node = (new NodeFinder())->findFirstInstanceof($ast, ClassMethod::class);
  16. $this->assertSame('C', $node->getAttribute('parent')->name->toString());
  17. }
  18. }