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); }