You are here

public function DefaultTableMappingTest::testGetAllColumns in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php \Drupal\Tests\Core\Entity\Sql\DefaultTableMappingTest::testGetAllColumns()

Tests DefaultTableMapping::getAllColumns().

@covers ::__construct @covers ::getAllColumns @covers ::getFieldNames @covers ::getColumnNames @covers ::setFieldNames @covers ::getExtraColumns @covers ::setExtraColumns

File

core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php, line 71

Class

DefaultTableMappingTest
@coversDefaultClass \Drupal\Core\Entity\Sql\DefaultTableMapping @group Entity

Namespace

Drupal\Tests\Core\Entity\Sql

Code

public function testGetAllColumns() {

  // Set up single-column and multi-column definitions.
  $definitions['id'] = $this
    ->setUpDefinition('id', [
    'value',
  ]);
  $definitions['name'] = $this
    ->setUpDefinition('name', [
    'value',
  ]);
  $definitions['type'] = $this
    ->setUpDefinition('type', [
    'value',
  ]);
  $definitions['description'] = $this
    ->setUpDefinition('description', [
    'value',
    'format',
  ]);
  $definitions['owner'] = $this
    ->setUpDefinition('owner', [
    'target_id',
    'target_revision_id',
  ]);
  $table_mapping = new TestDefaultTableMapping($this->entityType, $definitions);
  $expected = [];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));

  // Test adding field columns.
  $table_mapping
    ->setFieldNames('test', [
    'id',
  ]);
  $expected = [
    'id',
  ];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));
  $table_mapping
    ->setFieldNames('test', [
    'id',
    'name',
  ]);
  $expected = [
    'id',
    'name',
  ];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));
  $table_mapping
    ->setFieldNames('test', [
    'id',
    'name',
    'type',
  ]);
  $expected = [
    'id',
    'name',
    'type',
  ];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));
  $table_mapping
    ->setFieldNames('test', [
    'id',
    'name',
    'type',
    'description',
  ]);
  $expected = [
    'id',
    'name',
    'type',
    'description__value',
    'description__format',
  ];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));
  $table_mapping
    ->setFieldNames('test', [
    'id',
    'name',
    'type',
    'description',
    'owner',
  ]);
  $expected = [
    'id',
    'name',
    'type',
    'description__value',
    'description__format',
    'owner__target_id',
    'owner__target_revision_id',
  ];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));

  // Test adding extra columns.
  $table_mapping
    ->setFieldNames('test', []);
  $table_mapping
    ->setExtraColumns('test', [
    'default_langcode',
  ]);
  $expected = [
    'default_langcode',
  ];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));
  $table_mapping
    ->setExtraColumns('test', [
    'default_langcode',
    'default_revision',
  ]);
  $expected = [
    'default_langcode',
    'default_revision',
  ];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));

  // Test adding both field and extra columns.
  $table_mapping
    ->setFieldNames('test', [
    'id',
    'name',
    'type',
    'description',
    'owner',
  ]);
  $table_mapping
    ->setExtraColumns('test', [
    'default_langcode',
    'default_revision',
  ]);
  $expected = [
    'id',
    'name',
    'type',
    'description__value',
    'description__format',
    'owner__target_id',
    'owner__target_revision_id',
    'default_langcode',
    'default_revision',
  ];
  $this
    ->assertSame($expected, $table_mapping
    ->getAllColumns('test'));
}