diff --git a/src/Scanner/MethodScanner.php b/src/Scanner/MethodScanner.php index 05c67412..762812b9 100644 --- a/src/Scanner/MethodScanner.php +++ b/src/Scanner/MethodScanner.php @@ -279,7 +279,7 @@ public function setName($name) * * @param int $visibility T_PUBLIC | T_PRIVATE | T_PROTECTED * @return self - * @throws \Zend\Code\Exception + * @throws \Zend\Code\Exception\InvalidArgumentException */ public function setVisibility($visibility) { @@ -303,7 +303,7 @@ public function setVisibility($visibility) break; default: - throw new Exception('Invalid visibility argument passed to setVisibility.'); + throw new Exception\InvalidArgumentException('Invalid visibility argument passed to setVisibility.'); } return $this; diff --git a/test/Scanner/MethodScannerTest.php b/test/Scanner/MethodScannerTest.php index 9facabcf..717a0f69 100644 --- a/test/Scanner/MethodScannerTest.php +++ b/test/Scanner/MethodScannerTest.php @@ -10,7 +10,9 @@ namespace ZendTest\Code\Scanner; use PHPUnit\Framework\TestCase; +use Zend\Code\Exception\InvalidArgumentException; use Zend\Code\Scanner\FileScanner; +use Zend\Code\Scanner\MethodScanner; use Zend\Code\Scanner\ParameterScanner; use ZendTest\Code\TestAsset\AbstractClass; use ZendTest\Code\TestAsset\BarClass; @@ -110,4 +112,13 @@ public function testMethodScannerWorksWithSingleAbstractFunction() self::assertTrue($method->isAbstract()); } + + public function testMethodScannerThrowsExceptionWhenSettingInvalidVisibility() + { + $this->expectException(InvalidArgumentException::class); + $this->expectExceptionMessage('Invalid visibility argument passed to setVisibility.'); + + $methodScanner = new MethodScanner([]); + $methodScanner->setVisibility(-1); + } }