From 4cc5c6cc38e56bce7ea47c4091814e516d172dc3 Mon Sep 17 00:00:00 2001 From: Ondrej Mirtes Date: Thu, 2 Mar 2023 11:22:40 +0100 Subject: [PATCH] MockMethodCallRule - do not report for empty `$mockClasses` --- src/Rules/PHPUnit/MockMethodCallRule.php | 7 ++++++- tests/Rules/PHPUnit/data/mock-method-call.php | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Rules/PHPUnit/MockMethodCallRule.php b/src/Rules/PHPUnit/MockMethodCallRule.php index cac776c..da8a95d 100644 --- a/src/Rules/PHPUnit/MockMethodCallRule.php +++ b/src/Rules/PHPUnit/MockMethodCallRule.php @@ -76,10 +76,15 @@ public function processNode(Node $node, Scope $scope): array continue; } + $classNames = $mockedClassObject->getObjectClassNames(); + if (count($classNames) === 0) { + continue; + } + $errors[] = sprintf( 'Trying to mock an undefined method %s() on class %s.', $method, - implode('|', $mockedClassObject->getObjectClassNames()) + implode('|', $classNames) ); } diff --git a/tests/Rules/PHPUnit/data/mock-method-call.php b/tests/Rules/PHPUnit/data/mock-method-call.php index 478fa44..a4f5aaa 100644 --- a/tests/Rules/PHPUnit/data/mock-method-call.php +++ b/tests/Rules/PHPUnit/data/mock-method-call.php @@ -56,3 +56,18 @@ public function method(string $string) return $string; } }; + +final class FinalFoo +{ + +} + +class FinalFooTest extends \PHPUnit\Framework\TestCase +{ + + public function testMockFinalClass() + { + $this->createMock(FinalFoo::class)->method('doFoo'); + } + +}