function FieldDefinitionTest::testFieldDefaultValue
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php \Drupal\Tests\Core\Entity\FieldDefinitionTest::testFieldDefaultValue()
- 8.9.x core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php \Drupal\Tests\Core\Entity\FieldDefinitionTest::testFieldDefaultValue()
- 11.x core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php \Drupal\Tests\Core\Entity\FieldDefinitionTest::testFieldDefaultValue()
@covers ::getDefaultValue @covers ::setDefaultValue @dataProvider factoryTypeProvider
File
-
core/
tests/ Drupal/ Tests/ Core/ Entity/ FieldDefinitionTest.php, line 189
Class
- FieldDefinitionTest
- Unit test for the FieldDefinition class.
Namespace
Drupal\Tests\Core\EntityCode
public function testFieldDefaultValue($factory_name) : void {
$definition = $this->initializeFieldUsingFactory($factory_name);
$this->assertEquals([], $definition->getDefaultValueLiteral());
$default_value = [
'value' => $this->randomMachineName(),
];
$expected_default_value = [
$default_value,
];
$definition->setDefaultValue($default_value);
$entity = $this->getMockBuilder(ContentEntityBaseMockableClass::class)
->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');
$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([]);
$this->assertEquals([], $definition->getDefaultValue($entity));
// Set default value with NULL.
$definition->setDefaultValue(NULL);
$this->assertEquals([], $definition->getDefaultValue($entity));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.