diff --git a/src/Rules/Doctrine/NoDocumentMockingRule.php b/src/Rules/Doctrine/NoDocumentMockingRule.php index 48911d1e..fa92dea0 100644 --- a/src/Rules/Doctrine/NoDocumentMockingRule.php +++ b/src/Rules/Doctrine/NoDocumentMockingRule.php @@ -12,6 +12,7 @@ use PHPStan\Rules\Rule; use PHPStan\Rules\RuleErrorBuilder; use PHPStan\Type\Constant\ConstantStringType; +use Symplify\PHPStanRules\Enum\DoctrineClass; use Symplify\PHPStanRules\Helper\NamingHelper; /** @@ -85,6 +86,14 @@ private function shouldSkipDocumentClass(ConstantStringType $constantStringType) if ($classReflection->isInterface()) { return true; } + + if ($classReflection->isSubclassOf(DoctrineClass::ENTITY_REPOSITORY)) { + return true; + } + + if ($classReflection->isSubclassOf(DoctrineClass::DOCUMENT_REPOSITORY)) { + return true; + } } return false; diff --git a/tests/Rules/Doctrine/NoDocumentMockingRule/Fixture/SkipRepositoryMocking.php b/tests/Rules/Doctrine/NoDocumentMockingRule/Fixture/SkipRepositoryMocking.php new file mode 100644 index 00000000..e8eee3ee --- /dev/null +++ b/tests/Rules/Doctrine/NoDocumentMockingRule/Fixture/SkipRepositoryMocking.php @@ -0,0 +1,16 @@ +createMock(SomeEntityRepository::class); + } +} diff --git a/tests/Rules/Doctrine/NoDocumentMockingRule/NoDocumentMockingRuleTest.php b/tests/Rules/Doctrine/NoDocumentMockingRule/NoDocumentMockingRuleTest.php index 3056d503..6bea3735 100644 --- a/tests/Rules/Doctrine/NoDocumentMockingRule/NoDocumentMockingRuleTest.php +++ b/tests/Rules/Doctrine/NoDocumentMockingRule/NoDocumentMockingRuleTest.php @@ -33,6 +33,8 @@ public static function provideData(): Iterator ]]]; yield [__DIR__ . '/Fixture/SomeAbstractEntityMocking.php', []]; + + yield [__DIR__ . '/Fixture/SkipRepositoryMocking.php', []]; } /** diff --git a/tests/Rules/Doctrine/NoDocumentMockingRule/Source/Entity/SomeEntityRepository.php b/tests/Rules/Doctrine/NoDocumentMockingRule/Source/Entity/SomeEntityRepository.php new file mode 100644 index 00000000..4c0ac491 --- /dev/null +++ b/tests/Rules/Doctrine/NoDocumentMockingRule/Source/Entity/SomeEntityRepository.php @@ -0,0 +1,14 @@ + + */ +final class SomeEntityRepository extends EntityRepository +{ +}