public function EntityTypedDataDefinitionTest::testEntities in Zircon Profile 8.0
Same name and namespace in other branches
- 8 core/modules/system/src/Tests/Entity/EntityTypedDataDefinitionTest.php \Drupal\system\Tests\Entity\EntityTypedDataDefinitionTest::testEntities()
Tests deriving metadata about entities.
File
- core/
modules/ system/ src/ Tests/ Entity/ EntityTypedDataDefinitionTest.php, line 88 - Contains \Drupal\system\Tests\Entity\EntityTypedDataDefinitionTest.
Class
- EntityTypedDataDefinitionTest
- Tests deriving metadata of entity and field data types.
Namespace
Drupal\system\Tests\EntityCode
public function testEntities() {
$entity_definition = EntityDataDefinition::create('node');
// Entities are complex data.
$this
->assertFalse($entity_definition instanceof ListDataDefinitionInterface);
$this
->assertTrue($entity_definition instanceof ComplexDataDefinitionInterface);
$field_definitions = $entity_definition
->getPropertyDefinitions();
// Comparison should ignore the internal static cache, so compare the
// serialized objects instead.
$this
->assertEqual(serialize($field_definitions), serialize(\Drupal::entityManager()
->getBaseFieldDefinitions('node')));
$this
->assertEqual($entity_definition
->getPropertyDefinition('title')
->getItemDefinition()
->getDataType(), 'field_item:string');
$this
->assertNull($entity_definition
->getMainPropertyName());
$this
->assertNull($entity_definition
->getPropertyDefinition('invalid'));
$entity_definition2 = $this->typedDataManager
->createDataDefinition('entity:node');
$this
->assertFalse($entity_definition2 instanceof ListDataDefinitionInterface);
$this
->assertTrue($entity_definition2 instanceof ComplexDataDefinitionInterface);
$this
->assertEqual(serialize($entity_definition), serialize($entity_definition2));
// Test that the definition factory creates the right definitions for all
// entity data types variants.
$this
->assertEqual($this->typedDataManager
->createDataDefinition('entity'), EntityDataDefinition::create());
$this
->assertEqual($this->typedDataManager
->createDataDefinition('entity:node'), EntityDataDefinition::create('node'));
// Config entities don't support typed data.
$entity_definition = EntityDataDefinition::create('node_type');
$this
->assertEqual(array(), $entity_definition
->getPropertyDefinitions());
}