public function testRetrieveItem()
{
$collectionDataProvider = $this->prophesize(CollectionDataProviderInterface::class);
$collectionDataProvider->getCollection()->shouldNotBeCalled();
$data = new \stdClass();
$itemDataProvider = $this->prophesize(ItemDataProviderInterface::class);
$itemDataProvider->getItem('Foo', 1, 'get')->willReturn($data)->shouldBeCalled();
$request = new Request([], [], ['id' => 1, '_api_resource_class' => 'Foo', '_api_item_operation_name' => 'get', '_api_format' => 'json', '_api_mime_type' => 'application/json']);
$request->setMethod(Request::METHOD_GET);
$event = $this->prophesize(GetResponseEvent::class);
$event->getRequest()->willReturn($request)->shouldBeCalled();
$listener = new ReadListener($collectionDataProvider->reveal(), $itemDataProvider->reveal());
$listener->onKernelRequest($event->reveal());
$this->assertSame($data, $request->attributes->get('data'));
}