ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ColumnFactoryTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 require_once 'components/ILIAS/UI/tests/AbstractFactoryTestCase.php';
22 
24 use ILIAS\Data;
25 
27 {
28  public static array $kitchensink_info_settings = [
29  "text" => ["context" => false, "rules" => false],
30  "number" => ["context" => false, "rules" => false],
31  "date" => ["context" => false, "rules" => false],
32  "boolean" => ["context" => false, "rules" => false],
33  "eMail" => ["context" => false, "rules" => false],
34  "status" => ["context" => false, "rules" => false],
35  "statusIcon" => ["context" => false, "rules" => false],
36  "timeSpan" => ["context" => false, "rules" => false],
37  "link" => ["context" => false, "rules" => false],
38  "linkListing" => ["context" => false, "rules" => false]
39  ];
40 
41  public static string $factory_title = 'ILIAS\\UI\\Component\\Table\\Column\\Factory';
42 
43  protected function buildColumnFactory()
44  {
45  $lng = $this->getMockBuilder(\ILIAS\Language\Language::class)
46  ->disableOriginalConstructor()
47  ->getMock();
48  $lng->method('txt')->willReturnCallback(fn($v) => $v);
49 
50  return new \ILIAS\UI\Implementation\Component\Table\Column\Factory($lng);
51  }
52 
53  public static function getColumnTypeProvider(): array
54  {
55  $date_format = (new Data\Factory())->dateFormat()->germanShort();
56 
57  return [
58  [static fn($f) => [Column\Text::class, $f->text("")]],
59  [static fn($f) => [Column\Text::class, $f->text("")]],
60  [static fn($f) => [Column\Date::class, $f->date("", $date_format)]],
61  [static fn($f) => [Column\TimeSpan::class, $f->timespan("", $date_format)]],
62  [static fn($f) => [Column\Number::class, $f->number("")]],
63  [static fn($f) => [Column\Boolean::class, $f->boolean("", '1', '0')]],
64  [static fn($f) => [Column\Status::class, $f->status("")]],
65  [static fn($f) => [Column\StatusIcon::class, $f->statusIcon("")]],
66  [static fn($f) => [Column\Link::class, $f->link("")]],
67  [static fn($f) => [Column\EMail::class, $f->eMail("")]],
68  [static fn($f) => [Column\LinkListing::class, $f->linkListing("")]]
69  ];
70  }
71 
75  public function testDataTableColsImplementInterfaces(\Closure $col): void
76  {
77  $factory = $this->buildColumnFactory();
78  list($class, $instance) = $col($factory);
79  $this->assertInstanceOf(Column\Column::class, $instance);
80  $this->assertInstanceOf($class, $instance);
81  }
82 }
Interface Observer Contains several chained tasks and infos about them.
static getColumnTypeProvider()
testDataTableColsImplementInterfaces(\Closure $col)
getColumnTypeProvider
static array $kitchensink_info_settings
global $lng
Definition: privfeed.php:31
static string $factory_title
A Column describes the form of presentation for a certain aspect of data, i.e.
Definition: Column.php:27
Defines tests every SHOULD pass UI-factory.