public function testFindModelField()
 {
     $meta = $this->em->getClassMetadata(EntityConfigModel::ENTITY_NAME);
     $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $em->expects($this->any())->method('getRepository')->will($this->returnValue(new FoundEntityConfigRepository($em, $meta)));
     $serviceLink = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\DependencyInjection\\Utils\\ServiceLink')->disableOriginalConstructor()->getMock();
     $serviceLink->expects($this->any())->method('getService')->will($this->returnValue($em));
     $configModelManager = new ConfigModelManager($serviceLink);
     $this->assertEquals(FoundEntityConfigRepository::getResultConfigField(), $configModelManager->findModel(DemoEntity::ENTITY_NAME, 'test'));
 }
 /**
  * @param string $className
  * @param string $fieldName
  * @param string $fieldType
  * @param string $mode
  * @return FieldConfigModel
  */
 public function createConfigFieldModel($className, $fieldName, $fieldType, $mode = ConfigModelManager::MODE_DEFAULT)
 {
     if (!($fieldModel = $this->modelManager->findModel($className, $fieldName))) {
         $fieldModel = $this->modelManager->createFieldModel($className, $fieldName, $fieldType, $mode);
         foreach ($this->getProviders() as $provider) {
             $defaultValues = array();
             $metadata = $this->getFieldMetadata($className, $fieldName);
             if ($metadata && isset($metadata->defaultValues[$provider->getScope()])) {
                 $defaultValues = $metadata->defaultValues[$provider->getScope()];
             }
             $fieldId = new FieldConfigId($className, $provider->getScope(), $fieldName, $fieldType);
             $config = $provider->createConfig($fieldId, $defaultValues);
             $this->localCache->set($config->getId()->toString(), $config);
         }
         $this->eventDispatcher->dispatch(Events::NEW_FIELD_CONFIG_MODEL, new NewFieldConfigModelEvent($fieldModel, $this));
     }
     return $fieldModel;
 }