File tree Expand file tree Collapse file tree 3 files changed +42
-1
lines changed
rules-tests/CodeQuality/Rector/Expression/ConfiguredMockEntityToSetterObjectRector
rules/CodeQuality/Rector/Expression Expand file tree Collapse file tree 3 files changed +42
-1
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \PHPUnit \Tests \CodeQuality \Rector \Expression \ConfiguredMockEntityToSetterObjectRector \Fixture ;
4+
5+ use Rector \PHPUnit \Tests \CodeQuality \Rector \Expression \ConfiguredMockEntityToSetterObjectRector \Source \AbstractEntityToBeConfigured ;
6+
7+ final class SkipAbstractEntity extends \PHPUnit \Framework \TestCase
8+ {
9+ public function test ()
10+ {
11+ $ mockObject = $ this ->createConfiguredMock (AbstractEntityToBeConfigured::class, [
12+ 'getName ' => 'John ' ,
13+ ]);
14+ }
15+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \PHPUnit \Tests \CodeQuality \Rector \Expression \ConfiguredMockEntityToSetterObjectRector \Source ;
4+
5+ use Doctrine \ORM \Mapping as ORM ;
6+
7+ #[ORM \Entity()]
8+ abstract class AbstractEntityToBeConfigured
9+ {
10+ private string $ name = '' ;
11+
12+ public function setName ($ name )
13+ {
14+ $ this ->name = $ name ;
15+ }
16+
17+ public function getName (): string
18+ {
19+ return $ this ->name ;
20+ }
21+ }
Original file line number Diff line number Diff line change 44
55namespace Rector \PHPUnit \CodeQuality \Rector \Expression ;
66
7- use PhpParser \Node \Stmt \Class_ ;
87use PhpParser \Node ;
98use PhpParser \Node \Arg ;
109use PhpParser \Node \Expr ;
1312use PhpParser \Node \Expr \MethodCall ;
1413use PhpParser \Node \Expr \New_ ;
1514use PhpParser \Node \Name \FullyQualified ;
15+ use PhpParser \Node \Stmt \Class_ ;
1616use PhpParser \Node \Stmt \Expression ;
1717use PHPStan \Reflection \ReflectionProvider ;
1818use Rector \Doctrine \NodeAnalyzer \DoctrineEntityDetector ;
@@ -175,6 +175,11 @@ private function matchDoctrineClassName(Expr $expr): string|null
175175 return null ;
176176 }
177177
178+ $ classReflection = $ this ->reflectionProvider ->getClass ($ mockedClassValue );
179+ if ($ classReflection ->isInterface () || $ classReflection ->isAbstract ()) {
180+ return null ;
181+ }
182+
178183 $ mockedClass = $ this ->astResolver ->resolveClassFromName ($ mockedClassValue );
179184 if (! $ mockedClass instanceof Class_) {
180185 return null ;
You can’t perform that action at this time.
0 commit comments