Allow Router to assign middleware to MethodMap
This commit is contained in:
parent
0d204d9279
commit
d66ba80ec9
|
|
@ -43,6 +43,9 @@ class Router implements MiddlewareInterface
|
|||
*/
|
||||
public function add($target, $middleware, $defaultPattern = null, $variablePatterns = null)
|
||||
{
|
||||
if (is_array($middleware)) {
|
||||
$middleware = $this->getMethodMap($middleware);
|
||||
}
|
||||
$this->routeFactory->registerRoute($target, $middleware, $defaultPattern, $variablePatterns);
|
||||
}
|
||||
|
||||
|
|
@ -66,4 +69,9 @@ class Router implements MiddlewareInterface
|
|||
$dispatcher->dispatch($middleware, $request, $response);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getMethodMap(array $map)
|
||||
{
|
||||
return new MethodMap($map);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ use WellRESTed\Routing\Router;
|
|||
/**
|
||||
* @covers WellRESTed\Routing\Router
|
||||
* @uses WellRESTed\Routing\Dispatcher
|
||||
* @uses WellRESTed\Routing\MethodMap
|
||||
* @uses WellRESTed\Routing\RouteTable
|
||||
* @uses WellRESTed\Routing\Route\RouteFactory
|
||||
* @uses WellRESTed\Routing\Route\RegexRoute
|
||||
|
|
@ -73,4 +74,16 @@ class RouterTest extends \PHPUnit_Framework_TestCase
|
|||
|
||||
$statusMiddleware->dispatch(Argument::cetera())->shouldHaveBeenCalled();
|
||||
}
|
||||
|
||||
public function testRegisterRouteWithMethodMap()
|
||||
{
|
||||
$this->request->getRequestTarget()->willReturn("/cats/");
|
||||
$this->request->getMethod()->willReturn("GET");
|
||||
|
||||
$router = new Router();
|
||||
$router->add("/cats/", ["GET" => $this->middleware->reveal()]);
|
||||
$router->dispatch($this->request->reveal(), $this->response->reveal());
|
||||
|
||||
$this->middleware->dispatch(Argument::cetera())->shouldHaveBeenCalled();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue