ILIAS  release_8 Revision v8.24
ilBuddySystemStateFactoryTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22{
24
25 protected function setUp(): void
26 {
27 parent::setUp();
28
29 $lng = $this->getMockBuilder(ilLanguage::class)->disableOriginalConstructor()->getMock();
30 $lng->method('txt')->willReturnCallback(static function (string $keyword): string {
31 return $keyword;
32 });
33
36 }
37
39 {
40 $this->assertInstanceOf(
41 ilBuddySystemUnlinkedRelationState::class,
42 $this->stateFactory->getInitialState()
43 );
44 }
45
46 public function testStatesCanBeReceivedAsOptionMap(): void
47 {
48 $validStates = $this->stateFactory->getValidStates();
49 $this->assertThat(count($validStates), $this->greaterThan(0));
50
51 foreach ($this->stateFactory->getValidStates() as $state) {
52 $tableFilterStateMapper = $this->stateFactory->getTableFilterStateMapper($state);
53
54 $otions = $tableFilterStateMapper->optionsForState();
55 $this->assertThat(count($otions), $this->greaterThan(0));
56
57 array_walk($otions, function (string $value, string $key): void {
58 $this->assertNotEmpty($value, 'Option value for table filter must not be empty');
59 $this->assertNotEmpty($key, 'Option key for table filter must not be empty');
60 });
61 }
62 }
63
64 public function testRelationsCanBeFilteredByState(): void
65 {
66 $validStates = $this->stateFactory->getValidStates();
67 $this->assertThat(count($validStates), $this->greaterThan(0));
68
69 foreach ($this->stateFactory->getValidStates() as $state) {
70 $tableFilterStateMapper = $this->stateFactory->getTableFilterStateMapper($state);
71
72 $otions = $tableFilterStateMapper->optionsForState();
73 $this->assertThat(count($otions), $this->greaterThan(0));
74
75 array_walk($otions, function (string $value, string $key) use ($tableFilterStateMapper, $state): void {
76 if ($state instanceof ilBuddySystemRequestedRelationState) {
77 if ($key === get_class($state) . '_a') {
78 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
79 $relation->method('isOwnedByActor')->willReturn(false);
80
81 $this->assertFalse($tableFilterStateMapper->filterMatchesRelation($key, $relation));
82
83 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
84 $relation->method('isOwnedByActor')->willReturn(true);
85 $this->assertTrue($tableFilterStateMapper->filterMatchesRelation($key, $relation));
86 } elseif ($key === get_class($state) . '_p') {
87 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
88 $relation->method('isOwnedByActor')->willReturn(true);
89
90 $this->assertFalse($tableFilterStateMapper->filterMatchesRelation($key, $relation));
91
92 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
93 $relation->method('isOwnedByActor')->willReturn(false);
94 }
95 } else {
96 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
97 $this->assertTrue($tableFilterStateMapper->filterMatchesRelation($key, $relation));
98 }
99 });
100 }
101 }
102}
ilBuddySystemRelationStateFactory $stateFactory
string $key
Consumer key/client ID value.
Definition: System.php:193
$lng