ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilBuddySystemStateFactoryTestCase.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 fn(string $keyword): string => $keyword);
31
34 }
35
37 {
38 $this->assertInstanceOf(
39 ilBuddySystemUnlinkedRelationState::class,
40 $this->stateFactory->getInitialState()
41 );
42 }
43
44 public function testStatesCanBeReceivedAsOptionMap(): void
45 {
46 $validStates = $this->stateFactory->getValidStates();
47 $this->assertThat(count($validStates), $this->greaterThan(0));
48
49 foreach ($this->stateFactory->getValidStates() as $state) {
50 $tableFilterStateMapper = $this->stateFactory->getTableFilterStateMapper($state);
51
52 $otions = $tableFilterStateMapper->optionsForState();
53 $this->assertThat(count($otions), $this->greaterThan(0));
54
55 array_walk($otions, function (string $value, string $key): void {
56 $this->assertNotEmpty($value, 'Option value for table filter must not be empty');
57 $this->assertNotEmpty($key, 'Option key for table filter must not be empty');
58 });
59 }
60 }
61
62 public function testRelationsCanBeFilteredByState(): void
63 {
64 $validStates = $this->stateFactory->getValidStates();
65 $this->assertThat(count($validStates), $this->greaterThan(0));
66
67 foreach ($this->stateFactory->getValidStates() as $state) {
68 $tableFilterStateMapper = $this->stateFactory->getTableFilterStateMapper($state);
69
70 $otions = $tableFilterStateMapper->optionsForState();
71 $this->assertThat(count($otions), $this->greaterThan(0));
72
73 array_walk($otions, function (string $value, string $key) use ($tableFilterStateMapper, $state): void {
74 if ($state instanceof ilBuddySystemRequestedRelationState) {
75 if ($key === $state::class . '_a') {
76 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
77 $relation->method('isOwnedByActor')->willReturn(false);
78
79 $this->assertFalse($tableFilterStateMapper->filterMatchesRelation($key, $relation));
80
81 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
82 $relation->method('isOwnedByActor')->willReturn(true);
83 $this->assertTrue($tableFilterStateMapper->filterMatchesRelation($key, $relation));
84 } elseif ($key === $state::class . '_p') {
85 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
86 $relation->method('isOwnedByActor')->willReturn(true);
87
88 $this->assertFalse($tableFilterStateMapper->filterMatchesRelation($key, $relation));
89
90 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
91 $relation->method('isOwnedByActor')->willReturn(false);
92 }
93 } else {
94 $relation = $this->getMockBuilder(ilBuddySystemRelation::class)->disableOriginalConstructor()->getMock();
95 $this->assertTrue($tableFilterStateMapper->filterMatchesRelation($key, $relation));
96 }
97 });
98 }
99 }
100}
$relation
ilBuddySystemRelationStateFactory $stateFactory
global $lng
Definition: privfeed.php:31