TypedDataDefinitionTest.php in Zircon Profile 8.0
File
core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php
View source
<?php
namespace Drupal\system\Tests\TypedData;
use Drupal\Core\TypedData\ComplexDataDefinitionInterface;
use Drupal\Core\TypedData\DataDefinition;
use Drupal\Core\TypedData\DataDefinitionInterface;
use Drupal\Core\TypedData\DataReferenceDefinition;
use Drupal\Core\TypedData\DataReferenceDefinitionInterface;
use Drupal\Core\TypedData\ListDataDefinition;
use Drupal\Core\TypedData\ListDataDefinitionInterface;
use Drupal\Core\TypedData\MapDataDefinition;
use Drupal\simpletest\KernelTestBase;
class TypedDataDefinitionTest extends KernelTestBase {
protected $typedDataManager;
protected function setUp() {
parent::setup();
$this->typedDataManager = $this->container
->get('typed_data_manager');
}
public function testLists() {
$list_definition = ListDataDefinition::create('string');
$this
->assertTrue($list_definition instanceof ListDataDefinitionInterface);
$item_definition = $list_definition
->getItemDefinition();
$this
->assertTrue($item_definition instanceof DataDefinitionInterface);
$this
->assertEqual($item_definition
->getDataType(), 'string');
$list_definition2 = $this->typedDataManager
->createListDataDefinition('string');
$this
->assertTrue($list_definition2 instanceof ListDataDefinitionInterface);
$this
->assertEqual($list_definition, $list_definition2);
$list_definition = $this->typedDataManager
->createDataDefinition('list');
$this
->assertTrue($list_definition instanceof ListDataDefinitionInterface);
$this
->assertEqual($list_definition
->getDataType(), 'list');
$this
->assertEqual($list_definition
->getItemDefinition()
->getDataType(), 'any');
}
public function testMaps() {
$map_definition = MapDataDefinition::create()
->setPropertyDefinition('one', DataDefinition::create('string'))
->setPropertyDefinition('two', DataDefinition::create('string'))
->setPropertyDefinition('three', DataDefinition::create('string'));
$this
->assertTrue($map_definition instanceof ComplexDataDefinitionInterface);
$this
->assertEqual(array_keys($map_definition
->getPropertyDefinitions()), array(
'one',
'two',
'three',
));
$this
->assertEqual($map_definition
->getPropertyDefinition('one')
->getDataType(), 'string');
$this
->assertNull($map_definition
->getMainPropertyName());
$this
->assertNull($map_definition
->getPropertyDefinition('invalid'));
$map_definition2 = $this->typedDataManager
->createDataDefinition('map');
$this
->assertTrue($map_definition2 instanceof ComplexDataDefinitionInterface);
$map_definition2
->setPropertyDefinition('one', DataDefinition::create('string'))
->setPropertyDefinition('two', DataDefinition::create('string'))
->setPropertyDefinition('three', DataDefinition::create('string'));
$this
->assertEqual($map_definition, $map_definition2);
}
public function testDataReferences() {
$language_reference_definition = DataReferenceDefinition::create('language');
$this
->assertTrue($language_reference_definition instanceof DataReferenceDefinitionInterface);
$this
->assertEqual($language_reference_definition
->getTargetDefinition()
->getDataType(), 'language');
$language_reference_definition2 = $this->typedDataManager
->createDataDefinition('language_reference');
$this
->assertTrue($language_reference_definition2 instanceof DataReferenceDefinitionInterface);
$this
->assertEqual($language_reference_definition, $language_reference_definition2);
}
}