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