ILIAS  release_8 Revision v8.24
ilCertificateLearningHistoryProviderTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22{
23 public function testIsActive(): void
24 {
25 $learningHistoryFactory = $this->getMockBuilder(ilLearningHistoryFactory::class)
26 ->disableOriginalConstructor()
27 ->getMock();
28
29 $language = $this->getMockBuilder(ilLanguage::class)
30 ->disableOriginalConstructor()
31 ->getMock();
32
33 $dic = $this->getMockBuilder(\ILIAS\DI\Container::class)
34 ->disableOriginalConstructor()
35 ->getMock();
36
37 $template = $this->getMockBuilder(ilTemplate::class)
38 ->disableOriginalConstructor()
39 ->getMock();
40
41 $userCertificateRepository = $this->getMockBuilder(ilUserCertificateRepository::class)
42 ->disableOriginalConstructor()
43 ->getMock();
44
45 $controller = $this->getMockBuilder(ilCtrlInterface::class)
46 ->disableOriginalConstructor()
47 ->getMock();
48
49 $certificateSettings = $this->getMockBuilder(ilSetting::class)
50 ->disableOriginalConstructor()
51 ->getMock();
52
53 $certificateSettings->method('get')
54 ->willReturn('1');
55
56 $uiFactory = $this->getMockBuilder(ILIAS\UI\Factory::class)
57 ->disableOriginalConstructor()
58 ->getMock();
59
60 $uiRenderer = $this->getMockBuilder(ILIAS\UI\Renderer::class)
61 ->disableOriginalConstructor()
62 ->getMock();
63
65 10,
66 $learningHistoryFactory,
67 $language,
68 $template,
69 $dic,
70 $userCertificateRepository,
71 $controller,
72 $certificateSettings,
73 $uiFactory,
74 $uiRenderer
75 );
76
77 $this->assertTrue($provider->isActive());
78 }
79
80 public function testGetEntries(): void
81 {
82 $learningHistoryFactory = $this->getMockBuilder(ilLearningHistoryFactory::class)
83 ->disableOriginalConstructor()
84 ->getMock();
85
86 $language = $this->getMockBuilder(ilLanguage::class)
87 ->disableOriginalConstructor()
88 ->getMock();
89
90 $language->method('txt')
91 ->willReturnOnConsecutiveCalls(
92 'Certificate for %1$s',
93 '%1$s achieved.',
94 'Certificate for %1$s',
95 '%1$s achieved.'
96 );
97
98 $dic = $this->getMockBuilder(\ILIAS\DI\Container::class)
99 ->disableOriginalConstructor()
100 ->getMock();
101
102 $template = $this->getMockBuilder(ilTemplate::class)
103 ->disableOriginalConstructor()
104 ->getMock();
105
106 $template->method('get')
107 ->willReturnOnConsecutiveCalls('Course Title', 'Test Title');
108
109 $userCertificateRepository = $this->getMockBuilder(ilUserCertificateRepository::class)
110 ->disableOriginalConstructor()
111 ->getMock();
112
113 $userCertificateRepository->method('fetchActiveCertificatesInIntervalForPresentation')
114 ->willReturn(
115 [
117 200,
118 'crs',
120 1,
121 200,
122 'crs',
123 300,
124 'Ilyas Odys',
125 123456789,
126 '<xml>Some Content</xml>',
127 '["SOME_PLACEHOLDER"]',
128 null,
129 1,
130 'v5.4.0',
131 true,
132 '/some/where/background_1.jpg',
133 '/some/where/else/thumbnail_1.jpg',
134 40
135 ),
136 'Course Title',
137 'Course Description'
138 ),
140 500,
141 'tst',
143 5,
144 500,
145 'tst',
146 5000,
147 'Ilyas Odys',
148 987654321,
149 '<xml>Some Content</xml>',
150 '["SOME_PLACEHOLDER"]',
151 null,
152 1,
153 'v5.4.0',
154 true,
155 '/some/where/background_1.jpg',
156 '/some/where/else/thumbnail_1.jpg',
157 50
158 ),
159 'Test Title',
160 'Test Description'
161 )
162 ]
163 );
164
165 $controller = $this->getMockBuilder(ilCtrlInterface::class)
166 ->disableOriginalConstructor()
167 ->getMock();
168
169 $controller
170 ->expects($this->exactly(2))
171 ->method('getLinkTargetByClass')
172 ->willReturn('<a href> </a>');
173
174 $controller
175 ->expects($this->exactly(2))
176 ->method('clearParametersByClass');
177
178 $controller
179 ->expects($this->exactly(2))
180 ->method('setParameterByClass');
181
182 $certificateSettings = $this->getMockBuilder(ilSetting::class)
183 ->disableOriginalConstructor()
184 ->getMock();
185
186 $certificateSettings->method('get')
187 ->willReturn('1');
188
189 $uiFactory = $this->getMockBuilder(ILIAS\UI\Factory::class)
190 ->disableOriginalConstructor()
191 ->getMock();
192
193 $link = $this->getMockBuilder(\ILIAS\UI\Component\Link\Factory::class)
194 ->disableOriginalConstructor()
195 ->getMock();
196
197 $std_link = $this->getMockBuilder(\ILIAS\UI\Component\Link\Standard::class)
198 ->disableOriginalConstructor()
199 ->getMock();
200
201 $link->method('standard')
202 ->withConsecutive(
203 ['Course Title', '<a href> </a>'],
204 ['Test Title', '<a href> </a>']
205 )
206 ->willReturn($std_link);
207
208 $uiFactory->method('link')
209 ->willReturn($link);
210
211 $uiRenderer = $this->getMockBuilder(ILIAS\UI\Renderer::class)
212 ->disableOriginalConstructor()
213 ->getMock();
214
215 $uiRenderer->method('render')
216 ->with($std_link)
217 ->willReturn('link');
218
219 $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
220 ->disableOriginalConstructor()
221 ->getMock();
222
223 $utilHelper->method('getImagePath')
224 ->willReturn('/some/acutal/image/path/background.png');
225
227 10,
228 $learningHistoryFactory,
229 $language,
230 $template,
231 $dic,
232 $userCertificateRepository,
233 $controller,
234 $certificateSettings,
235 $uiFactory,
236 $uiRenderer,
237 $utilHelper
238 );
239
240 $expectedEntries = [
242 'Certificate for link achieved.',
243 'Certificate for link achieved.',
244 '/some/acutal/image/path/background.png',
245 123456789,
246 200
247 ),
249 'Certificate for link achieved.',
250 'Certificate for link achieved.',
251 '/some/acutal/image/path/background.png',
252 987654321,
253 500
254 ),
255 ];
256
257 $actualEntries = $provider->getEntries(123456789, 987654321);
258 $this->assertEquals($expectedEntries, $actualEntries);
259 }
260
261 public function testGetName(): void
262 {
263 $learningHistoryFactory = $this->getMockBuilder(ilLearningHistoryFactory::class)
264 ->disableOriginalConstructor()
265 ->getMock();
266
267 $language = $this->getMockBuilder(ilLanguage::class)
268 ->disableOriginalConstructor()
269 ->getMock();
270
271 $language
272 ->expects($this->once())
273 ->method('txt')
274 ->willReturn('Certificates');
275
276 $dic = $this->getMockBuilder(\ILIAS\DI\Container::class)
277 ->disableOriginalConstructor()
278 ->getMock();
279
280 $template = $this->getMockBuilder(ilTemplate::class)
281 ->disableOriginalConstructor()
282 ->getMock();
283
284 $userCertificateRepository = $this->getMockBuilder(ilUserCertificateRepository::class)
285 ->disableOriginalConstructor()
286 ->getMock();
287
288 $controller = $this->getMockBuilder(ilCtrlInterface::class)
289 ->disableOriginalConstructor()
290 ->getMock();
291
292 $certificateSettings = $this->getMockBuilder(ilSetting::class)
293 ->disableOriginalConstructor()
294 ->getMock();
295
296 $certificateSettings->method('get')
297 ->willReturn('1');
298
299 $uiFactory = $this->getMockBuilder(ILIAS\UI\Factory::class)
300 ->disableOriginalConstructor()
301 ->getMock();
302
303 $uiRenderer = $this->getMockBuilder(ILIAS\UI\Renderer::class)
304 ->disableOriginalConstructor()
305 ->getMock();
306
308 10,
309 $learningHistoryFactory,
310 $language,
311 $template,
312 $dic,
313 $userCertificateRepository,
314 $controller,
315 $certificateSettings,
316 $uiFactory,
317 $uiRenderer
318 );
319
320 $this->assertSame('Certificates', $provider->getName());
321 }
322}
Class ilCertificateBaseTestCase.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$provider
Definition: ltitoken.php:83
Class HTTPServicesTest.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ChatMainBarProvider \MainMenu\Provider.
Class Factory.
$dic
Definition: result.php:32