From 4eaab1f6da1a56376a840231f7b8a10469308f97 Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sun, 15 May 2016 20:56:01 -0400 Subject: Added unit tests for middleware --- .../ProjectAuthorizationMiddlewareTest.php | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tests/units/Middleware/ProjectAuthorizationMiddlewareTest.php (limited to 'tests/units/Middleware/ProjectAuthorizationMiddlewareTest.php') diff --git a/tests/units/Middleware/ProjectAuthorizationMiddlewareTest.php b/tests/units/Middleware/ProjectAuthorizationMiddlewareTest.php new file mode 100644 index 00000000..256f0a4d --- /dev/null +++ b/tests/units/Middleware/ProjectAuthorizationMiddlewareTest.php @@ -0,0 +1,81 @@ +container['helper'] = new stdClass(); + + $this->container['helper']->user = $this + ->getMockBuilder('Kanboard\Helper\UserHelper') + ->setConstructorArgs(array($this->container)) + ->setMethods(array('hasProjectAccess')) + ->getMock(); + + $this->container['request'] = $this + ->getMockBuilder('Kanboard\Core\Http\Request') + ->setConstructorArgs(array($this->container)) + ->setMethods(array('getIntegerParam')) + ->getMock(); + + $this->nextMiddleware = $this + ->getMockBuilder('Kanboard\Middleware\ProjectAuthorizationMiddleware') + ->setConstructorArgs(array($this->container)) + ->setMethods(array('execute')) + ->getMock(); + + $this->middleware = new ProjectAuthorizationMiddleware($this->container); + $this->middleware->setNextMiddleware($this->nextMiddleware); + } + + public function testWithAccessDenied() + { + $this->container['request'] + ->expects($this->any()) + ->method('getIntegerParam') + ->will($this->returnValue(123)); + + $this->container['helper']->user + ->expects($this->once()) + ->method('hasProjectAccess') + ->will($this->returnValue(false)); + + $this->nextMiddleware + ->expects($this->never()) + ->method('execute'); + + $this->setExpectedException('Kanboard\Core\Controller\AccessForbiddenException'); + $this->middleware->execute(); + } + + public function testWithAccessGranted() + { + $this->container['request'] + ->expects($this->any()) + ->method('getIntegerParam') + ->will($this->returnValue(123)); + + $this->container['helper']->user + ->expects($this->once()) + ->method('hasProjectAccess') + ->will($this->returnValue(true)); + + $this->nextMiddleware + ->expects($this->once()) + ->method('execute'); + + $this->middleware->execute(); + } +} -- cgit v1.2.3