public function testReferenceEntry()
 {
     $em = $this->getMockAnnotationReaderEntityManager();
     $role = new TestEntity\Role();
     $role->setName('admin');
     $meta = $em->getClassMetadata(self::TEST_ENTITY_ROLE);
     $meta->getReflectionProperty('id')->setValue($role, 1);
     $referenceRepo = new ReferenceRepository($em);
     $referenceRepo->addReference('test', $role);
     $references = $referenceRepo->getReferences();
     $this->assertCount(1, $references);
     $this->assertArrayHasKey('test', $references);
     $this->assertInstanceOf(self::TEST_ENTITY_ROLE, $references['test']);
 }
 /**
  * @param ReferenceRepository $referenceRepository
  *
  * @throws \RuntimeException
  *
  * @return string
  */
 public function serialize(ReferenceRepository $referenceRepository)
 {
     $references = array();
     $isORM = $referenceRepository->getManager() instanceof EntityManager;
     foreach ($referenceRepository->getReferences() as $name => $reference) {
         $reference = $referenceRepository->getReference($name);
         $references[$name]['identifier'] = $referenceRepository->getManager()->getUnitOfWork()->getEntityIdentifier($reference);
         if ($reference instanceof Proxy) {
             $ro = new \ReflectionObject($reference);
             $references[$name]['class'] = $ro->getParentClass()->getName();
         } else {
             $references[$name]['class'] = get_class($reference);
         }
     }
     return serialize($references);
 }