/**
  * Add mapping data to a translation entity.
  *
  * @param ClassMetadata $metadata
  */
 private function mapTranslation(ClassMetadata $metadata)
 {
     $className = $metadata->name;
     try {
         $resourceMetadata = $this->resourceMetadataRegistry->getByClass($className);
     } catch (\InvalidArgumentException $exception) {
         return;
     }
     /** @var MetadataInterface $translatableResourceMetadata */
     $translatableResourceMetadata = $this->resourceMetadataRegistry->get(str_replace('_translation', '', $resourceMetadata->getAlias()));
     $metadata->mapManyToOne(['fieldName' => 'translatable', 'targetEntity' => $translatableResourceMetadata->getClass('model'), 'inversedBy' => 'translations', 'joinColumns' => [['name' => 'translatable_id', 'referencedColumnName' => 'id', 'onDelete' => 'CASCADE', 'nullable' => false]]]);
     if (!$metadata->hasField('locale')) {
         $metadata->mapField(['fieldName' => 'locale', 'type' => 'string', 'nullable' => false]);
     }
     // Map unique index.
     $columns = [$metadata->getSingleAssociationJoinColumnName('translatable'), 'locale'];
     if (!$this->hasUniqueConstraint($metadata, $columns)) {
         $constraints = isset($metadata->table['uniqueConstraints']) ? $metadata->table['uniqueConstraints'] : [];
         $constraints[$metadata->getTableName() . '_uniq_trans'] = ['columns' => $columns];
         $metadata->setPrimaryTable(['uniqueConstraints' => $constraints]);
     }
 }
 function it_does_not_set_custom_repository_class_if_registry_does_not_have_class(LoadClassMetadataEventArgs $event, RegistryInterface $registry, ClassMetadata $classMetadata)
 {
     $registry->getByClass('Foo')->willThrow(\InvalidArgumentException::class);
     $classMetadata->setCustomRepositoryClass(Argument::any())->shouldNotBeCalled();
     $this->loadClassMetadata($event);
 }