ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
EditableDocumentTableTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
32 
33 require_once __DIR__ . '/../ContainerMock.php';
34 
35 class EditableDocumentTableTest extends TestCase
36 {
37  use ContainerMock;
38 
39  public function testConstruct(): void
40  {
41  $this->assertInstanceOf(EditableDocumentTable::class, new EditableDocumentTable($this->mock(DocumentTable::class), $this->mock(EditLinks::class)));
42  }
43 
44  public function testColumns(): void
45  {
46  $instance = new EditableDocumentTable($this->mockTree(DocumentTable::class, [
47  'columns' => ['foo' => 'bar', 'a' => 'b'],
48  'ui' => $this->mockMethod(UI::class, 'txt', ['actions'], 'txt: actions'),
49  ]), $this->mock(EditLinks::class));
50 
51  $this->assertSame([
52  'delete' => [' ', '', '1%', true],
53  'foo' => 'bar',
54  'a' => 'b',
55  'actions' => ['txt: actions', '', '10%']
56  ], $instance->columns());
57  }
58 
59  public function testConfig(): void
60  {
61  $config = $this->mock(TableConfig::class);
62  $config->expects(self::once())->method('addMultiCommand')->with('deleteDocuments', 'txt: delete');
63  $config->expects(self::once())->method('addCommandButton')->with('saveOrder', 'txt: sorting_save');
64 
65  $ui = $this->mock(UI::class);
66  $ui->method('txt')->willReturnCallback(fn($key) => 'txt: ' . $key);
67 
68  $table = $this->mockTree(DocumentTable::class, ['ui' => $ui]);
69  $table->expects(self::once())->method('config')->with($config);
70 
71  $instance = new EditableDocumentTable($table, $this->mock(EditLinks::class));
72 
73  $instance->config($config);
74  }
75 
76  public function testRows(): void
77  {
78  $select = $this->mock(TableSelection::class);
79  $document = $this->mock(Document::class);
80  $table = $this->mock(DocumentTable::class);
81 
82  $table->expects(self::once())->method('mapSelection')->willReturn([$document]);
83 
84  $instance = new EditableDocumentTable($table, $this->mock(EditLinks::class));
85 
86  $rows = $instance->rows($select);
87  $this->assertSame([$document], $rows);
88  }
89 
90  public function testRow(): void
91  {
92  $instance = new EditableDocumentTable($this->mock(DocumentTable::class), $this->mock(EditLinks::class));
93 
94  $row = $instance->row($this->mock(Document::class), 1);
95  $this->assertSame(['delete', 'order', 'criteria', 'actions'], array_keys($row));
96  }
97 
98  public function testName(): void
99  {
100  $instance = new EditableDocumentTable($this->mock(DocumentTable::class), $this->mock(EditLinks::class));
101  $this->assertSame(EditableDocumentTable::class, $instance->name());
102  }
103 }
ILIAS DI UIServices $ui
string $key
Consumer key/client ID value.
Definition: System.php:193