public function testGetItemDoubleIdentifier()
{
$queryProphecy = $this->prophesize(AbstractQuery::class);
$queryProphecy->getOneOrNullResult()->willReturn([])->shouldBeCalled();
$comparisonProphecy = $this->prophesize(Comparison::class);
$comparison = $comparisonProphecy->reveal();
$exprProphecy = $this->prophesize(Expr::class);
$exprProphecy->eq('o.ida', ':id_ida')->willReturn($comparisonProphecy)->shouldBeCalled();
$exprProphecy->eq('o.idb', ':id_idb')->willReturn($comparisonProphecy)->shouldBeCalled();
$queryBuilderProphecy = $this->prophesize(QueryBuilder::class);
$queryBuilderProphecy->getQuery()->willReturn($queryProphecy->reveal())->shouldBeCalled();
$queryBuilderProphecy->expr()->willReturn($exprProphecy->reveal())->shouldBeCalled();
$queryBuilderProphecy->andWhere($comparison)->shouldBeCalled();
$queryBuilderProphecy->setParameter(':id_ida', 1)->shouldBeCalled();
$queryBuilderProphecy->setParameter(':id_idb', 2)->shouldBeCalled();
$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();
$classMetadataProphecy = $this->prophesize(ClassMetadata::class);
$classMetadataProphecy->getIdentifier()->willReturn(['ida', 'idb'])->shouldBeCalled();
$managerProphecy->getClassMetadata(Dummy::class)->willReturn($classMetadataProphecy->reveal())->shouldBeCalled();
$managerRegistryProphecy = $this->prophesize(ManagerRegistry::class);
$managerRegistryProphecy->getManagerForClass(Dummy::class)->willReturn($managerProphecy->reveal())->shouldBeCalled();
$extensionProphecy = $this->prophesize(QueryItemExtensionInterface::class);
$extensionProphecy->applyToItem($queryBuilder, Argument::type(QueryNameGeneratorInterface::class), Dummy::class, ['ida' => 1, 'idb' => 2], 'foo', [])->shouldBeCalled();
$propertyNameCollectionFactoryProphecy = $this->prophesize(PropertyNameCollectionFactoryInterface::class);
$propertyNameCollectionFactoryProphecy->create(Dummy::class)->willReturn(new PropertyNameCollection(['nonid', 'ida', 'idb']))->shouldBeCalled();
$propertyMetadataFactoryProphecy = $this->prophesize(PropertyMetadataFactoryInterface::class);
$metadata = new PropertyMetadata();
$metadata = $metadata->withIdentifier(true);
$propertyMetadataFactoryProphecy->create(Dummy::class, 'nonid')->willReturn(new PropertyMetadata())->shouldBeCalled();
$propertyMetadataFactoryProphecy->create(Dummy::class, 'ida')->willReturn($metadata)->shouldBeCalled();
$propertyMetadataFactoryProphecy->create(Dummy::class, 'idb')->willReturn($metadata)->shouldBeCalled();
$dataProvider = new ItemDataProvider($managerRegistryProphecy->reveal(), $propertyNameCollectionFactoryProphecy->reveal(), $propertyMetadataFactoryProphecy->reveal(), [$extensionProphecy->reveal()]);
$this->assertEquals([], $dataProvider->getItem(Dummy::class, 'ida=1;idb=2', 'foo'));
}