ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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}
An exception for terminatinating execution or to throw for unit testing.
Class ilCertificateBaseTestCase.