/**
  * @param FieldMetadata $fieldMetadata
  */
 protected function applyFieldMetadataConfig(FieldMetadata $fieldMetadata)
 {
     $this->entityConfigHelper->prepareFieldMetadataPropertyPath($fieldMetadata);
     $mergeConfig = $this->entityConfigHelper->getConfigByFieldMetadata(self::CONFIG_MERGE_SCOPE, $fieldMetadata);
     if ($mergeConfig) {
         $mergeOptions = $this->filterInverseOptions($mergeConfig->all(), $fieldMetadata->isDefinedBySourceEntity());
         $fieldMetadata->merge($mergeOptions);
     }
 }
 public function testPrepareFieldMetadataPropertyPathWithNotExtendField()
 {
     $className = 'Namespace\\Entity';
     $fieldName = 'test';
     $this->configManager->expects($this->once())->method('getProvider')->with('extend')->will($this->returnValue($this->extendConfigProvider));
     $fieldMetadata = $this->createFieldMetadata();
     $fieldMetadata->expects($this->once())->method('getSourceClassName')->will($this->returnValue($className));
     $fieldMetadata->expects($this->once())->method('getSourceFieldName')->will($this->returnValue($fieldName));
     $this->extendConfigProvider->expects($this->once())->method('hasConfig')->with($className, $fieldName)->will($this->returnValue(false));
     $fieldMetadata->expects($this->never())->method('set');
     $this->helper->prepareFieldMetadataPropertyPath($fieldMetadata);
 }
 public function testBuildFormExtendGuesser()
 {
     $entityName = User::class;
     $fieldName = 'orderPlacedAt';
     // pretend that it is extend field
     $expectedType = 'oro_datetime';
     $this->entityConfigMock->expects($this->once())->method('getConfig')->with('extend', $entityName, $fieldName)->willReturn(new Config(new FieldConfigId('extend', $entityName, $fieldName), ['is_extend' => true]));
     $this->extendTypeGuesser->expects($this->once())->method('guessType')->with($entityName, $fieldName)->willReturn(new TypeGuess($expectedType, [], Guess::HIGH_CONFIDENCE));
     $type = new GuessFieldType($this->entityConfigMock, $this->regularTypeGuesser);
     $form = $this->factory->create($type, null, ['data_class' => $entityName, 'field_name' => $fieldName]);
     $view = $form->createView();
     $this->assertCount(1, $view->children, 'Failed asserting that there is only one children');
     $fieldView = $view->offsetGet($fieldName);
     $this->assertEquals(sprintf('guess_field_type[%s]', $fieldName), $fieldView->vars['full_name'], 'Failed asserting that field name is correct');
     $this->assertEquals($expectedType, $form[$fieldName]->getConfig()->getType()->getName(), 'Failed asserting that correct underlying type was used');
 }
 /**
  * @param string $className
  * @param string $fieldName
  *
  * @return bool
  */
 protected function isExtendField($className, $fieldName)
 {
     $entityConfig = $this->entityConfigHelper->getConfig(EntityConfigHelper::EXTEND_CONFIG_SCOPE, $className, $fieldName);
     if ($entityConfig) {
         return $entityConfig->is('is_extend');
     } else {
         return false;
     }
 }
 /**
  * @param FieldMetadata $fieldMetadata
  * @return array
  */
 protected function initFieldMetadataDefaultLabel(FieldMetadata $fieldMetadata)
 {
     if ($fieldMetadata->has('label')) {
         return;
     }
     $labelCode = 'label';
     $className = $fieldMetadata->getSourceClassName();
     $fieldName = $fieldMetadata->getSourceFieldName();
     if (!$fieldMetadata->isDefinedBySourceEntity()) {
         $fieldName = null;
         if ($fieldMetadata->isCollection()) {
             $labelCode = 'plural_label';
         }
     }
     $entityConfig = $this->entityConfigHelper->getConfig(self::CONFIG_ENTITY_SCOPE, $className, $fieldName);
     if ($entityConfig) {
         $fieldMetadata->set('label', $entityConfig->get($labelCode));
     }
 }