entity_reference_uuid-8.x-1.x-dev/tests/src/Kernel/Views/NodeForwardRef.php
tests/src/Kernel/Views/NodeForwardRef.php
<?php
namespace Drupal\Tests\entity_reference_uuid\Kernel\Views;
use Drupal\views\Views;
/**
* A test.
*
* @group entity_reference_uuid
*/
class NodeForwardRef extends UuidViewsKernelTestBase {
/**
* Views to be enabled.
*
* @var array
*/
public static $testViews = [
'node_forward_reference',
'node_forward_reference_unfiltered',
];
/**
* Tests view.
*
* @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
* @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
* @throws \Drupal\Core\Entity\EntityStorageException
*/
public function testView() {
$view = Views::getView('node_forward_reference');
$this->executeView($view);
// The fixtures created 3 nodes of test_nodetype_two, and all 3 reference
// a test_nodetype_one. The 3rd test_nodetype_one will be excluded by the
// filter.
$this->assertCount(2, $view->result);
$expected_uuids = [
'8a4c2dbe-e87d-4edd-a58f-40cb00092ecb',
'3999aafc-8b3c-4005-9bf8-554cbfb0df22',
];
foreach ($view->result as $index => $row) {
$this->assertEquals($expected_uuids[$index], $row->_entity->uuid());
}
// Add another with a reference to a test_nodetype_one with allowed filter
// value.
$test_nodetype_two = [
[
'uuid' => '1e6561c6-5078-4502-95ca-21b8f17d772a',
'title' => 'Mister three',
'field_node_one_ref' => 'f4924e8b-133b-4d37-b25b-542341850639',
],
];
$this->createNodes('test_nodetype_two', $test_nodetype_two);
$view = Views::getView('node_forward_reference');
$this->executeView($view);
$this->assertCount(3, $view->result);
$expected_uuids = [
'8a4c2dbe-e87d-4edd-a58f-40cb00092ecb',
'3999aafc-8b3c-4005-9bf8-554cbfb0df22',
'1e6561c6-5078-4502-95ca-21b8f17d772a',
];
foreach ($view->result as $index => $row) {
$this->assertEquals($expected_uuids[$index], $row->_entity->uuid());
}
// Check the view without filtering on the related node's field. We should
// also see the node with no reference since the relationship is not
// required.
$view = Views::getView('node_forward_reference_unfiltered');
$this->executeView($view);
$this->assertCount(6, $view->result);
$expected_uuids = [
'8a4c2dbe-e87d-4edd-a58f-40cb00092ecb',
'3999aafc-8b3c-4005-9bf8-554cbfb0df22',
'1c73e274-7077-45dc-943a-655259d2ae6f',
'dffc353f-cde2-4d7b-98ad-82f157ffdd72',
'567a1ae4-e542-459c-aef1-976aa66b15b5',
'1e6561c6-5078-4502-95ca-21b8f17d772a',
];
foreach ($view->result as $index => $row) {
$this->assertEquals($expected_uuids[$index], $row->_entity->uuid());
}
}
}
