/**
  * @dataProvider setNameProvider
  */
 public function testSetName($sourceName, $expected)
 {
     // Arrange
     $a = new NodeTypeField();
     $a->setName($sourceName);
     // Assert
     $this->assertEquals($expected, $a->getName());
 }
 /**
  * Returns an option array for creating a Symfony Form
  * according to a node-type field.
  *
  * @param  NodesSources  $nodeSource
  * @param  NodeTypeField $field
  *
  * @return array
  */
 public function getFormOptionsFromFieldType(NodeTypeField $field)
 {
     $label = $field->getLabel();
     $devName = '{{ nodeSource.' . StringHandler::camelCase($field->getName()) . ' }}';
     switch ($field->getType()) {
         case NodeTypeField::ENUM_T:
             return ['label' => $label, 'placeholder' => 'choose.value', 'required' => false, 'attr' => ['data-desc' => $field->getDescription(), 'data-dev-name' => $devName]];
         case NodeTypeField::DATETIME_T:
             return ['date_widget' => 'single_text', 'date_format' => 'yyyy-MM-dd', 'label' => $label, 'required' => false, 'attr' => ['data-desc' => $field->getDescription(), 'data-dev-name' => $devName, 'class' => 'rz-datetime-field'], 'placeholder' => ['hour' => 'hour', 'minute' => 'minute']];
         case NodeTypeField::DATE_T:
             return ['widget' => 'single_text', 'format' => 'yyyy-MM-dd', 'label' => $label, 'required' => false, 'attr' => ['data-desc' => $field->getDescription(), 'data-dev-name' => $devName, 'class' => 'rz-date-field'], 'placeholder' => ''];
         case NodeTypeField::INTEGER_T:
             return ['label' => $label, 'required' => false, 'constraints' => [new Type('integer')], 'attr' => ['data-desc' => $field->getDescription(), 'data-dev-name' => $devName]];
         case NodeTypeField::EMAIL_T:
             return ['label' => $label, 'required' => false, 'constraints' => [new \Symfony\Component\Validator\Constraints\Email()], 'attr' => ['data-desc' => $field->getDescription(), 'data-dev-name' => $devName]];
         case NodeTypeField::DECIMAL_T:
             return ['label' => $label, 'required' => false, 'constraints' => [new Type('double')], 'attr' => ['data-desc' => $field->getDescription(), 'data-dev-name' => $devName]];
         case NodeTypeField::COLOUR_T:
             return ['label' => $label, 'required' => false, 'attr' => ['data-desc' => $field->getDescription(), 'data-dev-name' => $devName, 'class' => 'colorpicker-input']];
         case NodeTypeField::GEOTAG_T:
             return ['label' => $label, 'required' => false, 'attr' => ['data-desc' => $field->getDescription(), 'data-dev-name' => $devName, 'class' => 'rz-geotag-field']];
         case NodeTypeField::MARKDOWN_T:
             return ['label' => $label, 'required' => false, 'attr' => ['class' => 'markdown_textarea', 'data-desc' => $field->getDescription(), 'data-min-length' => $field->getMinLength(), 'data-max-length' => $field->getMaxLength(), 'data-dev-name' => $devName]];
         default:
             return ['label' => $label, 'required' => false, 'attr' => ['data-desc' => $field->getDescription(), 'data-min-length' => $field->getMinLength(), 'data-max-length' => $field->getMaxLength(), 'data-dev-name' => $devName]];
     }
 }
 /**
  * Get common options for your node-type field form components.
  *
  * @param  NodeTypeField $field
  *
  * @return array
  */
 public function getDefaultOptions(NodeTypeField $field)
 {
     $label = $field->getLabel();
     $devName = '{{ nodeSource.' . StringHandler::camelCase($field->getName()) . ' }}';
     $options = ['label' => $label, 'required' => false, 'attr' => ['data-field-group' => null !== $field->getGroupName() && '' != $field->getGroupName() ? $field->getGroupName() : 'default', 'data-dev-name' => $devName, 'autocomplete' => 'off']];
     if ('' !== $field->getDescription()) {
         $options['attr']['data-desc'] = $field->getDescription();
     }
     if ($field->getMinLength() > 0) {
         $options['attr']['data-min-length'] = $field->getMinLength();
     }
     if ($field->getMaxLength() > 0) {
         $options['attr']['data-max-length'] = $field->getMaxLength();
     }
     return $options;
 }