Ensure $args propagate from Router to Handlers
This commit is contained in:
parent
512897effd
commit
75088499b8
|
|
@ -78,10 +78,10 @@ class Router implements HandlerInterface
|
||||||
*
|
*
|
||||||
* Respond with a 404 Not Found if no route provides a response.
|
* Respond with a 404 Not Found if no route provides a response.
|
||||||
*/
|
*/
|
||||||
public function respond()
|
public function respond($args = null)
|
||||||
{
|
{
|
||||||
$request = Request::getRequest();
|
$request = Request::getRequest();
|
||||||
$response = $this->getResponse($request);
|
$response = $this->getResponse($request, $args);
|
||||||
if (!$response) {
|
if (!$response) {
|
||||||
$response = $this->getNoRouteResponse($request);
|
$response = $this->getNoRouteResponse($request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ namespace pjdietz\WellRESTed\Test;
|
||||||
|
|
||||||
use pjdietz\WellRESTed\Interfaces\HandlerInterface;
|
use pjdietz\WellRESTed\Interfaces\HandlerInterface;
|
||||||
use pjdietz\WellRESTed\Interfaces\RequestInterface;
|
use pjdietz\WellRESTed\Interfaces\RequestInterface;
|
||||||
use pjdietz\WellRESTed\Interfaces\ResponseInterface;
|
|
||||||
use pjdietz\WellRESTed\Response;
|
use pjdietz\WellRESTed\Response;
|
||||||
use pjdietz\WellRESTed\Router;
|
use pjdietz\WellRESTed\Router;
|
||||||
use pjdietz\WellRESTed\Routes\StaticRoute;
|
use pjdietz\WellRESTed\Routes\StaticRoute;
|
||||||
|
|
@ -134,6 +133,25 @@ class RouterTest extends \PHPUnit_Framework_TestCase
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testInjection()
|
||||||
|
{
|
||||||
|
$mockRequest = $this->getMock('\pjdietz\WellRESTed\Interfaces\RequestInterface');
|
||||||
|
$mockRequest->expects($this->any())
|
||||||
|
->method('getPath')
|
||||||
|
->will($this->returnValue("/2/3"));
|
||||||
|
|
||||||
|
$dependencies = [
|
||||||
|
"add" => function ($a, $b) {
|
||||||
|
return $a + $b;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
$router = new Router();
|
||||||
|
$router->addRoute(new TemplateRoute("/{a}/{b}", __NAMESPACE__ . "\\InjectionHandler"));
|
||||||
|
$resp = $router->getResponse($mockRequest, $dependencies);
|
||||||
|
$this->assertEquals("5", $resp->getBody());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -184,3 +202,14 @@ class NotFoundHandler implements HandlerInterface
|
||||||
return $response;
|
return $response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class InjectionHandler implements HandlerInterface
|
||||||
|
{
|
||||||
|
public function getResponse(RequestInterface $request, array $args = null)
|
||||||
|
{
|
||||||
|
$response = new Response(200);
|
||||||
|
$body = $args["add"]($args["a"], $args["b"]);
|
||||||
|
$response->setBody($body);
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue