public function testGetIdentifierWhenHasNotBeenManagedYetByUnitOfWork()
{
$role = new Role();
$identitiesExpected = ['id' => 1];
/** @var UnitOfWork | ProphecyInterface $uow */
$uow = $this->prophesize(UnitOfWork::class);
$uow->isInIdentityMap($role)->shouldBeCalledTimes(2)->willReturn(true, false);
/** @var ClassMetadata $classMetadata */
$classMetadata = $this->prophesize(ClassMetadata::class);
$classMetadata->getIdentifierValues($role)->shouldBeCalled()->willReturn($identitiesExpected);
/** @var EntityManagerInterface | ProphecyInterface $em */
$em = $this->prophesize(EntityManagerInterface::class);
$em->getUnitOfWork()->shouldBeCalled()->willReturn($uow);
$em->getClassMetadata(Role::class)->shouldBeCalled()->willReturn($classMetadata);
$referenceRepository = new ReferenceRepository($em->reveal());
$referenceRepository->setReference('entity', $role);
$identities = $referenceRepository->getIdentities();
$this->assertEquals($identitiesExpected, $identities['entity']);
}