public function EntityReferenceRelationshipTest::testGroupByWithEmptyRelationships in Drupal 9
Same name and namespace in other branches
- 8 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() {
$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]));
}