DefaultTableMappingIntegrationTest.php in Drupal 8
File
core/tests/Drupal/KernelTests/Core/Entity/DefaultTableMappingIntegrationTest.php
View source
<?php
namespace Drupal\KernelTests\Core\Entity;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Field\FieldStorageDefinitionInterface;
use Drupal\Tests\system\Functional\Entity\Traits\EntityDefinitionTestTrait;
class DefaultTableMappingIntegrationTest extends EntityKernelTestBase {
use EntityDefinitionTestTrait;
protected $tableMapping;
public static $modules = [
'entity_test_extra',
];
protected function setUp() {
parent::setUp();
$definitions['multivalued_base_field'] = BaseFieldDefinition::create('string')
->setName('multivalued_base_field')
->setTargetEntityTypeId('entity_test_mulrev')
->setTargetBundle('entity_test_mulrev')
->setCardinality(FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED)
->setTranslatable(FALSE)
->setRevisionable(FALSE);
$this->state
->set('entity_test_mulrev.additional_base_field_definitions', $definitions);
$this->tableMapping = $this->entityTypeManager
->getStorage('entity_test_mulrev')
->getTableMapping();
$this
->applyEntityUpdates('entity_test_mulrev');
}
public function testGetFieldTableName() {
$expected = 'entity_test_mulrev';
$this
->assertEquals($this->tableMapping
->getFieldTableName('uuid'), $expected);
$expected = 'entity_test_mulrev_property_data';
$this
->assertEquals($this->tableMapping
->getFieldTableName('name'), $expected);
$expected = 'entity_test_mulrev__multivalued_base_field';
$this
->assertEquals($this->tableMapping
->getFieldTableName('multivalued_base_field'), $expected);
}
public function testGetTableNames() {
$storage_definitions = \Drupal::service('entity_field.manager')
->getFieldStorageDefinitions('entity_test_mulrev');
$dedicated_data_table = $this->tableMapping
->getDedicatedDataTableName($storage_definitions['multivalued_base_field']);
$dedicated_revision_table = $this->tableMapping
->getDedicatedRevisionTableName($storage_definitions['multivalued_base_field']);
$database_schema = \Drupal::database()
->schema();
$this
->assertTrue($database_schema
->tableExists($dedicated_data_table));
$this
->assertTrue($database_schema
->tableExists($dedicated_revision_table));
$expected = [
'entity_test_mulrev',
'entity_test_mulrev_property_data',
'entity_test_mulrev_revision',
'entity_test_mulrev_property_revision',
$dedicated_data_table,
$dedicated_revision_table,
];
$this
->assertEquals($expected, $this->tableMapping
->getTableNames());
}
}