diff options
Diffstat (limited to 'tests/ControllerTest.php')
-rw-r--r-- | tests/ControllerTest.php | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/ControllerTest.php b/tests/ControllerTest.php new file mode 100644 index 0000000..9a4caef --- /dev/null +++ b/tests/ControllerTest.php @@ -0,0 +1,26 @@ +<?php + +use Jasny\Controller; +use Psr\Http\Message\ServerRequestInterface; +use Psr\Http\Message\ResponseInterface; + +class ControllerTest extends PHPUnit_Framework_TestCase +{ + /** + * Test running controller + */ + public function testInvoke() + { + $controller = $this->getMockBuilder(Controller::class)->disableOriginalConstructor()->getMockForAbstractClass(); + $request = $this->createMock(ServerRequestInterface::class); + $response = $this->createMock(ResponseInterface::class); + + $controller->expects($this->once())->method('run')->will($this->returnValue($response)); + + $result = $controller($request, $response); + + $this->assertEquals($response, $result, "Invoking controller should return 'ResponseInterface' instance"); + $this->assertEquals($response, $controller->getResponse(), "Can not get 'ResponseInterface' instance from controller"); + $this->assertEquals($request, $controller->getRequest(), "Can not get 'ServerRequestInterface' instance from controller"); + } +} |