entity_reference_uuid-8.x-1.x-dev/tests/src/Kernel/Views/EntityForwardNodeRef.php
tests/src/Kernel/Views/EntityForwardNodeRef.php
<?php
namespace Drupal\Tests\entity_reference_uuid\Kernel\Views;
use Drupal\views\Views;
/**
* A test.
*
* @group entity_reference_uuid
*/
class EntityForwardNodeRef extends UuidViewsKernelTestBase {
/**
* Views to be enabled.
*
* @var array
*/
public static $testViews = [
'entity_forward_node_reference',
'entity_forward_node_reference_unfiltered',
];
/**
* Tests view.
*/
public function testView() {
// This is a view of test_entity_two entities.
$view = Views::getView('entity_forward_node_reference');
$this->executeView($view);
// The fixtures created 4 entities of test_entity_two, and 3 reference
// a test_nodetype_one.
$this->assertCount(3, $view->result);
$expected_uuids = [
'83109432-2657-4217-bb1a-9bed7ef78599',
'4ccccf2e-805c-421e-b029-bfa79dc7b006',
'16b64581-e212-4a1e-a0c7-c471bf914eea',
];
foreach ($view->result as $index => $row) {
$this->assertEquals($expected_uuids[$index], $row->_entity->uuid());
}
$expected_entities = [
'f4924e8b-133b-4d37-b25b-542341850639',
'f4924e8b-133b-4d37-b25b-542341850639',
'cc505ae3-aeb8-4883-bc8d-4fd1906ce0f1',
];
foreach ($view->result as $index => $row) {
if ($expected_entities[$index]) {
$this->assertEquals($expected_entities[$index], $row->_relationship_entities['node_one_ref']->uuid());
}
}
// Set the field of the node referenced by 2 entities to a value not allowed
// by the filter.
$this->entities['f4924e8b-133b-4d37-b25b-542341850639']->set('field_test_nodetype_one_text', 'llama');
$this->entities['f4924e8b-133b-4d37-b25b-542341850639']->save();
$view = Views::getView('entity_forward_node_reference');
$this->executeView($view);
$this->assertCount(1, $view->result);
// This is a view of test_entity_two entities that's not filtered, but
// the relationship is required.
$view = Views::getView('entity_forward_node_reference_unfiltered');
$this->executeView($view);
// The fixtures created 4 entities of test_entity_two, and 3 reference
// a test_nodetype_one and one a test_nodetype_two.
$this->assertCount(4, $view->result);
$expected_uuids = [
'208adf04-b0ea-4d8c-b744-e574ec97d1d2',
'83109432-2657-4217-bb1a-9bed7ef78599',
'4ccccf2e-805c-421e-b029-bfa79dc7b006',
'16b64581-e212-4a1e-a0c7-c471bf914eea',
];
foreach ($view->result as $index => $row) {
$this->assertEquals($expected_uuids[$index], $row->_entity->uuid());
}
}
}
