ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilApiUserCertificateRepositoryTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22{
23 private \ilDBInterface&\PHPUnit\Framework\MockObject\MockObject $database;
24 private \ilCtrlInterface&\PHPUnit\Framework\MockObject\MockObject $controller;
25
26 protected function setUp(): void
27 {
28 parent::setUp();
29 $this->database = $this->createMock(ilDBInterface::class);
30 $this->controller = $this->createMock(ilCtrlInterface::class);
31 }
32
33 public function testGetUserData(): void
34 {
35 $filter = new \ILIAS\Certificate\API\Filter\UserDataFilter();
36
37 $this->database
38 ->method('fetchAssoc')
39 ->willReturnOnConsecutiveCalls(
40 [
41 'id' => 5,
42 'title' => 'test',
43 'obj_id' => 100,
44 'ref_id' => 5000,
45 'acquired_timestamp' => 1_234_567_890,
46 'usr_id' => 2000,
47 'firstname' => 'ilyas',
48 'lastname' => 'homer',
49 'login' => 'breakdanceMcFunkyPants',
50 'email' => 'ilyas@ilias.de',
51 'second_email' => 'breakdance@funky.de'
52 ],
53 [
54 'id' => 5,
55 'title' => 'test',
56 'obj_id' => 100,
57 'ref_id' => 6000,
58 'acquired_timestamp' => 1_234_567_890,
59 'usr_id' => 2000,
60 'firstname' => 'ilyas',
61 'lastname' => 'homer',
62 'login' => 'breakdanceMcFunkyPants',
63 'email' => 'ilyas@ilias.de',
64 'second_email' => 'breakdance@funky.de'
65 ],
66 null
67 );
68
69 $this->controller->method('getLinkTargetByClass')->willReturn('somewhere.php?goto=4');
70
71 $repository = new \ILIAS\Certificate\API\Repository\UserDataRepository(
72 $this->database,
73 $this->controller,
74 'no title given'
75 );
76
78 $userData = $repository->getUserData($filter, ['something']);
79
81 $object = $userData[5];
82 $this->assertSame('test', $object->getObjectTitle());
83 $this->assertSame(5, $object->getCertificateId());
84 $this->assertSame(100, $object->getObjectId());
85 $this->assertSame([5000, 6000], $object->getObjectRefIds());
86 $this->assertSame(1_234_567_890, $object->getIssuedOnTimestamp());
87 $this->assertSame(2000, $object->getUserId());
88 $this->assertSame('ilyas', $object->getUserFirstName());
89 $this->assertSame('homer', $object->getUserLastName());
90 $this->assertSame('breakdanceMcFunkyPants', $object->getUserLogin());
91 $this->assertSame('ilyas@ilias.de', $object->getUserEmail());
92 $this->assertSame('breakdance@funky.de', $object->getUserSecondEmail());
93 $this->assertSame('somewhere.php?goto=4', $object->getDownloadLink());
94 }
95}
ilDBInterface &PHPUnit Framework MockObject MockObject $database
ilCtrlInterface &PHPUnit Framework MockObject MockObject $controller