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