5 * Contains \Drupal\Tests\views\Unit\Plugin\HandlerBaseTest.
8 namespace Drupal\Tests\views\Unit\Plugin;
10 use Drupal\Tests\UnitTestCase;
11 use Drupal\views\Plugin\views\HandlerBase;
14 * @coversDefaultClass \Drupal\views\Plugin\views\HandlerBase
17 class HandlerBaseTest extends UnitTestCase {
24 protected function setUp() {
27 $this->setupViewsData();
28 $this->setupExecutableAndView();
29 $this->setupDisplay();
33 * @covers ::getEntityType
35 public function testGetEntityTypeForFieldOnBaseTable() {
36 $handler = new TestHandler([], 'test_handler', []);
37 $handler->init($this->executable, $this->display);
39 $this->view->expects($this->any())
42 ->willReturn('test_entity_type_table');
43 $this->viewsData->expects($this->any())
45 ->with('test_entity_type_table')
47 'table' => ['entity type' => 'test_entity_type']
49 $handler->setViewsData($this->viewsData);
51 $this->assertEquals('test_entity_type', $handler->getEntityType());
55 * @covers ::getEntityType
57 public function testGetEntityTypeForFieldWithRelationship() {
58 $handler = new TestHandler([], 'test_handler', []);
60 $options = ['relationship' => 'test_relationship'];
61 $handler->init($this->executable, $this->display, $options);
63 $this->display->expects($this->atLeastOnce())
65 ->with('relationships')
66 ->willReturn(['test_relationship' => ['table' => 'test_entity_type_table', 'id' => 'test_relationship', 'field' => 'test_relationship']]);
68 $this->view->expects($this->any())
71 ->willReturn('test_entity_type_table');
73 $this->viewsData->expects($this->any())
76 ['test_entity_type_table', [
77 'table' => ['entity type' => 'test_entity_type'],
78 'test_relationship' => [
80 'base' => 'test_other_entity_type_table',
85 ['test_other_entity_type_table', [
86 'table' => ['entity type' => 'test_other_entity_type'],
89 $handler->setViewsData($this->viewsData);
91 $this->assertEquals('test_other_entity_type', $handler->getEntityType());
97 * Allow testing base handler implementation by extending the abstract class.
99 class TestHandler extends HandlerBase {