public function testQueryResultExtension()
{
$queryBuilderProphecy = $this->prophesize(QueryBuilder::class);
$queryBuilder = $queryBuilderProphecy->reveal();
$repositoryProphecy = $this->prophesize(EntityRepository::class);
$repositoryProphecy->createQueryBuilder('o')->willReturn($queryBuilder)->shouldBeCalled();
$managerProphecy = $this->prophesize(ObjectManager::class);
$managerProphecy->getRepository(Dummy::class)->willReturn($repositoryProphecy->reveal())->shouldBeCalled();
$managerRegistryProphecy = $this->prophesize(ManagerRegistry::class);
$managerRegistryProphecy->getManagerForClass(Dummy::class)->willReturn($managerProphecy->reveal())->shouldBeCalled();
$extensionProphecy = $this->prophesize(QueryResultCollectionExtensionInterface::class);
$extensionProphecy->applyToCollection($queryBuilder, Argument::type(QueryNameGeneratorInterface::class), Dummy::class, 'foo')->shouldBeCalled();
$extensionProphecy->supportsResult(Dummy::class, 'foo')->willReturn(true)->shouldBeCalled();
$extensionProphecy->getResult($queryBuilder)->willReturn([])->shouldBeCalled();
$dataProvider = new CollectionDataProvider($managerRegistryProphecy->reveal(), [$extensionProphecy->reveal()]);
$this->assertEquals([], $dataProvider->getCollection(Dummy::class, 'foo'));
}