diff --git a/lib/internal/Magento/Framework/Reflection/NameFinder.php b/lib/internal/Magento/Framework/Reflection/NameFinder.php index 97f4b2f81c1289f118f2cde3febd2d7027d93f87..5cd4ab744bb1b79a5dde540395705993f755b4f8 100644 --- a/lib/internal/Magento/Framework/Reflection/NameFinder.php +++ b/lib/internal/Magento/Framework/Reflection/NameFinder.php @@ -99,8 +99,9 @@ class NameFinder } else { throw new \LogicException( sprintf( - 'Property "%s" does not have corresponding setter in class "%s".', + 'Property "%s" does not have accessor method "%s" in class "%s".', $camelCaseProperty, + $accessorName, $class->getName() ) ); diff --git a/lib/internal/Magento/Framework/Reflection/Test/Unit/NameFinderTest.php b/lib/internal/Magento/Framework/Reflection/Test/Unit/NameFinderTest.php index 9ddc6d6aa0c9a9cdd9e8ae5c813d4a37debc7aab..ccf81305df6eb42f6cbbfe8bd863a28a415b6bab 100644 --- a/lib/internal/Magento/Framework/Reflection/Test/Unit/NameFinderTest.php +++ b/lib/internal/Magento/Framework/Reflection/Test/Unit/NameFinderTest.php @@ -37,7 +37,9 @@ class NameFinderTest extends \PHPUnit\Framework\TestCase /** * @expectedException \Exception - * @expectedExceptionMessageRegExp /Property "InvalidAttribute" does not have corresponding setter in class (.*?)/ + * @codingStandardsIgnoreStart + * @expectedExceptionMessage Property "InvalidAttribute" does not have accessor method "setInvalidAttribute" in class "Magento\Framework\Reflection\Test\Unit\DataObject" + * @codingStandardsIgnoreEnd */ public function testGetSetterMethodNameInvalidAttribute() { @@ -47,11 +49,31 @@ class NameFinderTest extends \PHPUnit\Framework\TestCase /** * @expectedException \Exception - * @expectedExceptionMessageRegExp /Property "ActivE" does not have corresponding setter in class (.*?)/ + * @codingStandardsIgnoreStart + * @expectedExceptionMessage Property "ActivE" does not have accessor method "setActivE" in class "Magento\Framework\Reflection\Test\Unit\DataObject" + * @codingStandardsIgnoreEnd */ public function testGetSetterMethodNameWrongCamelCasedAttribute() { $class = new ClassReflection("\\Magento\\Framework\\Reflection\\Test\\Unit\\DataObject"); $this->nameFinder->getSetterMethodName($class, 'ActivE'); } + + /** + * @expectedException \LogicException + * @expectedExceptionMessage Property "Property" does not have accessor method "getProperty" in class "className". + */ + public function testFindAccessorMethodName() + { + $reflectionClass = $this->createMock(\Zend\Code\Reflection\ClassReflection::class); + $reflectionClass->expects($this->atLeastOnce())->method('hasMethod')->willReturn(false); + $reflectionClass->expects($this->atLeastOnce())->method('getName')->willReturn('className'); + + $this->nameFinder->findAccessorMethodName( + $reflectionClass, + 'Property', + 'getProperty', + 'isProperty' + ); + } }