ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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 
5 require_once("libs/composer/vendor/autoload.php");
6 
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 }
_setTriggeredSignal(Component\Signal $signal, $event)
setTriggeredSignal(Component\Signal $signal, $event)
Add a triggered signal, replacing any othe signals registered on the same event.
Definition: Triggerer.php:65
appendTriggeredSignal(Component\Signal $signal, $event)
Append a triggered signal to other signals of the same event.
Definition: Triggerer.php:31
_withTriggeredSignal(Component\Signal $signal, $event)
_appendTriggeredSignal(Component\Signal $signal, $event)
withTriggeredSignal(Component\Signal $signal, $event)
Add a triggered signal, replacing any other signals registered on the same event. ...
Definition: Triggerer.php:48