summaryrefslogtreecommitdiffstats
path: root/tests/ControllerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ControllerTest.php')
-rw-r--r--tests/ControllerTest.php26
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");
+ }
+}