function FieldTest::testQueryWithGroupByForBaseField
Tests query with group by for base field.
@legacy-covers ::query
File
- 
              core/modules/ views/ tests/ src/ Unit/ Plugin/ field/ FieldTest.php, line 484 
Class
Namespace
Drupal\Tests\views\Unit\Plugin\fieldCode
public function testQueryWithGroupByForBaseField() : void {
  $definition = [
    'entity_type' => 'test_entity',
    'field_name' => 'title',
  ];
  $handler = new EntityField([], 'field', $definition, $this->entityTypeManager, $this->formatterPluginManager, $this->fieldTypePluginManager, $this->languageManager, $this->renderer, $this->entityRepository, $this->entityFieldManager, $this->entityTypeBundleInfo);
  $handler->view = $this->executable;
  $handler->view->field = [
    $handler,
  ];
  $this->setupLanguageRenderer($handler, $definition);
  $field_storage = $this->getBaseFieldStorage();
  $this->entityFieldManager
    ->expects($this->any())
    ->method('getFieldStorageDefinitions')
    ->with('test_entity')
    ->willReturn([
    'title' => $field_storage,
  ]);
  $table_mapping = $this->createMock('Drupal\\Core\\Entity\\Sql\\TableMappingInterface');
  $table_mapping->expects($this->any())
    ->method('getFieldColumnName')
    ->with($field_storage, 'value')
    ->willReturn('title');
  $entity_storage = $this->createMock('Drupal\\Core\\Entity\\Sql\\SqlEntityStorageInterface');
  $entity_storage->expects($this->any())
    ->method('getTableMapping')
    ->willReturn($table_mapping);
  $this->entityTypeManager
    ->expects($this->any())
    ->method('getStorage')
    ->with('test_entity')
    ->willReturn($entity_storage);
  $options = [
    'group_column' => 'value',
    'group_columns' => [],
    'table' => 'test_entity_table',
  ];
  $handler->init($this->executable, $this->display, $options);
  $query = $this->getMockBuilder('Drupal\\views\\Plugin\\views\\query\\Sql')
    ->disableOriginalConstructor()
    ->getMock();
  $query->expects($this->once())
    ->method('ensureTable')
    ->with('test_entity_table', NULL)
    ->willReturn('test_entity_table');
  // Ensure that we add the title field to the query, if we group by some
  // other field in the view.
  $query->expects($this->once())
    ->method('addField')
    ->with('test_entity_table', 'title');
  $this->executable->query = $query;
  $handler->query(TRUE);
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
