From a7553b7593075da3ae00e5b1300b7f4e57c48756 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Fri, 19 Jul 2024 14:32:46 +0100 Subject: [PATCH] feat(to-have-all*): improvements --- src/Expectation.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Expectation.php b/src/Expectation.php index 21ed25e8..751dcbe5 100644 --- a/src/Expectation.php +++ b/src/Expectation.php @@ -472,7 +472,9 @@ final class Expectation fn (ObjectDescription $object): bool => isset($object->reflectionClass) === false || array_filter( $object->reflectionClass->getMethods(), - fn (ReflectionMethod $method): bool => $method->class === $object->name + fn (ReflectionMethod $method): bool => + (enum_exists($object->name) === false || in_array($method->name, ['from', 'tryFrom', 'cases'], true) === false) + && realpath($method->getFileName() ?: '/') === realpath($object->path) && $method->getDocComment() === false, ) === [], 'to have all methods documented', @@ -490,7 +492,9 @@ final class Expectation fn (ObjectDescription $object): bool => isset($object->reflectionClass) === false || array_filter( $object->reflectionClass->getProperties(), - fn (ReflectionProperty $property): bool => $property->class === $object->name + fn (ReflectionProperty $property): bool => + (enum_exists($object->name) === false || in_array($property->name, ['value', 'name'], true) === false) + && realpath($property->getDeclaringClass()->getFileName() ?: '/') === realpath($object->path) && $property->isPromoted() === false && $property->getDocComment() === false, ) === [],