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