summaryrefslogtreecommitdiffstats
path: root/tests/Router/RunnerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Router/RunnerTest.php')
-rw-r--r--tests/Router/RunnerTest.php53
1 files changed, 23 insertions, 30 deletions
diff --git a/tests/Router/RunnerTest.php b/tests/Router/RunnerTest.php
index 7db4c02..3e558b4 100644
--- a/tests/Router/RunnerTest.php
+++ b/tests/Router/RunnerTest.php
@@ -1,46 +1,39 @@
<?php
-use Jasny\Router\Route;
use Jasny\Router\Runner;
-use Jasny\Router\Runner\Controller;
-use Jasny\Router\Runner\Callback;
-use Jasny\Router\Runner\PhpScript;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
+use Jasny\Router\TestHelpers;
+
+/**
+ * @covers Jasny\Router\Runner
+ */
class RunnerTest extends PHPUnit_Framework_TestCase
{
+ use TestHelpers;
+
/**
* Test runner __invoke method
*/
public function testInvoke()
{
- $runner = $this->getMockBuilder(Runner::class)->disableOriginalConstructor()->getMockForAbstractClass();
- $queries = [
- 'request' => $this->createMock(ServerRequestInterface::class),
- 'response' => $this->createMock(ResponseInterface::class)
- ];
-
- #Test that 'run' receives correct arguments inside '__invoke'
- $runner->method('run')->will($this->returnCallback(function($arg1, $arg2) {
- return ['request' => $arg1, 'response' => $arg2];
- }));
-
- $result = $runner($queries['request'], $queries['response']);
- $this->assertEquals($result['request'], $queries['request'], "Request was not returned correctly from 'run'");
- $this->assertEquals($result['response'], $queries['response'], "Response was not returned correctly from 'run'");
-
- #The same test with calling 'next' callback
- $result = $runner($queries['request'], $queries['response'], function($request, $prevResponse) use ($queries) {
- $this->assertEquals($request, $queries['request'], "Request is not correct in 'next'");
- $this->assertEquals($prevResponse['request'], $queries['request'], "Prev response was not passed correctly to 'next'");
- $this->assertEquals($prevResponse['response'], $queries['response'], "Prev response was not passed correctly to 'next'");
-
- return $queries + ['next_called' => true];
- });
+ $runner = $this->getMockBuilder(Runner::class)
+ ->disableOriginalConstructor()
+ ->getMockForAbstractClass();
+
+ $request = $this->createMock(ServerRequestInterface::class);
+
+ $response = $this->createMock(ResponseInterface::class);
+ $runResponse = $this->createMock(ResponseInterface::class);
+ $finalResponse = $this->createMock(ResponseInterface::class);
- $this->assertTrue($result['next_called'], "'Next' callback was not called");
- $this->assertEquals($result['request'], $queries['request'], "Request was not returned correctly from 'run' with 'next'");
- $this->assertEquals($result['response'], $queries['response'], "Request was not returned correctly from 'run' with 'next'");
+ $runner->expects($this->once())->method('run')
+ ->with($request, $response)
+ ->willReturn($runResponse);
+
+ $next = $this->createCallbackMock($this->once(), [$request, $runResponse], $finalResponse);
+
+ $runner($request, $response, $next);
}
}