/**
  * @expectedException \Oro\Bundle\EntityMergeBundle\Exception\InvalidArgumentException
  * @expectedExceptionMessage Doctrine metadata is not configured.
  */
 public function testGetDoctrineMetadataFails()
 {
     $metadata = new FieldMetadata();
     $metadata->getDoctrineMetadata();
 }
 /**
  * @param object $relatedEntity
  * @param FieldMetadata $metadata
  * @param object $value
  */
 protected function setRelatedEntityValue($relatedEntity, FieldMetadata $metadata, $value)
 {
     if ($metadata->has('setter')) {
         $setter = $metadata->get('setter');
         $relatedEntity->{$setter}($value);
     } else {
         try {
             $this->getPropertyAccessor()->setValue($relatedEntity, $metadata->getDoctrineMetadata()->getFieldName(), $value);
         } catch (NoSuchPropertyException $e) {
             // If setter is not exist
             $reflection = new \ReflectionProperty(ClassUtils::getClass($relatedEntity), $metadata->getDoctrineMetadata()->getFieldName());
             $reflection->setAccessible(true);
             $reflection->setValue($relatedEntity, $value);
         }
     }
 }