Update routes to match new MiddlewareInterface

This commit is contained in:
PJ Dietz 2015-05-09 18:36:04 -04:00
parent 72767b74e8
commit 36263ba3de
5 changed files with 21 additions and 12 deletions

View File

@ -31,11 +31,11 @@ class RegexRoute extends Route
return false; return false;
} }
public function dispatch(ServerRequestInterface $request, ResponseInterface &$response) public function dispatch(ServerRequestInterface $request, ResponseInterface $response, $next)
{ {
if ($this->captures) { if ($this->captures) {
$request = $request->withAttribute("path", $this->captures); $request = $request->withAttribute("path", $this->captures);
} }
parent::dispatch($request, $response); return parent::dispatch($request, $response, $next);
} }
} }

View File

@ -37,8 +37,8 @@ abstract class Route implements RouteInterface
return $this->target; return $this->target;
} }
public function dispatch(ServerRequestInterface $request, ResponseInterface &$response) public function dispatch(ServerRequestInterface $request, ResponseInterface $response, $next)
{ {
$this->methodMap->dispatch($request, $response); return $this->methodMap->dispatch($request, $response, $next);
} }
} }

View File

@ -47,11 +47,13 @@ class RegexRouteTest extends \PHPUnit_Framework_TestCase
$request = $this->prophesize('Psr\Http\Message\ServerRequestInterface'); $request = $this->prophesize('Psr\Http\Message\ServerRequestInterface');
$request->withAttribute(Argument::cetera())->willReturn($request->reveal()); $request->withAttribute(Argument::cetera())->willReturn($request->reveal());
$response = $this->prophesize('Psr\Http\Message\ResponseInterface'); $response = $this->prophesize('Psr\Http\Message\ResponseInterface');
$responseReveal = $response->reveal(); $next = function ($request, $response) {
return $response;
};
$route = new RegexRoute($pattern, $this->methodMap->reveal()); $route = new RegexRoute($pattern, $this->methodMap->reveal());
$route->matchesRequestTarget($path); $route->matchesRequestTarget($path);
$route->dispatch($request->reveal(), $responseReveal); $route->dispatch($request->reveal(), $response->reveal(), $next);
$request->withAttribute("path", $expectedCaptures)->shouldHaveBeenCalled(); $request->withAttribute("path", $expectedCaptures)->shouldHaveBeenCalled();
} }

View File

@ -7,6 +7,7 @@ use Prophecy\Argument;
/** /**
* @coversDefaultClass WellRESTed\Routing\Route\Route * @coversDefaultClass WellRESTed\Routing\Route\Route
* @uses WellRESTed\Routing\Route\Route * @uses WellRESTed\Routing\Route\Route
* @group route
*/ */
class RouteTest extends \PHPUnit_Framework_TestCase class RouteTest extends \PHPUnit_Framework_TestCase
{ {
@ -60,7 +61,10 @@ class RouteTest extends \PHPUnit_Framework_TestCase
$request = $this->prophesize('Psr\Http\Message\ServerRequestInterface')->reveal(); $request = $this->prophesize('Psr\Http\Message\ServerRequestInterface')->reveal();
$response = $this->prophesize('Psr\Http\Message\ResponseInterface')->reveal(); $response = $this->prophesize('Psr\Http\Message\ResponseInterface')->reveal();
$route->dispatch($request, $response); $next = function ($request, $response) {
return $response;
};
$route->dispatch($request, $response, $next);
$methodMap->dispatch(Argument::cetera())->shouldHaveBeenCalled(); $methodMap->dispatch(Argument::cetera())->shouldHaveBeenCalled();
} }

View File

@ -46,11 +46,13 @@ class TemplateRouteTest extends \PHPUnit_Framework_TestCase
$request = $this->prophesize('Psr\Http\Message\ServerRequestInterface'); $request = $this->prophesize('Psr\Http\Message\ServerRequestInterface');
$request->withAttribute(Argument::cetera())->willReturn($request->reveal()); $request->withAttribute(Argument::cetera())->willReturn($request->reveal());
$response = $this->prophesize('Psr\Http\Message\ResponseInterface'); $response = $this->prophesize('Psr\Http\Message\ResponseInterface');
$responseReveal = $response->reveal(); $next = function ($request, $response) {
return $response;
};
$route = new TemplateRoute($template, $this->methodMap->reveal()); $route = new TemplateRoute($template, $this->methodMap->reveal());
$route->matchesRequestTarget($path); $route->matchesRequestTarget($path);
$route->dispatch($request->reveal(), $responseReveal); $route->dispatch($request->reveal(), $response->reveal(), $next);
$request->withAttribute("path", Argument::that(function ($path) use ($expectedCaptures) { $request->withAttribute("path", Argument::that(function ($path) use ($expectedCaptures) {
return array_intersect_assoc($path, $expectedCaptures) == $expectedCaptures; return array_intersect_assoc($path, $expectedCaptures) == $expectedCaptures;
@ -100,11 +102,12 @@ class TemplateRouteTest extends \PHPUnit_Framework_TestCase
$request = $this->prophesize('Psr\Http\Message\ServerRequestInterface'); $request = $this->prophesize('Psr\Http\Message\ServerRequestInterface');
$request->withAttribute(Argument::cetera())->willReturn($request->reveal()); $request->withAttribute(Argument::cetera())->willReturn($request->reveal());
$response = $this->prophesize('Psr\Http\Message\ResponseInterface'); $response = $this->prophesize('Psr\Http\Message\ResponseInterface');
$responseReveal = $response->reveal(); $next = function ($request, $response) {
return $response;
};
$route = new TemplateRoute($template, $this->methodMap->reveal()); $route = new TemplateRoute($template, $this->methodMap->reveal());
$route->matchesRequestTarget($path); $route->matchesRequestTarget($path);
$route->dispatch($request->reveal(), $responseReveal); $route->dispatch($request->reveal(), $response->reveal(), $next);
$request->withAttribute("path", Argument::that(function ($path) use ($expectedCaptures) { $request->withAttribute("path", Argument::that(function ($path) use ($expectedCaptures) {
return array_intersect_assoc($path, $expectedCaptures) == $expectedCaptures; return array_intersect_assoc($path, $expectedCaptures) == $expectedCaptures;