public function EntityTypedDataDefinitionTest::testFields in Drupal 8
Same name and namespace in other branches
- 9 core/tests/Drupal/KernelTests/Core/Entity/EntityTypedDataDefinitionTest.php \Drupal\KernelTests\Core\Entity\EntityTypedDataDefinitionTest::testFields()
- 10 core/tests/Drupal/KernelTests/Core/Entity/EntityTypedDataDefinitionTest.php \Drupal\KernelTests\Core\Entity\EntityTypedDataDefinitionTest::testFields()
Tests deriving metadata about fields.
File
- core/
tests/ Drupal/ KernelTests/ Core/ Entity/ EntityTypedDataDefinitionTest.php, line 49
Class
- EntityTypedDataDefinitionTest
- Tests deriving metadata of entity and field data types.
Namespace
Drupal\KernelTests\Core\EntityCode
public function testFields() {
$field_definition = BaseFieldDefinition::create('integer');
// Fields are lists of complex data.
$this
->assertInstanceOf(ListDataDefinitionInterface::class, $field_definition);
$this
->assertNotInstanceOf(ComplexDataDefinitionInterface::class, $field_definition);
$field_item_definition = $field_definition
->getItemDefinition();
$this
->assertNotInstanceOf(ListDataDefinitionInterface::class, $field_item_definition);
$this
->assertInstanceOf(ComplexDataDefinitionInterface::class, $field_item_definition);
// Derive metadata about field item properties.
$this
->assertEqual(array_keys($field_item_definition
->getPropertyDefinitions()), [
'value',
]);
$this
->assertEqual($field_item_definition
->getPropertyDefinition('value')
->getDataType(), 'integer');
$this
->assertEqual($field_item_definition
->getMainPropertyName(), 'value');
$this
->assertNull($field_item_definition
->getPropertyDefinition('invalid'));
// Test accessing field item property metadata via the field definition.
$this
->assertInstanceOf(FieldDefinitionInterface::class, $field_definition);
$this
->assertEqual(array_keys($field_definition
->getPropertyDefinitions()), [
'value',
]);
$this
->assertEqual($field_definition
->getPropertyDefinition('value')
->getDataType(), 'integer');
$this
->assertEqual($field_definition
->getMainPropertyName(), 'value');
$this
->assertNull($field_definition
->getPropertyDefinition('invalid'));
// Test using the definition factory for field item lists and field items.
$field_item = $this->typedDataManager
->createDataDefinition('field_item:integer');
$this
->assertNotInstanceOf(ListDataDefinitionInterface::class, $field_item);
$this
->assertInstanceOf(ComplexDataDefinitionInterface::class, $field_item);
// Comparison should ignore the internal static cache, so compare the
// serialized objects instead.
$this
->assertEqual(serialize($field_item_definition), serialize($field_item));
$field_definition2 = $this->typedDataManager
->createListDataDefinition('field_item:integer');
$this
->assertInstanceOf(ListDataDefinitionInterface::class, $field_definition2);
$this
->assertNotInstanceOf(ComplexDataDefinitionInterface::class, $field_definition2);
$this
->assertEqual(serialize($field_definition), serialize($field_definition2));
}