public function testEventArgsMutability()
 {
     /* @var $objectManager \Doctrine\Common\Persistence\ObjectManager */
     $objectManager = $this->getMock('Doctrine\\Common\\Persistence\\ObjectManager');
     $args = new OnClassMetadataNotFoundEventArgs('foo', $objectManager);
     $this->assertSame('foo', $args->getClassName());
     $this->assertSame($objectManager, $args->getObjectManager());
     $this->assertNull($args->getFoundMetadata());
     /* @var $metadata \Doctrine\Common\Persistence\Mapping\ClassMetadata */
     $metadata = $this->getMock('Doctrine\\Common\\Persistence\\Mapping\\ClassMetadata');
     $args->setFoundMetadata($metadata);
     $this->assertSame($metadata, $args->getFoundMetadata());
     $args->setFoundMetadata(null);
     $this->assertNull($args->getFoundMetadata());
 }
 /**
  * @param OnClassMetadataNotFoundEventArgs $args
  *
  * @internal this is an event callback, and should not be called directly
  *
  * @return void
  */
 public function onClassMetadataNotFound(OnClassMetadataNotFoundEventArgs $args)
 {
     if (array_key_exists($args->getClassName(), $this->resolveTargetEntities)) {
         $args->setFoundMetadata($args->getObjectManager()->getClassMetadata($this->resolveTargetEntities[$args->getClassname()]['targetEntity']));
     }
 }
 /**
  * @param OnClassMetadataNotFoundEventArgs $eventArgs
  */
 public function onClassMetadataNotFound(OnClassMetadataNotFoundEventArgs $eventArgs)
 {
     if (class_implements($eventArgs->getClassName(), 'steevanb\\DoctrineReadOnlyHydrator\\Entity\\ReadOnlyEntityInterface')) {
         $eventArgs->setFoundMetadata($eventArgs->getObjectManager()->getClassMetadata(get_parent_class($eventArgs->getClassName())));
     }
 }