public function testAssociationMapping()
    {
        $field = new FieldDescription;
        $field->setAssociationMapping(array(
            'type' => 'integer',
            'fieldName' => 'position'
        ));

        $this->assertEquals('integer', $field->getType());
        $this->assertEquals('integer', $field->getMappingType());
        $this->assertEquals('position', $field->getFieldName());

        // cannot overwrite defined definition
        $field->setAssociationMapping(array(
            'type' => 'overwrite?',
            'fieldName' => 'overwritten'
        ));

        $this->assertEquals('integer', $field->getType());
        $this->assertEquals('integer', $field->getMappingType());
        $this->assertEquals('overwritten', $field->getFieldName());

        $field->setMappingType('string');
        $this->assertEquals('string', $field->getMappingType());
        $this->assertEquals('integer', $field->getType());
    }
Ejemplo n.º 2
0
 /**
  * Returns a new FieldDescription
  *
  * @abstract
  * @return \Sonata\AdminBundle\Admin\ORM\FieldDescription
  */
 public function getNewFieldDescriptionInstance($class, $name, array $options = array())
 {
     $metadata = $this->getMetadata($class);
     $fieldDescription = new FieldDescription();
     $fieldDescription->setName($name);
     $fieldDescription->setOptions($options);
     if (isset($metadata->associationMappings[$name])) {
         $fieldDescription->setAssociationMapping($metadata->associationMappings[$name]);
     }
     if (isset($metadata->fieldMappings[$name])) {
         $fieldDescription->setFieldMapping($metadata->fieldMappings[$name]);
     }
     return $fieldDescription;
 }
Ejemplo n.º 3
0
 /**
  * Returns a new FieldDescription
  *
  * @throws \RunTimeException
  * @param $class
  * @param $name
  * @param array $options
  * @return \Sonata\AdminBundle\Admin\ORM\FieldDescription
  */
 public function getNewFieldDescriptionInstance($class, $name, array $options = array())
 {
     if (!is_string($name)) {
         throw new \RunTimeException('The name argument must be a string');
     }
     $metadata = $this->getMetadata($class);
     $fieldDescription = new FieldDescription();
     $fieldDescription->setName($name);
     $fieldDescription->setOptions($options);
     if (isset($metadata->associationMappings[$name])) {
         $fieldDescription->setAssociationMapping($metadata->associationMappings[$name]);
     }
     if (isset($metadata->fieldMappings[$name])) {
         $fieldDescription->setFieldMapping($metadata->fieldMappings[$name]);
     }
     return $fieldDescription;
 }