19declare(strict_types=1);
27 $database = $this->createMock(ilDBInterface::class);
29 $database->method(
'nextId')
33 ->expects($this->once())
38 'id' => [
'integer', 141],
39 'pattern_certificate_id' => [
'integer', 1],
40 'obj_id' => [
'integer', 20],
41 'obj_type' => [
'text',
'crs'],
42 'usr_id' => [
'integer', 400],
43 'user_name' => [
'text',
'Niels Theen'],
44 'acquired_timestamp' => [
'integer', 123_456_789],
45 'certificate_content' => [
'clob',
'<xml>Some Content</xml>'],
46 'template_values' => [
'clob',
'[]'],
47 'valid_until' => [
'integer',
null],
48 'version' => [
'integer', 1],
49 'ilias_version' => [
'text',
'v5.4.0'],
50 'currently_active' => [
'integer',
true],
51 'background_image_ident' => [
'text',
'-'],
52 'tile_image_ident' => [
'text',
'-'],
53 'certificate_id' => [
'text',
'11111111-2222-3333-4444-555555555555'],
57 $logger = $this->getMockBuilder(ilLogger::class)
58 ->disableOriginalConstructor()
61 $logger->expects($this->atLeastOnce())
77 '<xml>Some Content</xml>',
89 $repository->save($userCertificate);
94 $database = $this->createMock(ilDBInterface::class);
96 $database->method(
'nextId')
99 $database->method(
'fetchAssoc')->willReturnOnConsecutiveCalls(
102 'pattern_certificate_id' => 1,
106 'user_name' =>
'Niels Theen',
107 'acquired_timestamp' => 123_456_789,
108 'certificate_content' =>
'<xml>Some Content</xml>',
109 'template_values' =>
'[]',
110 'valid_until' =>
null,
112 'ilias_version' =>
'v5.4.0',
113 'currently_active' =>
true,
114 'background_image_ident' =>
'-',
115 'tile_image_ident' =>
'-',
116 'title' =>
'Some Title',
117 'certificate_id' =>
'11111111-2222-3333-4444-555555555555'
121 'pattern_certificate_id' => 5,
125 'user_name' =>
'Niels Theen',
126 'acquired_timestamp' => 987_654_321,
127 'certificate_content' =>
'<xml>Some Other Content</xml>',
128 'template_values' =>
'[]',
129 'valid_until' =>
null,
131 'ilias_version' =>
'v5.3.0',
132 'currently_active' =>
true,
133 'background_image_ident' =>
'-',
134 'tile_image_ident' =>
'-',
135 'title' =>
'Someother Title',
136 'certificate_id' =>
'11111111-2222-3333-4444-555555555555'
141 $logger = $this->getMockBuilder(ilLogger::class)
142 ->disableOriginalConstructor()
145 $logger->expects($this->atLeastOnce())
154 $results = $repository->fetchActiveCertificates(400);
156 $this->assertSame(141,
$results[0]->getUserCertificate()->
getId());
157 $this->assertSame(142,
$results[1]->getUserCertificate()->
getId());
162 $database = $this->createMock(ilDBInterface::class);
164 $database->method(
'nextId')
167 $database->method(
'fetchAssoc')->willReturnOnConsecutiveCalls(
170 'pattern_certificate_id' => 1,
174 'user_name' =>
'Niels Theen',
175 'acquired_timestamp' => 123_456_789,
176 'certificate_content' =>
'<xml>Some Content</xml>',
177 'template_values' =>
'[]',
178 'valid_until' =>
null,
180 'ilias_version' =>
'v5.4.0',
181 'currently_active' =>
true,
182 'background_image_ident' =>
'-',
183 'tile_image_ident' =>
'-',
184 'certificate_id' =>
'11111111-2222-3333-4444-555555555555'
188 'pattern_certificate_id' => 5,
192 'user_name' =>
'Niels Theen',
193 'acquired_timestamp' => 987_654_321,
194 'certificate_content' =>
'<xml>Some Other Content</xml>',
195 'template_values' =>
'[]',
196 'valid_until' =>
null,
198 'ilias_version' =>
'v5.3.0',
199 'currently_active' =>
true,
200 'background_image_ident' =>
'-',
201 'tile_image_ident' =>
'-',
202 'certificate_id' =>
'11111111-2222-3333-4444-555555555555'
206 $logger = $this->getMockBuilder(ilLogger::class)
207 ->disableOriginalConstructor()
210 $logger->expects($this->atLeastOnce())
219 $result = $repository->fetchActiveCertificate(400, 20);
221 $this->assertSame(141, $result->getId());
226 $this->expectException(ilException::class);
228 $database = $this->createMock(ilDBInterface::class);
230 $database->method(
'nextId')
233 $database->method(
'fetchAssoc')->willReturn([]);
235 $logger = $this->getMockBuilder(ilLogger::class)
236 ->disableOriginalConstructor()
239 $logger->expects($this->atLeastOnce())
244 $repository->fetchActiveCertificate(400, 20);
246 $this->fail(
'Should never happen. Certificate Found?');
251 $database = $this->createMock(ilDBInterface::class);
253 $database->method(
'nextId')
256 $database->method(
'fetchAssoc')->willReturnOnConsecutiveCalls(
259 'pattern_certificate_id' => 1,
263 'user_name' =>
'Niels Theen',
264 'acquired_timestamp' => 123_456_789,
265 'certificate_content' =>
'<xml>Some Content</xml>',
266 'template_values' =>
'[]',
267 'valid_until' =>
null,
269 'ilias_version' =>
'v5.4.0',
270 'currently_active' =>
true,
271 'background_image_ident' =>
'-',
272 'tile_image_ident' =>
'-',
273 'title' =>
'SomeTitle',
274 'someDescription' =>
'SomeDescription',
275 'certificate_id' =>
'11111111-2222-3333-4444-555555555555'
279 'pattern_certificate_id' => 5,
283 'user_name' =>
'Niels Theen',
284 'acquired_timestamp' => 987_654_321,
285 'certificate_content' =>
'<xml>Some Other Content</xml>',
286 'template_values' =>
'[]',
287 'valid_until' =>
null,
289 'ilias_version' =>
'v5.3.0',
290 'currently_active' =>
true,
291 'background_image_ident' =>
'-',
292 'tile_image_ident' =>
'-',
293 'title' =>
'SomeTitle',
294 'someDescription' =>
'SomeDescription',
295 'certificate_id' =>
'11111111-2222-3333-4444-555555555555'
300 $logger = $this->getMockBuilder(ilLogger::class)
301 ->disableOriginalConstructor()
304 $logger->expects($this->atLeastOnce())
309 $results = $repository->fetchActiveCertificatesByTypeForPresentation(400,
'crs');
311 $this->assertSame(141,
$results[0]->getUserCertificate()->
getId());
312 $this->assertSame(142,
$results[1]->getUserCertificate()->
getId());
317 $database = $this->createMock(ilDBInterface::class);
319 $database->method(
'nextId')
322 $database->method(
'fetchAssoc')->willReturn(
325 'pattern_certificate_id' => 1,
329 'user_name' =>
'Niels Theen',
330 'acquired_timestamp' => 123_456_789,
331 'certificate_content' =>
'<xml>Some Content</xml>',
332 'template_values' =>
'[]',
333 'valid_until' =>
null,
335 'ilias_version' =>
'v5.4.0',
336 'currently_active' =>
true,
337 'background_image_ident' =>
'-',
338 'tile_image_ident' =>
'-',
339 'title' =>
'SomeTitle',
340 'someDescription' =>
'SomeDescription',
341 'certificate_id' =>
'11111111-2222-3333-4444-555555555555'
345 $logger = $this->getMockBuilder(ilLogger::class)
346 ->disableOriginalConstructor()
349 $logger->expects($this->atLeastOnce())
354 $result = $repository->fetchCertificate(141);
356 $this->assertSame(141, $result->getId());
361 $this->expectException(ilException::class);
363 $database = $this->createMock(ilDBInterface::class);
365 $database->method(
'nextId')
368 $database->method(
'fetchAssoc')
371 $logger = $this->getMockBuilder(ilLogger::class)
372 ->disableOriginalConstructor()
375 $logger->expects($this->atLeastOnce())
380 $repository->fetchCertificate(141);
382 $this->fail(
'Should never happen. Certificate Found?');
387 $database = $this->createMock(ilDBInterface::class);
390 ->expects($this->once())
394 ->expects($this->once())
398 ->expects($this->exactly(3))
399 ->method(
'fetchAssoc')
400 ->willReturnOnConsecutiveCalls(
406 $database->method(
'fetchAssoc')
409 $logger = $this->getMockBuilder(ilLogger::class)
410 ->disableOriginalConstructor()
413 $logger->expects($this->atLeastOnce())
419 $objectIds = [200, 300, 400];
421 $results = $repository->fetchObjectIdsWithCertificateForUser($userId, $objectIds);
423 $this->assertSame([100, 300],
$results);
428 $database = $this->createMock(ilDBInterface::class);
431 ->expects($this->once())
435 ->expects($this->exactly(3))
436 ->method(
'fetchAssoc')
437 ->willReturnOnConsecutiveCalls(
443 $database->method(
'fetchAssoc')
446 $logger = $this->getMockBuilder(ilLogger::class)
447 ->disableOriginalConstructor()
450 $logger->expects($this->atLeastOnce())
457 $results = $repository->fetchUserIdsWithCertificateForObject($objectId);
459 $this->assertSame([100, 300],
$results);
testFetchUserIdsWithCertificateForObject()
testFetchActiveCertificateForUserObjectCombination()
testFetchNoActiveCertificateLeadsToException()
testFetchAllActiveCertificateForUser()
testFetchActiveCertificatesByType()
testSaveOfUserCertificateToDatabase()
testNoCertificateInFetchtCertificateLeadsToException()
testFetchObjectWithCertificateForUser()