function SqlContentEntityStorageTest::testGetTableMappingRevisionable

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php \Drupal\Tests\Core\Entity\Sql\SqlContentEntityStorageTest::testGetTableMappingRevisionable()
  2. 8.9.x core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php \Drupal\Tests\Core\Entity\Sql\SqlContentEntityStorageTest::testGetTableMappingRevisionable()
  3. 11.x core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php \Drupal\Tests\Core\Entity\Sql\SqlContentEntityStorageTest::testGetTableMappingRevisionable()

Tests getTableMapping() with a revisionable, non-translatable entity type.

@covers ::__construct
@covers ::getTableMapping

@dataProvider providerTestGetTableMappingSimple

Parameters

string[] $entity_keys: A map of entity keys to use for the mocked entity type.

File

core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php, line 586

Class

SqlContentEntityStorageTest
@coversDefaultClass \Drupal\Core\Entity\Sql\SqlContentEntityStorage[[api-linebreak]] @group Entity

Namespace

Drupal\Tests\Core\Entity\Sql

Code

public function testGetTableMappingRevisionable(array $entity_keys) : void {
  // This allows to re-use the data provider.
  $entity_keys = [
    'id' => $entity_keys['id'],
    'revision' => 'test_revision',
    'bundle' => $entity_keys['bundle'],
    'uuid' => $entity_keys['uuid'],
  ];
  $this->entityType
    ->expects($this->exactly(4))
    ->method('isRevisionable')
    ->willReturn(TRUE);
  $this->entityType
    ->expects($this->any())
    ->method('getKey')
    ->willReturnMap([
    [
      'id',
      $entity_keys['id'],
    ],
    [
      'uuid',
      $entity_keys['uuid'],
    ],
    [
      'bundle',
      $entity_keys['bundle'],
    ],
    [
      'revision',
      $entity_keys['revision'],
    ],
  ]);
  $this->entityType
    ->expects($this->any())
    ->method('getRevisionMetadataKeys')
    ->willReturn([]);
  $this->setUpEntityStorage();
  $mapping = $this->entityStorage
    ->getTableMapping();
  $expected = [
    'entity_test',
    'entity_test_revision',
  ];
  $this->assertEquals($expected, $mapping->getTableNames());
  $expected = array_values(array_filter($entity_keys));
  $this->assertEquals($expected, $mapping->getFieldNames('entity_test'));
  $expected = [
    $entity_keys['id'],
    $entity_keys['revision'],
  ];
  $this->assertEquals($expected, $mapping->getFieldNames('entity_test_revision'));
  $this->assertEquals([], $mapping->getExtraColumns('entity_test'));
  $this->assertEquals([], $mapping->getExtraColumns('entity_test_revision'));
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.