prophesize(HttpKernelInterface::class); $request = Request::create('/test'); $request->setRequestFormat('json'); $e = new MethodNotAllowedHttpException(['POST', 'PUT'], 'test message'); $event = new GetResponseForExceptionEvent($kernel->reveal(), $request, 'GET', $e); $subscriber = new DefaultExceptionSubscriber(new Serializer([], [new JsonEncoder()]), []); $subscriber->on4xx($event); $response = $event->getResponse(); $this->assertInstanceOf(Response::class, $response); $this->assertEquals('{"message":"test message"}', $response->getContent()); $this->assertEquals(405, $response->getStatusCode()); $this->assertEquals('POST, PUT', $response->headers->get('Allow')); $this->assertEquals('application/json', $response->headers->get('Content-Type')); } }