public function testMapFieldValue()
 {
     $data = new FieldData(['field' => new Field(['fieldDefIdentifier' => 'second_type']), 'fieldDefinition' => new FieldDefinition(['fieldTypeIdentifier' => 'second_type'])]);
     $formMock = $this->getMock('Symfony\\Component\\Form\\FormInterface');
     $this->fieldValueMapperMock->expects($this->once())->method('mapFieldValueForm')->with($formMock, $data);
     $this->fieldDefinitionMapperMock->expects($this->never())->method('mapFieldDefinitionForm');
     $this->dispatcher->map($formMock, $data);
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $fieldsGroups = [];
     if (isset($this->groupsList)) {
         $fieldsGroups = array_flip($this->groupsList->getGroups());
     }
     $translatablePropertyTransformer = new TranslatablePropertyTransformer($options['languageCode']);
     $builder->add($builder->create('name', TextType::class, ['property_path' => 'names', 'label' => 'field_definition.name'])->addModelTransformer($translatablePropertyTransformer))->add('identifier', TextType::class, ['label' => 'field_definition.identifier'])->add($builder->create('description', TextType::class, ['property_path' => 'descriptions', 'required' => false, 'label' => 'field_definition.description'])->addModelTransformer($translatablePropertyTransformer))->add('isRequired', CheckboxType::class, ['required' => false, 'label' => 'field_definition.is_required'])->add('isTranslatable', CheckboxType::class, ['required' => false, 'label' => 'field_definition.is_translatable'])->add('fieldGroup', ChoiceType::class, ['choices' => $fieldsGroups, 'choices_as_values' => true, 'required' => false, 'label' => 'field_definition.field_group'])->add('position', IntegerType::class, ['label' => 'field_definition.position'])->add('selected', CheckboxType::class, ['required' => false, 'mapped' => false]);
     // Hook on form generation for specific FieldType needs
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         /** @var \EzSystems\RepositoryForms\Data\FieldDefinitionData $data */
         $data = $event->getData();
         $form = $event->getForm();
         $fieldTypeIdentifier = $data->getFieldTypeIdentifier();
         $fieldType = $this->fieldTypeService->getFieldType($fieldTypeIdentifier);
         // isSearchable field should be present only if the FieldType allows it.
         $form->add('isSearchable', CheckboxType::class, ['required' => false, 'disabled' => !$fieldType->isSearchable(), 'label' => 'field_definition.is_searchable']);
         // Let fieldType mappers do their jobs to complete the form.
         $this->fieldTypeMapperDispatcher->map($form, $data);
     });
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
         $this->fieldTypeFormMapper->map($event->getForm(), $event->getData());
     });
 }