ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilMailTaskProcessorTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
24
26{
27 protected const int SOME_USER_ID = 113;
28
32
33 protected function setUp(): void
34 {
35 parent::setUp();
36
37 $this->language_mock = $this->getMockBuilder(ilLanguage::class)
38 ->disableOriginalConstructor()
39 ->getMock();
40
41 $this->dic_mock = $this->getMockBuilder(Container::class)
42 ->disableOriginalConstructor()
43 ->getMock();
44
45 $this->logger_mock = $this->getMockBuilder(ilLogger::class)
46 ->disableOriginalConstructor()
47 ->getMock();
48 }
49
51 {
52 $this->expectException(InvalidArgumentException::class);
53
54 $value_object = new ilMailValueObject(
55 'ilias@server.com',
56 'somebody@iliase.de',
57 '',
58 '',
59 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce mollis posuere tincidunt. Phasellus et euismod ligula. Suspendisse dignissim eget dui nec imperdiet. Donec in pretium tellus. Maecenas lacinia eleifend erat ut euismod. Aenean eu malesuada est.',
60 'Dear Steve, great!',
61 []
62 );
63 }
64
65 public function testOneTask(): void
66 {
67 $task_manager = $this->getMockBuilder(BasicTaskManager::class)
68 ->onlyMethods(['run'])
69 ->disableOriginalConstructor()
70 ->getMock();
71
72 $task_manager
73 ->expects($this->once())
74 ->method('run');
75
76 $task_factory = $this->getMockBuilder(ILIAS\BackgroundTasks\Task\TaskFactory::class)
77 ->onlyMethods(['createTask'])
78 ->disableOriginalConstructor()
79 ->getMock();
80
81 $background_task = $this->getMockBuilder(ilMailDeliveryJob::class)
82 ->disableOriginalConstructor()
83 ->getMock();
84
85 $background_task->method('unfoldTask')
86 ->willReturn([]);
87
88 $task_factory
89 ->expects($this->exactly(2))
90 ->method('createTask')
91 ->willReturn($background_task);
92
93
94 $worker = new ilMassMailTaskProcessor(
95 self::SOME_USER_ID,
96 $task_manager,
97 $task_factory,
98 $this->language_mock,
99 $this->logger_mock,
100 $this->dic_mock,
101 $this->createMock(\ILIAS\Mail\Object\MailPayloadEncoder::class)
102 );
103
104 $value_object = new ilMailValueObject(
105 'ilias@server.com',
106 'somebody@iliase.de',
107 '',
108 '',
109 'That is awesome!',
110 'Dear Steve, great!',
111 []
112 );
113
114 $value_objects = [
115 $value_object,
116 ];
117
118 $usr_id = 100;
119 $context_id = '5';
120 $context_parameters = [];
121
122 $worker->run(
123 $value_objects,
124 $usr_id,
125 $context_id,
126 $context_parameters
127 );
128 }
129
130 public function testRunTwoTasks(): void
131 {
132 $task_manager = $this->getMockBuilder(BasicTaskManager::class)
133 ->onlyMethods(['run'])
134 ->disableOriginalConstructor()
135 ->getMock();
136
137 $task_manager
138 ->expects($this->once())
139 ->method('run');
140
141 $task_factory = $this->getMockBuilder(TaskFactory::class)
142 ->onlyMethods(['createTask'])
143 ->disableOriginalConstructor()
144 ->getMock();
145
146 $background_task = $this->getMockBuilder(ilMailDeliveryJob::class)
147 ->disableOriginalConstructor()
148 ->getMock();
149
150 $background_task
151 ->method('unfoldTask')
152 ->willReturn([]);
153
154 $task_factory
155 ->expects($this->exactly(2))
156 ->method('createTask')
157 ->willReturn($background_task);
158
159 $worker = new ilMassMailTaskProcessor(
160 self::SOME_USER_ID,
161 $task_manager,
162 $task_factory,
163 $this->language_mock,
164 $this->logger_mock,
165 $this->dic_mock,
166 $this->createMock(\ILIAS\Mail\Object\MailPayloadEncoder::class)
167 );
168
169 $value_objects = [];
170
171 $value_objects[] = new ilMailValueObject(
172 'ilias@server.com',
173 'somebody@iliase.de',
174 '',
175 '',
176 'That is awesome!',
177 'Dear Steve, great!',
178 []
179 );
180
181 $value_objects[] = new ilMailValueObject(
182 'ilias@server.com',
183 'somebodyelse@iliase.de',
184 '',
185 '',
186 'Greate',
187 'Steve, Steve, Steve. Wait that is not Steve',
188 []
189 );
190
191 $usr_id = 100;
192 $context_id = '5';
193 $context_parameters = [];
194
195 $worker->run(
196 $value_objects,
197 $usr_id,
198 $context_id,
199 $context_parameters
200 );
201 }
202
204 {
205 $task_manager = $this->getMockBuilder(BasicTaskManager::class)
206 ->onlyMethods(['run'])
207 ->disableOriginalConstructor()
208 ->getMock();
209
210 $task_manager
211 ->expects($this->exactly(2))
212 ->method('run');
213
214 $task_factory = $this->getMockBuilder(TaskFactory::class)
215 ->onlyMethods(['createTask'])
216 ->disableOriginalConstructor()
217 ->getMock();
218
219 $background_task = $this->getMockBuilder(ilMailDeliveryJob::class)
220 ->disableOriginalConstructor()
221 ->getMock();
222
223 $background_task
224 ->method('unfoldTask')
225 ->willReturn([]);
226
227 $task_factory
228 ->expects($this->exactly(4))
229 ->method('createTask')
230 ->willReturn($background_task);
231
232 $worker = new ilMassMailTaskProcessor(
233 self::SOME_USER_ID,
234 $task_manager,
235 $task_factory,
236 $this->language_mock,
237 $this->logger_mock,
238 $this->dic_mock,
239 $this->createMock(\ILIAS\Mail\Object\MailPayloadEncoder::class)
240 );
241
242 $value_objects = [];
243
244 $value_objects[] = new ilMailValueObject(
245 'ilias@server.com',
246 'somebody@iliase.de',
247 '',
248 '',
249 'That is awesome!',
250 'Dear Steve, great!',
251 []
252 );
253
254 $value_objects[] = new ilMailValueObject(
255 'ilias@server.com',
256 'somebodyelse@iliase.de',
257 '',
258 '',
259 'Greate',
260 'Steve, Steve, Steve. Wait that is not Steve',
261 []
262 );
263
264 $value_objects[] = new ilMailValueObject(
265 'ilias@server.com',
266 'somebody@iliase.de',
267 '',
268 '',
269 'That is awesome!',
270 'Hey Alan! Alan! Alan!',
271 []
272 );
273
274 $usr_id = 100;
275 $context_id = '5';
276 $context_parameters = [];
277
278 $worker->run(
279 $value_objects,
280 $usr_id,
281 $context_id,
282 $context_parameters,
283 2
284 );
285 }
286
288 {
289 $this->expectException(ilMailException::class);
290
291 $task_manager = $this->getMockBuilder(BasicTaskManager::class)
292 ->onlyMethods(['run'])
293 ->disableOriginalConstructor()
294 ->getMock();
295
296 $task_manager
297 ->expects($this->never())
298 ->method('run');
299
300 $task_factory = $this->getMockBuilder(TaskFactory::class)
301 ->onlyMethods(['createTask'])
302 ->disableOriginalConstructor()
303 ->getMock();
304
305 $background_task = $this->getMockBuilder(ilMailDeliveryJob::class)
306 ->disableOriginalConstructor()
307 ->getMock();
308
309 $background_task
310 ->method('unfoldTask')
311 ->willReturn([]);
312
313 $task_factory
314 ->expects($this->never())
315 ->method('createTask')
316 ->willReturn($background_task);
317
318 $worker = new ilMassMailTaskProcessor(
319 self::SOME_USER_ID,
320 $task_manager,
321 $task_factory,
322 $this->language_mock,
323 $this->logger_mock,
324 $this->dic_mock,
325 $this->createMock(\ILIAS\Mail\Object\MailPayloadEncoder::class)
326 );
327
328 $value_objects = [];
329
330 $value_objects[] = new ilMailValueObject(
331 'ilias@server.com',
332 'somebody@iliase.de',
333 '',
334 '',
335 'That is awesome!',
336 'Dear Steve, great!',
337 []
338 );
339
340 $value_objects[] = new ilMailValueObject(
341 'ilias@server.com',
342 'somebodyelse@iliase.de',
343 '',
344 '',
345 'Greate',
346 'Steve, Steve, Steve. Wait that is not Steve',
347 []
348 );
349
350 $value_objects[] = 'This should fail';
351
352 $usr_id = 100;
353 $context_id = '5';
354 $context_parameters = [];
355
356 $worker->run(
357 $value_objects,
358 $usr_id,
359 $context_id,
360 $context_parameters,
361 2
362 );
363 }
364}
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:36
language handling
Component logger with individual log levels by component id.
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.
RFC 822 Email address list validation Utility.