ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilCertificateTemplateRepositoryTest.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3
8{
10 {
11 $database = $this->getMockBuilder('ilDBInterface')
12 ->disableOriginalConstructor()
13 ->getMock();
14
15 $logger = $this->getMockBuilder('ilLogger')
16 ->disableOriginalConstructor()
17 ->getMock();
18
19 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
20 ->disableOriginalConstructor()
21 ->getMock();
22
23 $objectDataCache->method('lookUpType')->willReturn('crs');
24
25 $database->method('nextId')
26 ->willReturn(10);
27
28 $database->method('insert')
29 ->with(
30 'il_cert_template',
31 array(
32 'id' => array('integer', 10),
33 'obj_id' => array('integer', 100),
34 'obj_type' => array('text', 'crs'),
35 'certificate_content' => array('clob', '<xml>Some Content</xml>'),
36 'certificate_hash' => array('text', md5('<xml>Some Content</xml>')),
37 'template_values' => array('clob', '[]'),
38 'version' => array('integer', 1),
39 'ilias_version' => array('text', 'v5.4.0'),
40 'created_timestamp' => array('integer', 123456789),
41 'currently_active' => array('integer', true),
42 'background_image_path' => array('text', '/some/where/background.jpg'),
43 'deleted' => array('integer', 0),
44 'thumbnail_image_path' => array('text', 'some/path/test.svg')
45 )
46 );
47
48 $logger->expects($this->atLeastOnce())
49 ->method('info');
50
51 $template = new ilCertificateTemplate(
52 100,
53 'crs',
54 '<xml>Some Content</xml>',
55 md5('<xml>Some Content</xml>'),
56 '[]',
57 1,
58 'v5.4.0',
59 123456789,
60 true,
61 $backgroundImagePath = '/some/where/background.jpg',
62 'some/path/test.svg'
63
64 );
65
66 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
67
68 $repository->save($template);
69 }
70
72 {
73 $database = $this->getMockBuilder('ilDBInterface')
74 ->disableOriginalConstructor()
75 ->getMock();
76
77 $logger = $this->getMockBuilder('ilLogger')
78 ->disableOriginalConstructor()
79 ->getMock();
80
81 $database->method('fetchAssoc')
82 ->willReturnOnConsecutiveCalls(
83 array(
84 'id' => 1,
85 'obj_id' => 10,
86 'obj_type' => 'crs',
87 'certificate_content' => '<xml>Some Content</xml>',
88 'certificate_hash' => md5('<xml>Some Content</xml>'),
89 'template_values' => '[]',
90 'version' => 1,
91 'ilias_version' => 'v5.4.0',
92 'created_timestamp' => 123456789,
93 'currently_active' => true,
94 'background_image_path' => '/some/where/background.jpg',
95 'thumbnail_image_path' => 'some/path/test.svg'
96 ),
97 array(
98 'id' => 30,
99 'obj_id' => 10,
100 'obj_type' => 'tst',
101 'certificate_content' => '<xml>Some Other Content</xml>',
102 'certificate_hash' => md5('<xml>Some Content</xml>'),
103 'template_values' => '[]',
104 'version' => 55,
105 'ilias_version' => 'v5.3.0',
106 'created_timestamp' => 123456789,
107 'currently_active' => false,
108 'background_image_path' => '/some/where/else/background.jpg',
109 'thumbnail_image_path' => 'some/path/test.svg'
110 )
111 );
112
113 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
114 ->disableOriginalConstructor()
115 ->getMock();
116
117 $objectDataCache->method('lookUpType')->willReturn('crs');
118
119 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
120
121 $templates = $repository->fetchCertificateTemplatesByObjId(10);
122
123 $this->assertEquals(1, $templates[0]->getId());
124 $this->assertEquals(30, $templates[1]->getId());
125 }
126
128 {
129 $database = $this->getMockBuilder('ilDBInterface')
130 ->disableOriginalConstructor()
131 ->getMock();
132
133 $logger = $this->getMockBuilder('ilLogger')
134 ->disableOriginalConstructor()
135 ->getMock();
136
137 $database->method('fetchAssoc')
138 ->willReturnOnConsecutiveCalls(
139 array(
140 'id' => 1,
141 'obj_id' => 10,
142 'obj_type' => 'crs',
143 'certificate_content' => '<xml>Some Content</xml>',
144 'certificate_hash' => md5('<xml>Some Content</xml>'),
145 'template_values' => '[]',
146 'version' => 1,
147 'ilias_version' => 'v5.4.0',
148 'created_timestamp' => 123456789,
149 'currently_active' => true,
150 'background_image_path' => '/some/where/background.jpg',
151 'thumbnail_image_path' => 'some/path/test.svg'
152 ),
153 array(
154 'id' => 30,
155 'obj_id' => 10,
156 'obj_type' => 'tst',
157 'certificate_content' => '<xml>Some Other Content</xml>',
158 'certificate_hash' => md5('<xml>Some Content</xml>'),
159 'template_values' => '[]',
160 'version' => 55,
161 'ilias_version' => 'v5.3.0',
162 'created_timestamp' => 123456789,
163 'currently_active' => false,
164 'background_image_path' => '/some/where/else/background.jpg',
165 'thumbnail_image_path' => 'some/path/test.svg'
166 )
167 );
168
169 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
170 ->disableOriginalConstructor()
171 ->getMock();
172
173 $objectDataCache->method('lookUpType')->willReturn('crs');
174
175 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
176
177 $template = $repository->fetchCurrentlyActiveCertificate(10);
178
179 $this->assertEquals(1, $template->getId());
180 }
181
183 {
184 $database = $this->getMockBuilder('ilDBInterface')
185 ->disableOriginalConstructor()
186 ->getMock();
187
188 $logger = $this->getMockBuilder('ilLogger')
189 ->disableOriginalConstructor()
190 ->getMock();
191
192 $database->method('fetchAssoc')
193 ->willReturnOnConsecutiveCalls(
194 array(
195 'id' => 1,
196 'obj_id' => 10,
197 'obj_type' => 'crs',
198 'certificate_content' => '<xml>Some Content</xml>',
199 'certificate_hash' => md5('<xml>Some Content</xml>'),
200 'template_values' => '[]',
201 'version' => 1,
202 'ilias_version' => 'v5.4.0',
203 'created_timestamp' => 123456789,
204 'currently_active' => true,
205 'background_image_path' => '/some/where/background.jpg',
206 'thumbnail_image_path' => 'some/path/test.svg'
207 ),
208 array(
209 'id' => 30,
210 'obj_id' => 10,
211 'obj_type' => 'tst',
212 'certificate_content' => '<xml>Some Other Content</xml>',
213 'certificate_hash' => md5('<xml>Some Content</xml>'),
214 'template_values' => '[]',
215 'version' => 55,
216 'ilias_version' => 'v5.3.0',
217 'created_timestamp' => 123456789,
218 'currently_active' => false,
219 'background_image_path' => '/some/where/else/background.jpg',
220 'thumbnail_image_path' => 'some/path/test.svg'
221 )
222 );
223
224 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
225 ->disableOriginalConstructor()
226 ->getMock();
227
228 $objectDataCache->method('lookUpType')->willReturn('crs');
229
230 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
231
232 $template = $repository->fetchPreviousCertificate(10);
233
234 $this->assertEquals(30, $template->getId());
235 }
236
241 {
242 $database = $this->getMockBuilder('ilDBInterface')
243 ->disableOriginalConstructor()
244 ->getMock();
245
246 $logger = $this->getMockBuilder('ilLogger')
247 ->disableOriginalConstructor()
248 ->getMock();
249
250 $database->method('quote')
251 ->withConsecutive(array(10, 'integer'), array(200, 'integer'))
252 ->willReturnOnConsecutiveCalls(10, 200);
253
254 $database->method('query')
255 ->with('
256DELETE FROM il_cert_template
257WHERE id = 10
258AND obj_id = 200');
259
260 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
261 ->disableOriginalConstructor()
262 ->getMock();
263
264 $objectDataCache->method('lookUpType')->willReturn('crs');
265
266 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
267
268 $repository->deleteTemplate(10, 200);
269 }
270
272 {
273 $database = $this->getMockBuilder('ilDBInterface')
274 ->disableOriginalConstructor()
275 ->getMock();
276
277 $logger = $this->getMockBuilder('ilLogger')
278 ->disableOriginalConstructor()
279 ->getMock();
280
281 $database->method('quote')
282 ->withConsecutive(array(10, 'integer'), array(30, 'integer'))
283 ->willReturnOnConsecutiveCalls(10, 30);
284
285 $database->method('fetchAssoc')->willReturnOnConsecutiveCalls(
286 array(
287 'id' => 1,
288 'obj_id' => 10,
289 'obj_type' => 'crs',
290 'certificate_content' => '<xml>Some Content</xml>',
291 'certificate_hash' => md5('<xml>Some Content</xml>'),
292 'template_values' => '[]',
293 'version' => 1,
294 'ilias_version' => 'v5.4.0',
295 'created_timestamp' => 123456789,
296 'currently_active' => true,
297 'background_image_path' => '/some/where/background.jpg',
298 'thumbnail_image_path' => 'some/path/test.svg'
299 ),
300 array(
301 'id' => 30,
302 'obj_id' => 10,
303 'obj_type' => 'tst',
304 'certificate_content' => '<xml>Some Other Content</xml>',
305 'certificate_hash' => md5('<xml>Some Content</xml>'),
306 'template_values' => '[]',
307 'version' => 55,
308 'ilias_version' => 'v5.3.0',
309 'created_timestamp' => 123456789,
310 'currently_active' => false,
311 'background_image_path' => '/some/where/else/background.jpg',
312 'thumbnail_image_path' => 'some/path/test.svg'
313 )
314 );
315
316 $database->method('query')
317 ->withConsecutive(
318 array($this->anything()),
319 array('UPDATE il_cert_template
320SET currently_active = 1
321WHERE id = 30')
322 );
323
324 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
325 ->disableOriginalConstructor()
326 ->getMock();
327
328 $objectDataCache->method('lookUpType')->willReturn('crs');
329
330 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
331
332 $template = $repository->activatePreviousCertificate(10, 200);
333
334 $this->assertEquals(30, $template->getId());
335 }
336
338 {
339 $database = $this->getMockBuilder('ilDBInterface')
340 ->disableOriginalConstructor()
341 ->getMock();
342
343 $logger = $this->getMockBuilder('ilLogger')
344 ->disableOriginalConstructor()
345 ->getMock();
346
347 $database->method('quote')
348 ->with('crs')
349 ->willReturn('crs');
350
351 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
352 ->disableOriginalConstructor()
353 ->getMock();
354
355 $database->method('fetchAssoc')->willReturnOnConsecutiveCalls(
356 array(
357 'id' => 1,
358 'obj_id' => 10,
359 'obj_type' => 'crs',
360 'certificate_content' => '<xml>Some Content</xml>',
361 'certificate_hash' => md5('<xml>Some Content</xml>'),
362 'template_values' => '[]',
363 'version' => 1,
364 'ilias_version' => 'v5.4.0',
365 'created_timestamp' => 123456789,
366 'currently_active' => true,
367 'background_image_path' => '/some/where/background.jpg',
368 'thumbnail_image_path' => '/some/where/thumbnail.svg'
369 ),
370 array(
371 'id' => 30,
372 'obj_id' => 30,
373 'obj_type' => 'crs',
374 'certificate_content' => '<xml>Some Other Content</xml>',
375 'certificate_hash' => md5('<xml>Some Content</xml>'),
376 'template_values' => '[]',
377 'version' => 55,
378 'ilias_version' => 'v5.3.0',
379 'created_timestamp' => 123456789,
380 'currently_active' => false,
381 'background_image_path' => '/some/where/else/background.jpg',
382 'thumbnail_image_path' => '/some/where/thumbnail.svg'
383 )
384 );
385
386 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
387
388 $templates = $repository->fetchActiveTemplatesByType('crs');
389
390 $this->assertEquals(10, $templates[0]->getObjId());
391 $this->assertEquals(30, $templates[1]->getObjId());
392 }
393
398 {
399 $this->expectException(\ilException::class);
400
401 $database = $this->getMockBuilder('ilDBInterface')
402 ->disableOriginalConstructor()
403 ->getMock();
404
405 $logger = $this->getMockBuilder('ilLogger')
406 ->disableOriginalConstructor()
407 ->getMock();
408
409 $database->method('quote')
410 ->with(10, 'integer')
411 ->willReturn(10);
412
413 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
414 ->disableOriginalConstructor()
415 ->getMock();
416
417 $database->method('fetchAssoc')
418 ->willReturn(array());
419
420 $database->method('fetchAssoc')
421 ->willReturn(array());
422
423 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
424
425 $repository->fetchFirstCreatedTemplate(10);
426
427 $this->fail();
428 }
429
430 public function fetchFirstCreateTemplate()
431 {
432 $database = $this->getMockBuilder('ilDBInterface')
433 ->disableOriginalConstructor()
434 ->getMock();
435
436 $logger = $this->getMockBuilder('ilLogger')
437 ->disableOriginalConstructor()
438 ->getMock();
439
440 $database->method('quote')
441 ->with(10, 'integer')
442 ->willReturn(10);
443
444 $objectDataCache = $this->getMockBuilder('ilObjectDataCache')
445 ->disableOriginalConstructor()
446 ->getMock();
447
448 $database->method('fetchAssoc')
449 ->willReturn(array());
450
451 $database->method('fetchAssoc')->willReturn(
452 array(
453 'id' => 1,
454 'obj_id' => 10,
455 'obj_type' => 'crs',
456 'certificate_content' => '<xml>Some Content</xml>',
457 'certificate_hash' => md5('<xml>Some Content</xml>'),
458 'template_values' => '[]',
459 'version' => 1,
460 'ilias_version' => 'v5.4.0',
461 'created_timestamp' => 123456789,
462 'currently_active' => true,
463 'background_image_path' => '/some/where/background.jpg'
464 )
465 );
466
467 $repository = new ilCertificateTemplateRepository($database, $logger, $objectDataCache);
468
469 $firstTemplate = $repository->fetchFirstCreatedTemplate(10);
470
471 $this->assertEquals(1, $firstTemplate->getId());
472 }
473}
An exception for terminatinating execution or to throw for unit testing.
Class ilCertificateBaseTestCase.