public function testRoutingFailureDueToHttpMethodCallsNextWithNotAllowedResponseAndError()
{
$request = new ServerRequest();
$response = new Response();
$result = RouteResult::fromRouteFailure(['GET', 'POST']);
$this->router->match($request)->willReturn($result);
$next = function ($request, $response, $error = false) {
$this->assertEquals(405, $error);
$this->assertEquals(405, $response->getStatusCode());
return $response;
};
$app = $this->getApplication();
$test = $app->routeMiddleware($request, $response, $next);
$this->assertInstanceOf('Psr\\Http\\Message\\ResponseInterface', $test);
$this->assertEquals(405, $test->getStatusCode());
$allow = $test->getHeaderLine('Allow');
$this->assertContains('GET', $allow);
$this->assertContains('POST', $allow);
}