You are here

public function TypedDataDefinitionTest::testLists in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php \Drupal\system\Tests\TypedData\TypedDataDefinitionTest::testLists()

Tests deriving metadata about list items.

File

core/modules/system/src/Tests/TypedData/TypedDataDefinitionTest.php, line 42
Contains \Drupal\system\Tests\TypedData\TypedDataDefinitionTest.

Class

TypedDataDefinitionTest
Tests deriving metadata of core data types.

Namespace

Drupal\system\Tests\TypedData

Code

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');

  // Test using the definition factory.
  $list_definition2 = $this->typedDataManager
    ->createListDataDefinition('string');
  $this
    ->assertTrue($list_definition2 instanceof ListDataDefinitionInterface);
  $this
    ->assertEqual($list_definition, $list_definition2);

  // Test creating the definition of data with type 'list', which is the same
  // as creating a definition of a list of items of type 'any'.
  $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');
}