controller = $this->getMock('Controller', array('isAuthorized'), array(), '', false); $this->components = $this->getMock('ComponentCollection'); $this->components->expects($this->any()) ->method('getController') ->will($this->returnValue($this->controller)); $this->auth = new ControllerAuthorize($this->components); } /** * testControllerTypeError * * @return void * @throws \PHPUnit\Framework\Error */ public function testControllerTypeError() { $this->expectException(\PHPUnit\Framework\Error::class); try { $this->auth->controller(new StdClass()); $this->fail('No exception thrown'); } catch (TypeError $e) { throw new \PHPUnit\Framework\Error('Raised an error', 100); } } /** * testControllerErrorOnMissingMethod * * @return void */ public function testControllerErrorOnMissingMethod() { $this->expectException(CakeException::class); $this->auth->controller(new Controller()); } /** * test failure * * @return void */ public function testAuthorizeFailure() { $user = array(); $request = new CakeRequest('/posts/index', false); $this->assertFalse($this->auth->authorize($user, $request)); } /** * test isAuthorized working. * * @return void */ public function testAuthorizeSuccess() { $user = array('User' => array('username' => 'mark')); $request = new CakeRequest('/posts/index', false); $this->controller->expects($this->once()) ->method('isAuthorized') ->with($user) ->will($this->returnValue(true)); $this->assertTrue($this->auth->authorize($user, $request)); } }