ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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 
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('
256 DELETE FROM il_cert_template
257 WHERE id = 10
258 AND 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
320 SET currently_active = 1
321 WHERE 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 
337  public function testFetchAllObjectIdsByType()
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 }
Class ilCertificateBaseTestCase.