Skip to content

Commit 067679b

Browse files
committed
fix: add TestsNodeAnalyzer::isDirectlyExtendsTestCase()
1 parent a9324ed commit 067679b

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

rules/CodeQuality/Rector/ClassMethod/NoSetupWithParentCallOverrideRector.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public function getNodeTypes(): array
7878
*/
7979
public function refactor(Node $node): ?Node
8080
{
81-
if (! $this->testsNodeAnalyzer->isInTestClass($node)) {
81+
if (! $this->testsNodeAnalyzer->isDirectlyExtendsTestCase($node)) {
8282
return null;
8383
}
8484

src/NodeAnalyzer/TestsNodeAnalyzer.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,27 @@ public function isInTestClass(Node $node): bool
4343
return false;
4444
}
4545

46+
public function isDirectlyExtendsTestCase(Node $node): bool
47+
{
48+
$classReflection = $this->reflectionResolver->resolveClassReflection($node);
49+
if (! $classReflection instanceof ClassReflection) {
50+
return false;
51+
}
52+
53+
$parents = $classReflection->getParents();
54+
if ($parents === []) {
55+
return false;
56+
}
57+
58+
foreach (PHPUnitClassName::TEST_CLASSES as $testCaseObjectClass) {
59+
if ($parents[0]->getName() === $testCaseObjectClass) {
60+
return true;
61+
}
62+
}
63+
64+
return false;
65+
}
66+
4667
public function isTestClassMethod(ClassMethod $classMethod): bool
4768
{
4869
if (! $classMethod->isPublic()) {

0 commit comments

Comments
 (0)