You are here

public function TypedDataDefinitionTest::testMaps 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::testMaps()

Tests deriving metadata about maps.

File

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

Class

TypedDataDefinitionTest
Tests deriving metadata of core data types.

Namespace

Drupal\system\Tests\TypedData

Code

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

  // Test retrieving metadata about contained properties.
  $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'));

  // Test using the definition factory.
  $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);
}