public function EntityViewsDataTest::testBaseTableFields in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/views/tests/src/Unit/EntityViewsDataTest.php \Drupal\Tests\views\Unit\EntityViewsDataTest::testBaseTableFields()
Tests fields on the base table.
File
- core/
modules/ views/ tests/ src/ Unit/ EntityViewsDataTest.php, line 408 - Contains \Drupal\Tests\views\Unit\EntityViewsDataTest.
Class
- EntityViewsDataTest
- @coversDefaultClass \Drupal\views\EntityViewsData @group Views
Namespace
Drupal\Tests\views\UnitCode
public function testBaseTableFields() {
$base_field_definitions = $this
->setupBaseFields(EntityTest::baseFieldDefinitions($this->baseEntityType));
$user_base_field_definitions = [
'uid' => BaseFieldDefinition::create('integer')
->setLabel(t('ID'))
->setDescription(t('The ID of the user entity.'))
->setReadOnly(TRUE)
->setSetting('unsigned', TRUE),
];
$this->entityManager
->expects($this
->any())
->method('getBaseFieldDefinitions')
->will($this
->returnValueMap([
[
'user',
$user_base_field_definitions,
],
[
'entity_test',
$base_field_definitions,
],
]));
// Setup the table mapping.
$table_mapping = $this
->getMock('Drupal\\Core\\Entity\\Sql\\TableMappingInterface');
$table_mapping
->expects($this
->any())
->method('getTableNames')
->willReturn([
'entity_test',
]);
$table_mapping
->expects($this
->any())
->method('getColumnNames')
->willReturnMap([
[
'id',
[
'value' => 'id',
],
],
[
'uuid',
[
'value' => 'uuid',
],
],
[
'type',
[
'value' => 'type',
],
],
[
'langcode',
[
'value' => 'langcode',
],
],
[
'name',
[
'value' => 'name',
],
],
[
'description',
[
'value' => 'description__value',
'format' => 'description__format',
],
],
[
'homepage',
[
'value' => 'homepage',
],
],
[
'user_id',
[
'target_id' => 'user_id',
],
],
]);
$table_mapping
->expects($this
->any())
->method('getFieldNames')
->willReturnMap([
[
'entity_test',
[
'id',
'uuid',
'type',
'langcode',
'name',
'description',
'homepage',
'user_id',
],
],
]);
$this->entityStorage
->expects($this
->once())
->method('getTableMapping')
->willReturn($table_mapping);
$this
->setupFieldStorageDefinition();
$data = $this->viewsData
->getViewsData();
$this
->assertNumericField($data['entity_test']['id']);
$this
->assertField($data['entity_test']['id'], 'id');
$this
->assertUuidField($data['entity_test']['uuid']);
$this
->assertField($data['entity_test']['uuid'], 'uuid');
$this
->assertStringField($data['entity_test']['type']);
$this
->assertEquals('type', $data['entity_test']['type']['entity field']);
$this
->assertLanguageField($data['entity_test']['langcode']);
$this
->assertField($data['entity_test']['langcode'], 'langcode');
$this
->assertEquals('Original language', $data['entity_test']['langcode']['title']);
$this
->assertStringField($data['entity_test']['name']);
$this
->assertField($data['entity_test']['name'], 'name');
$this
->assertLongTextField($data['entity_test'], 'description');
$this
->assertField($data['entity_test']['description__value'], 'description');
$this
->assertField($data['entity_test']['description__format'], 'description');
$this
->assertUriField($data['entity_test']['homepage']);
$this
->assertField($data['entity_test']['homepage'], 'homepage');
$this
->assertEntityReferenceField($data['entity_test']['user_id']);
$this
->assertField($data['entity_test']['user_id'], 'user_id');
$relationship = $data['entity_test']['user_id']['relationship'];
$this
->assertEquals('users_field_data', $relationship['base']);
$this
->assertEquals('uid', $relationship['base field']);
}