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