function FieldTest::testClickSortWithConfiguredField

Same name and namespace in other branches
  1. 8.9.x core/modules/views/tests/src/Unit/Plugin/field/FieldTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldTest::testClickSortWithConfiguredField()
  2. 10 core/modules/views/tests/src/Unit/Plugin/field/FieldTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldTest::testClickSortWithConfiguredField()
  3. 11.x core/modules/views/tests/src/Unit/Plugin/field/FieldTest.php \Drupal\Tests\views\Unit\Plugin\field\FieldTest::testClickSortWithConfiguredField()

@dataProvider providerSortOrders

@covers ::clickSort

Parameters

string $order: The sort order.

File

core/modules/views/tests/src/Unit/Plugin/field/FieldTest.php, line 400

Class

FieldTest
@coversDefaultClass <a href="/api/drupal/core%21modules%21views%21src%21Plugin%21views%21field%21EntityField.php/class/EntityField/9" title="A field that displays entity field data." class="local">\Drupal\views\Plugin\views\field\EntityField</a> @group views

Namespace

Drupal\Tests\views\Unit\Plugin\field

Code

public function testClickSortWithConfiguredField($order) {
    $definition = [
        'entity_type' => 'test_entity',
        'field_name' => 'body',
    ];
    $handler = new EntityField([], 'field', $definition, $this->entityTypeManager, $this->formatterPluginManager, $this->fieldTypePluginManager, $this->languageManager, $this->renderer, $this->entityRepository, $this->entityFieldManager);
    $handler->view = $this->executable;
    $field_storage = $this->getConfigFieldStorage();
    $this->entityFieldManager
        ->expects($this->atLeastOnce())
        ->method('getFieldStorageDefinitions')
        ->with('test_entity')
        ->willReturn([
        'body' => $field_storage,
    ]);
    $table_mapping = $this->createMock('Drupal\\Core\\Entity\\Sql\\TableMappingInterface');
    $table_mapping->expects($this->atLeastOnce())
        ->method('getFieldColumnName')
        ->with($field_storage, 'value')
        ->willReturn('body_value');
    $entity_storage = $this->createMock('Drupal\\Core\\Entity\\Sql\\SqlEntityStorageInterface');
    $entity_storage->expects($this->atLeastOnce())
        ->method('getTableMapping')
        ->willReturn($table_mapping);
    $this->entityTypeManager
        ->expects($this->atLeastOnce())
        ->method('getStorage')
        ->with('test_entity')
        ->willReturn($entity_storage);
    // Setup a click sort configuration.
    $options = [
        'click_sort_column' => 'value',
        'table' => 'test_entity__body',
    ];
    $handler->init($this->executable, $this->display, $options);
    $handler->query = $this->getMockBuilder('Drupal\\views\\Plugin\\views\\query\\Sql')
        ->disableOriginalConstructor()
        ->getMock();
    $handler->query
        ->expects($this->atLeastOnce())
        ->method('ensureTable')
        ->with('test_entity__body', NULL)
        ->willReturn('test_entity__body_alias');
    $handler->query
        ->expects($this->atLeastOnce())
        ->method('addOrderBy')
        ->with(NULL, NULL, $order, 'test_entity__body_alias.body_value', []);
    $handler->clickSort($order);
}

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