ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
TriggererTest.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 2018 Richard Klees <richard.klees@concepts-and-training.de> Extended GPL, see docs/LICENSE */
4
5require_once("libs/composer/vendor/autoload.php");
6
9use PHPUnit\Framework\TestCase;
10
12{
14
15 public function _appendTriggeredSignal(Component\Signal $signal, $event)
16 {
17 return $this->appendTriggeredSignal($signal, $event);
18 }
19
20 public function _withTriggeredSignal(Component\Signal $signal, $event)
21 {
22 return $this->withTriggeredSignal($signal, $event);
23 }
24
25 public function _setTriggeredSignal(Component\Signal $signal, $event)
26 {
27 return $this->setTriggeredSignal($signal, $event);
28 }
29}
30
35{
36 public function setUp() : void
37 {
38 $this->mock = new TriggererMock();
39 }
40
41 protected $signal_mock_counter = 0;
42 protected function getSignalMock()
43 {
44 $this->signal_mock_counter++;
45 return $this
46 ->getMockBuilder(Component\Signal::class)
47 ->disableOriginalClone()
48 ->disableArgumentCloning()
49 ->disallowMockingUnknownTypes()
50 ->setMockClassName("Signal_{$this->signal_mock_counter}")
51 ->getMock();
52 }
53
54 public function testStartEmpty()
55 {
56 $this->assertEquals([], $this->mock->getTriggeredSignals());
57 }
58
60 {
61 $signal = $this->getSignalMock();
62
63 $mock = $this->mock->_appendTriggeredSignal($signal, "some_event");
64 $this->assertNotSame($mock, $this->mock);
65 }
66
67 public function testAppendTriggeredSignal()
68 {
69 $signal1 = $this->getSignalMock();
70 $signal2 = $this->getSignalMock();
71 $signal3 = $this->getSignalMock();
72
73 $mock = $this->mock->_appendTriggeredSignal($signal1, "some_event");
74 $mock2 = $this->mock
75 ->_appendTriggeredSignal($signal2, "some_event")
76 ->_appendTriggeredSignal($signal3, "some_event");
77
78 $this->assertEquals([], $this->mock->getTriggeredSignals());
79 $this->assertEquals([new TriggeredSignal($signal1, "some_event")], $mock->getTriggeredSignals());
80 $this->assertEquals([new TriggeredSignal($signal2, "some_event"), new TriggeredSignal($signal3, "some_event")], $mock2->getTriggeredSignals());
81 }
82
84 {
85 $signal = $this->getSignalMock();
86
87 $mock = $this->mock->_withTriggeredSignal($signal, "some_event");
88
89 $this->assertNotSame($mock, $this->mock);
90 }
91
92 public function testWithTriggeredSignal()
93 {
94 $signal1 = $this->getSignalMock();
95 $signal2 = $this->getSignalMock();
96
97 $mock = $this->mock->_withTriggeredSignal($signal1, "some_event");
98 $mock2 = $mock->_withTriggeredSignal($signal2, "some_event");
99
100 $this->assertEquals([new TriggeredSignal($signal1, "some_event")], $mock->getTriggeredSignals());
101 $this->assertEquals([new TriggeredSignal($signal2, "some_event")], $mock2->getTriggeredSignals());
102 }
103
104 public function testSetTriggeredSignal()
105 {
106 $signal1 = $this->getSignalMock();
107 $signal2 = $this->getSignalMock();
108
109 $this->mock->_setTriggeredSignal($signal1, "some_event");
110 $this->mock->_setTriggeredSignal($signal2, "some_event");
111
112 $this->assertEquals([new TriggeredSignal($signal2, "some_event")], $this->mock->getTriggeredSignals());
113 }
114
116 {
117 $signal = $this->getSignalMock();
118
119 $mock = $this->mock->withResetTriggeredSignals();
120
121 $this->assertNotSame($mock, $this->mock);
122 }
123
125 {
126 $signal1 = $this->getSignalMock();
127 $signal2 = $this->getSignalMock();
128
129 $mock = $this->mock
130 ->_appendTriggeredSignal($signal1, "some_event")
131 ->_appendTriggeredSignal($signal2, "some_event")
132 ->withResetTriggeredSignals();
133
134 $this->assertEquals([], $mock->getTriggeredSignals());
135 }
136
138 {
139 $signals = $this->mock->getTriggeredSignalsFor("some_event");
140 $this->assertEquals([], $signals);
141 }
142
143 public function testGetTriggeredSignals()
144 {
145 $signal1 = $this->getSignalMock();
146 $signal2 = $this->getSignalMock();
147
148 $mock = $this->mock
149 ->_appendTriggeredSignal($signal1, "some_event")
150 ->_appendTriggeredSignal($signal2, "some_event");
151
152 $signals = $mock->getTriggeredSignalsFor("some_event");
153
154 $this->assertEquals([$signal1, $signal2], $signals);
155 }
156}
An exception for terminatinating execution or to throw for unit testing.
_setTriggeredSignal(Component\Signal $signal, $event)
_withTriggeredSignal(Component\Signal $signal, $event)
_appendTriggeredSignal(Component\Signal $signal, $event)
A component is the most general form of an entity in the UI.
Definition: Component.php:14
withTriggeredSignal(Component\Signal $signal, $event)
Add a triggered signal, replacing any other signals registered on the same event.
Definition: Triggerer.php:48
appendTriggeredSignal(Component\Signal $signal, $event)
Append a triggered signal to other signals of the same event.
Definition: Triggerer.php:31
setTriggeredSignal(Component\Signal $signal, $event)
Add a triggered signal, replacing any othe signals registered on the same event.
Definition: Triggerer.php:65