function EntityReferenceRelationshipTest::testGroupByWithEmptyRelationships
Same name in other branches
- 9 core/modules/field/tests/src/Kernel/EntityReference/Views/EntityReferenceRelationshipTest.php \Drupal\Tests\field\Kernel\EntityReference\Views\EntityReferenceRelationshipTest::testGroupByWithEmptyRelationships()
- 8.9.x core/modules/field/tests/src/Kernel/EntityReference/Views/EntityReferenceRelationshipTest.php \Drupal\Tests\field\Kernel\EntityReference\Views\EntityReferenceRelationshipTest::testGroupByWithEmptyRelationships()
- 11.x core/modules/field/tests/src/Kernel/EntityReference/Views/EntityReferenceRelationshipTest.php \Drupal\Tests\field\Kernel\EntityReference\Views\EntityReferenceRelationshipTest::testGroupByWithEmptyRelationships()
Tests group by with optional and empty relationship.
File
-
core/
modules/ field/ tests/ src/ Kernel/ EntityReference/ Views/ EntityReferenceRelationshipTest.php, line 294
Class
- EntityReferenceRelationshipTest
- Tests entity reference relationship data.
Namespace
Drupal\Tests\field\Kernel\EntityReference\ViewsCode
public function testGroupByWithEmptyRelationships() : void {
$entities = [];
// Create 4 entities with name1 and 3 entities with name2.
for ($i = 1; $i <= 4; $i++) {
$entity = [
'name' => 'name' . $i,
];
$entity = EntityTest::create($entity);
$entities[] = $entity;
$entity->save();
}
$entity = EntityTestMul::create([
'name' => 'name1',
]);
$entity->field_data_test_unlimited = [
[
'target_id' => $entities[0]->id(),
],
[
'target_id' => $entities[1]->id(),
],
[
'target_id' => $entities[2]->id(),
],
];
$entity->save();
$entity = EntityTestMul::create([
'name' => 'name2',
]);
$entity->field_data_test_unlimited = [
[
'target_id' => $entities[0]->id(),
],
[
'target_id' => $entities[1]->id(),
],
];
$entity->save();
$entity = EntityTestMul::create([
'name' => 'name3',
]);
$entity->field_data_test_unlimited->target_id = $entities[0]->id();
$entity->save();
$view = Views::getView('test_entity_reference_group_by_empty_relationships');
$this->executeView($view);
$this->assertCount(4, $view->result);
// First three results should contain a reference from EntityTestMul.
$this->assertNotEmpty($view->getStyle()
->getField(0, 'name_2'));
$this->assertNotEmpty($view->getStyle()
->getField(1, 'name_2'));
$this->assertNotEmpty($view->getStyle()
->getField(2, 'name_2'));
// Fourth result has no reference from EntityTestMul hence the output for
// should be empty.
$this->assertEquals('', $view->getStyle()
->getField(3, 'name_2'));
$fields = $view->field;
// Check getValue for reference with a value. The first 3 rows reference
// EntityTestMul, so have value 'name1'.
$this->assertEquals('name1', $fields['name_2']->getValue($view->result[0]));
$this->assertEquals('name1', $fields['name_2']->getValue($view->result[1]));
$this->assertEquals('name1', $fields['name_2']->getValue($view->result[2]));
// Ensure getValue works on empty references.
$this->assertNull($fields['name_2']->getValue($view->result[3]));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.