From dd92c4784436758c28f1e6a45db548dbaf0a79c1 Mon Sep 17 00:00:00 2001 From: mxc-commons Date: Sun, 5 Nov 2017 03:50:06 +0100 Subject: [PATCH 1/5] Corrected the exception class used in MethodScanner::setVisibility --- src/Scanner/MethodScanner.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Scanner/MethodScanner.php b/src/Scanner/MethodScanner.php index 05c67412..e081ca23 100644 --- a/src/Scanner/MethodScanner.php +++ b/src/Scanner/MethodScanner.php @@ -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; From 9c685717d60270e9c48d870583b1acbbb25c8793 Mon Sep 17 00:00:00 2001 From: mxc-commons Date: Sun, 5 Nov 2017 17:58:53 +0100 Subject: [PATCH 2/5] - Removed obsolete strtolower in switch - Added test case for InvalidArgumentException - Added test case for switch --- src/Scanner/MethodScanner.php | 4 ++-- test/Scanner/MethodScannerTest.php | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/Scanner/MethodScanner.php b/src/Scanner/MethodScanner.php index e081ca23..8fa85183 100644 --- a/src/Scanner/MethodScanner.php +++ b/src/Scanner/MethodScanner.php @@ -279,11 +279,11 @@ 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) { - switch (strtolower($visibility)) { + switch ($visibility) { case T_PUBLIC: $this->isPublic = true; $this->isPrivate = false; diff --git a/test/Scanner/MethodScannerTest.php b/test/Scanner/MethodScannerTest.php index 9facabcf..b86d554d 100644 --- a/test/Scanner/MethodScannerTest.php +++ b/test/Scanner/MethodScannerTest.php @@ -12,6 +12,7 @@ use PHPUnit\Framework\TestCase; use Zend\Code\Scanner\FileScanner; use Zend\Code\Scanner\ParameterScanner; +use Zend\Code\Scanner\MethodScanner; use ZendTest\Code\TestAsset\AbstractClass; use ZendTest\Code\TestAsset\BarClass; use ZendTest\Code\TestAsset\FooClass; @@ -110,4 +111,27 @@ public function testMethodScannerWorksWithSingleAbstractFunction() self::assertTrue($method->isAbstract()); } + + /** + * @expectedException \Zend\Code\Exception\InvalidArgumentException + * @expectedExceptionMessage Invalid visibility argument passed to setVisibility. + */ + + public function testMethodScannerSetVisibilityThrowsInvalidArgumentException() + { + $methodScanner = new MethodScanner([]); + + $invalidArgument = 42; + self::assertTrue(!in_array($invalidArgument, [T_PUBLIC, T_PROTECTED, T_PRIVATE])); + $methodScanner->setVisibility(42); + } + + public function testMethodScannerSetVisibilityAcceptsIntegerTokens() + { + $methodScanner = new MethodScanner([]); + + self::assertTrue($methodScanner->setVisibility(T_PUBLIC) === $methodScanner); + self::assertTrue($methodScanner->setVisibility(T_PROTECTED) === $methodScanner); + self::assertTrue($methodScanner->setVisibility(T_PRIVATE) === $methodScanner); + } } From 633bff8102a72b08ee238f6e5916f0da40d0e3e4 Mon Sep 17 00:00:00 2001 From: mxc-commons Date: Sun, 5 Nov 2017 18:13:52 +0100 Subject: [PATCH 3/5] CS fix. --- test/Scanner/MethodScannerTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Scanner/MethodScannerTest.php b/test/Scanner/MethodScannerTest.php index b86d554d..ad179b84 100644 --- a/test/Scanner/MethodScannerTest.php +++ b/test/Scanner/MethodScannerTest.php @@ -122,7 +122,7 @@ public function testMethodScannerSetVisibilityThrowsInvalidArgumentException() $methodScanner = new MethodScanner([]); $invalidArgument = 42; - self::assertTrue(!in_array($invalidArgument, [T_PUBLIC, T_PROTECTED, T_PRIVATE])); + self::assertTrue(! in_array($invalidArgument, [T_PUBLIC, T_PROTECTED, T_PRIVATE])); $methodScanner->setVisibility(42); } From 24110b27f77fd059d0bb6b7d7312cb27c6969c7d Mon Sep 17 00:00:00 2001 From: fhein Date: Tue, 7 Nov 2017 14:04:47 +0100 Subject: [PATCH 4/5] Changes as requested. See conversation #140. --- test/Scanner/MethodScannerTest.php | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/test/Scanner/MethodScannerTest.php b/test/Scanner/MethodScannerTest.php index ad179b84..e6cd406b 100644 --- a/test/Scanner/MethodScannerTest.php +++ b/test/Scanner/MethodScannerTest.php @@ -112,26 +112,24 @@ public function testMethodScannerWorksWithSingleAbstractFunction() self::assertTrue($method->isAbstract()); } - /** - * @expectedException \Zend\Code\Exception\InvalidArgumentException - * @expectedExceptionMessage Invalid visibility argument passed to setVisibility. - */ - public function testMethodScannerSetVisibilityThrowsInvalidArgumentException() { $methodScanner = new MethodScanner([]); - $invalidArgument = 42; - self::assertTrue(! in_array($invalidArgument, [T_PUBLIC, T_PROTECTED, T_PRIVATE])); - $methodScanner->setVisibility(42); + // make sure test argument is invalid + $min = min(T_PUBLIC, T_PROTECTED, T_PRIVATE); + $invalidArgument = $min > 42 ? 42 : 43; + + $this->expectException('\Zend\Code\Exception\InvalidArgumentException'); + $methodScanner->setVisibility($invalidArgument); } public function testMethodScannerSetVisibilityAcceptsIntegerTokens() { $methodScanner = new MethodScanner([]); - self::assertTrue($methodScanner->setVisibility(T_PUBLIC) === $methodScanner); - self::assertTrue($methodScanner->setVisibility(T_PROTECTED) === $methodScanner); - self::assertTrue($methodScanner->setVisibility(T_PRIVATE) === $methodScanner); + $this->assertSame($methodScanner->setVisibility(T_PUBLIC), $methodScanner); + $this->assertSame($methodScanner->setVisibility(T_PROTECTED), $methodScanner); + $this->assertSame($methodScanner->setVisibility(T_PRIVATE), $methodScanner); } } From 5e9f463a238b8fbd06024d0549156dc43049a772 Mon Sep 17 00:00:00 2001 From: fhein Date: Tue, 7 Nov 2017 21:59:47 +0100 Subject: [PATCH 5/5] Although 42 is the answer on all questions it did not work this time. Stupid me. --- test/Scanner/MethodScannerTest.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/Scanner/MethodScannerTest.php b/test/Scanner/MethodScannerTest.php index e6cd406b..07c4ddab 100644 --- a/test/Scanner/MethodScannerTest.php +++ b/test/Scanner/MethodScannerTest.php @@ -117,8 +117,7 @@ public function testMethodScannerSetVisibilityThrowsInvalidArgumentException() $methodScanner = new MethodScanner([]); // make sure test argument is invalid - $min = min(T_PUBLIC, T_PROTECTED, T_PRIVATE); - $invalidArgument = $min > 42 ? 42 : 43; + $invalidArgument = max(T_PUBLIC, T_PROTECTED, T_PRIVATE) + 1; $this->expectException('\Zend\Code\Exception\InvalidArgumentException'); $methodScanner->setVisibility($invalidArgument);