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