class ExceptionJsonSubscriberTest extends UnitTestCase
{ /**
* @covers ::on4xx
* @dataProvider providerTestOn4xx
*/
public function testOn4xx(HttpExceptionInterface
$exception,
$expected_response_class) { $kernel =
$this->
prophesize(HttpKernelInterface::
class);
$request = Request::
create('/test'
);
$event =
new ExceptionEvent($kernel->
reveal(),
$request, HttpKernelInterface::MAIN_REQUEST,
$exception);
$subscriber =
new ExceptionJsonSubscriber();
$subscriber->
on4xx($event);
$response =
$event->
getResponse();
$this->
assertInstanceOf($expected_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'
));
} public function providerTestOn4xx() { return [