Passing array to Router::register as middleware creates a DispatchStack
This commit is contained in:
parent
6507028dd3
commit
3786cfaade
|
|
@ -65,6 +65,9 @@ class Router implements RouterInterface
|
||||||
public function register($method, $target, $middleware)
|
public function register($method, $target, $middleware)
|
||||||
{
|
{
|
||||||
$route = $this->getRouteForTarget($target);
|
$route = $this->getRouteForTarget($target);
|
||||||
|
if (is_array($middleware)) {
|
||||||
|
$middleware = $this->dispatchProvider->getDispatchStack($middleware);
|
||||||
|
}
|
||||||
$route->getMethodMap()->register($method, $middleware);
|
$route->getMethodMap()->register($method, $middleware);
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,18 @@ class RouterTest extends \PHPUnit_Framework_TestCase
|
||||||
$this->methodMap->register("GET", "middleware")->shouldHaveBeenCalled();
|
$this->methodMap->register("GET", "middleware")->shouldHaveBeenCalled();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers ::register
|
||||||
|
*/
|
||||||
|
public function testCreatesDispatchStackForMiddlewareArray()
|
||||||
|
{
|
||||||
|
$stack = $this->prophesize('WellRESTed\MiddlewareInterface');
|
||||||
|
$this->dispatchProvider->getDispatchStack(Argument::any())->willReturn($stack->reveal());
|
||||||
|
|
||||||
|
$this->router->register("GET", "/", ["middleware1", "middleware2"]);
|
||||||
|
$this->methodMap->register("GET", $stack->reveal())->shouldHaveBeenCalled();
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
// Dispatching
|
// Dispatching
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue