You are here

public function TypedDataDefinitionTest::testLists in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/TypedData/TypedDataDefinitionTest.php \Drupal\KernelTests\Core\TypedData\TypedDataDefinitionTest::testLists()
  2. 10 core/tests/Drupal/KernelTests/Core/TypedData/TypedDataDefinitionTest.php \Drupal\KernelTests\Core\TypedData\TypedDataDefinitionTest::testLists()

Tests deriving metadata about list items.

File

core/tests/Drupal/KernelTests/Core/TypedData/TypedDataDefinitionTest.php, line 37

Class

TypedDataDefinitionTest
Tests deriving metadata of core data types.

Namespace

Drupal\KernelTests\Core\TypedData

Code

public function testLists() {
  $list_definition = ListDataDefinition::create('string');
  $this
    ->assertInstanceOf(ListDataDefinitionInterface::class, $list_definition);
  $item_definition = $list_definition
    ->getItemDefinition();
  $this
    ->assertInstanceOf(DataDefinitionInterface::class, $item_definition);
  $this
    ->assertEqual($item_definition
    ->getDataType(), 'string');

  // Test using the definition factory.
  $list_definition2 = $this->typedDataManager
    ->createListDataDefinition('string');
  $this
    ->assertInstanceOf(ListDataDefinitionInterface::class, $list_definition2);
  $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
    ->assertInstanceOf(ListDataDefinitionInterface::class, $list_definition);
  $this
    ->assertEqual($list_definition
    ->getDataType(), 'list');
  $this
    ->assertEqual($list_definition
    ->getItemDefinition()
    ->getDataType(), 'any');
}