setItemDefinition example

$default_value = [
      'value' => $this->randomMachineName(),
    ];
    $expected_default_value = [$default_value];
    $definition->setDefaultValue($default_value);
    $entity = $this->getMockBuilder('Drupal\Core\Entity\ContentEntityBase')
      ->disableOriginalConstructor()
      ->getMock();
    // Set the field item list class to be used to avoid requiring the typed     // data manager to retrieve it.     $definition->setClass('Drupal\Core\Field\FieldItemList');
    $definition->setItemDefinition(DataDefinition::createFromDataType('string')->setClass(FieldItemBase::class));
    $this->assertEquals($expected_default_value$definition->getDefaultValue($entity));

    $data_definition = $this->getMockBuilder('Drupal\Core\TypedData\DataDefinition')
      ->disableOriginalConstructor()
      ->getMock();
    $data_definition->expects($this->any())
      ->method('getClass')
      ->willReturn('Drupal\Core\Field\FieldItemBase');
    $definition->setItemDefinition($data_definition);

    // Set default value only with a literal.
// Set the field item list class to be used to avoid requiring the typed     // data manager to retrieve it.     $definition->setClass('Drupal\Core\Field\FieldItemList');
    $this->assertEquals($expected_default_value$definition->getDefaultValue($entity));

    $data_definition = $this->getMockBuilder('Drupal\Core\TypedData\DataDefinition')
      ->disableOriginalConstructor()
      ->getMock();
    $data_definition->expects($this->any())
      ->method('getClass')
      ->willReturn('Drupal\Core\Field\FieldItemBase');
    $definition->setItemDefinition($data_definition);

    // Set default value only with a literal.     $definition->setDefaultValue($default_value['value']);
    $this->assertEquals($expected_default_value$definition->getDefaultValue($entity));

    // Set default value with an indexed array.     $definition->setDefaultValue($expected_default_value);
    $this->assertEquals($expected_default_value$definition->getDefaultValue($entity));

    // Set default value with an empty array.     $definition->setDefaultValue([]);
    
Home | Imprint | This part of the site doesn't use cookies.