ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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('
255 DELETE FROM il_cert_template
256 WHERE id = 10
257 AND 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
319 SET currently_active = 1
320 WHERE 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 
336  public function testFetchAllObjectIdsByType()
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 }
Class ilCertificateBaseTestCase.