Skip to content

Commit 3d744fc

Browse files
committed
update RectorNodeTraverser test
1 parent e811984 commit 3d744fc

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

src/PhpParser/NodeTraverser/RectorNodeTraverser.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,11 @@ public function refreshPhpRectors(array $rectors): void
6464
*/
6565
public function getVisitorsForNode(Node $node): array
6666
{
67-
Assert::true($this->areNodeVisitorsPrepared);
67+
// only in tests
68+
if ($this->areNodeVisitorsPrepared === false) {
69+
$this->prepareNodeVisitors();
70+
}
71+
6872
return $this->visitorsPerNodeClass[$node::class] ?? [];
6973
}
7074

@@ -81,6 +85,7 @@ private function prepareNodeVisitors(): void
8185

8286
// filer out by version
8387
$this->visitors = $this->phpVersionedFilter->filter($this->rectors);
88+
8489
// filter by configuration
8590
$this->visitors = $this->configurationRuleFilter->filter($this->visitors);
8691

tests/PhpParser/NodeTraverser/RectorNodeTraverserTest.php

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ public function testGetVisitorsForNodeWhenNoVisitorsAvailable(): void
4848
public function testGetVisitorsForNodeWhenNoVisitorsMatch(): void
4949
{
5050
$class = new Class_('test');
51-
$this->rectorNodeTraverser->addVisitor($this->ruleUsingFunctionRector);
51+
$this->rectorNodeTraverser->refreshPhpRectors([
52+
$this->ruleUsingFunctionRector,
53+
]);
5254

5355
$visitors = $this->rectorNodeTraverser->getVisitorsForNode($class);
5456

@@ -58,8 +60,11 @@ public function testGetVisitorsForNodeWhenNoVisitorsMatch(): void
5860
public function testGetVisitorsForNodeWhenSomeVisitorsMatch(): void
5961
{
6062
$class = new Class_('test');
61-
$this->rectorNodeTraverser->addVisitor($this->ruleUsingFunctionRector);
62-
$this->rectorNodeTraverser->addVisitor($this->ruleUsingClassRector);
63+
64+
$this->rectorNodeTraverser->refreshPhpRectors([
65+
new RuleUsingFunctionRector(),
66+
new RuleUsingClassRector()
67+
]);
6368

6469
$visitors = $this->rectorNodeTraverser->getVisitorsForNode($class);
6570

@@ -69,19 +74,23 @@ public function testGetVisitorsForNodeWhenSomeVisitorsMatch(): void
6974
public function testGetVisitorsForNodeWhenAllVisitorsMatch(): void
7075
{
7176
$class = new Class_('test');
72-
$this->rectorNodeTraverser->addVisitor($this->ruleUsingClassRector);
73-
$this->rectorNodeTraverser->addVisitor($this->ruleUsingClassLikeRector);
77+
$this->rectorNodeTraverser->refreshPhpRectors([
78+
$this->ruleUsingClassRector,
79+
$this->ruleUsingClassLikeRector
80+
]);
7481

75-
$visitors = $this->rectorNodeTraverser->getVisitorsForNode($class);
82+
$visitorsForNode = $this->rectorNodeTraverser->getVisitorsForNode($class);
7683

77-
$this->assertEquals([$this->ruleUsingClassRector, $this->ruleUsingClassLikeRector], $visitors);
84+
$this->assertEquals([$this->ruleUsingClassRector, $this->ruleUsingClassLikeRector], $visitorsForNode);
7885
}
7986

8087
public function testGetVisitorsForNodeUsesCachedValue(): void
8188
{
8289
$class = new Class_('test');
83-
$this->rectorNodeTraverser->addVisitor($this->ruleUsingClassRector);
84-
$this->rectorNodeTraverser->addVisitor($this->ruleUsingClassLikeRector);
90+
$this->rectorNodeTraverser->refreshPhpRectors([
91+
$this->ruleUsingClassRector,
92+
$this->ruleUsingClassLikeRector,
93+
]);
8594

8695
$visitors = $this->rectorNodeTraverser->getVisitorsForNode($class);
8796

0 commit comments

Comments
 (0)