public function testMiddlewareCallingNextWithRequestPassesRequestToNextMiddleware()
{
$phpunit = $this;
$request = $this->request->withUri(new Uri('http://example.com/foo/bar/baz'));
$cannedRequest = clone $request;
$cannedRequest = $cannedRequest->withMethod('POST');
$route1 = new Route('/foo/bar', function ($req, $res, $next) use($cannedRequest) {
return $next($cannedRequest, $res);
});
$route2 = new Route('/foo/bar/baz', function ($req, $res, $next) use($phpunit, $cannedRequest) {
$phpunit->assertEquals($cannedRequest->getMethod(), $req->getMethod());
return $res;
});
$this->queue->enqueue($route1);
$this->queue->enqueue($route2);
$done = function ($req, $res, $err) use($phpunit) {
$phpunit->fail('Should not hit final handler');
};
$next = new Next($this->queue, $done);
$next($request, $this->response);
}