ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
ilApiUserCertificateRepositoryTest.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2019 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
8 {
12  private $database;
13 
17  private $logger;
18 
22  private $controller;
23 
24  public function setUp() : void
25  {
26  $this->database = $this->getMockBuilder('ilDBInterface')
27  ->disableOriginalConstructor()
28  ->getMock();
29 
30  $this->controller = $this->getMockBuilder('ilCtrl')
31  ->disableOriginalConstructor()
32  ->getMock();
33 
34  $this->logger = $this->getMockBuilder('ilLogger')
35  ->disableOriginalConstructor()
36  ->getMock();
37  }
38 
39  public function testGetUserData()
40  {
41  $filter = new \Certificate\API\Filter\UserDataFilter(
42  array(1, 2, 3),
43  'test',
44  100,
45  1234567890,
46  2000,
47  300
48  );
49 
50  $this->database
51  ->method('fetchAssoc')
52  ->willReturnOnConsecutiveCalls(
53  array(
54  'id' => 5,
55  'title' => 'test',
56  'obj_id' => 100,
57  'ref_id' => 5000,
58  'acquired_timestamp' => 1234567890,
59  'user_id' => 2000,
60  'firstname' => 'ilyas',
61  'lastname' => 'homer',
62  'login' => 'breakdanceMcFunkyPants',
63  'email' => 'ilyas@ilias.de',
64  'second_email' => 'breakdance@funky.de'
65  ),
66  array(
67  'id' => 5,
68  'title' => 'test',
69  'obj_id' => 100,
70  'ref_id' => 6000,
71  'acquired_timestamp' => 1234567890,
72  'user_id' => 2000,
73  'firstname' => 'ilyas',
74  'lastname' => 'homer',
75  'login' => 'breakdanceMcFunkyPants',
76  'email' => 'ilyas@ilias.de',
77  'second_email' => 'breakdance@funky.de'
78  )
79  );
80 
81  $this->controller->method('getLinkTargetByClass')->willReturn('somewhere.php?goto=4');
82 
83  $repository = new \Certificate\API\Repository\UserDataRepository(
84  $this->database,
85  $this->logger,
86  $this->controller,
87  'no title given'
88  );
89 
91  $userData = $repository->getUserData($filter, array('something'));
92 
94  $object = $userData[5];
95  $this->assertEquals('test', $object->getObjectTitle());
96  $this->assertEquals(5, $object->getCertificateId());
97  $this->assertEquals(100, $object->getObjectId());
98  $this->assertEquals(array(5000, 6000), $object->getObjectRefIds());
99  $this->assertEquals(1234567890, $object->getIssuedOnTimestamp());
100  $this->assertEquals(2000, $object->getUserId());
101  $this->assertEquals('ilyas', $object->getUserFirstName());
102  $this->assertEquals('homer', $object->getUserLastName());
103  $this->assertEquals('breakdanceMcFunkyPants', $object->getUserLogin());
104  $this->assertEquals('ilyas@ilias.de', $object->getUserEmail());
105  $this->assertEquals('breakdance@funky.de', $object->getUserSecondEmail());
106  $this->assertEquals('somewhere.php?goto=4', $object->getDownloadLink());
107  }
108 }
Class ilCertificateBaseTestCase.