ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
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->method('standard')
212 ->with(
213 $this->callback(function ($value) use (&$consecutive) {
214 $this->assertSame(array_shift($consecutive), $value);
215 return true;
216 }),
217 $this->identicalTo('<a href> </a>')
218 )
219 ->willReturn($std_link);
220
221 $uiFactory->method('link')
222 ->willReturn($link);
223
224 $uiRenderer = $this->getMockBuilder(ILIAS\UI\Renderer::class)
225 ->disableOriginalConstructor()
226 ->getMock();
227
228 $uiRenderer->method('render')
229 ->with($std_link)
230 ->willReturn('link');
231
232 $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
233 ->disableOriginalConstructor()
234 ->getMock();
235
236 $utilHelper->method('getImagePath')
237 ->willReturn('/some/acutal/image/path/background.png');
238
240 10,
241 $learningHistoryFactory,
242 $language,
243 $template,
244 $dic,
245 $userCertificateRepository,
246 $controller,
247 $certificateSettings,
248 $uiFactory,
249 $uiRenderer,
250 $utilHelper
251 );
252
253 $expectedEntries = [
255 'Certificate for link achieved.',
256 'Certificate for link achieved.',
257 '/some/acutal/image/path/background.png',
258 123_456_789,
259 200
260 ),
262 'Certificate for link achieved.',
263 'Certificate for link achieved.',
264 '/some/acutal/image/path/background.png',
265 987_654_321,
266 500
267 ),
268 ];
269
270 $actualEntries = $provider->getEntries(123_456_789, 987_654_321);
271 $this->assertEquals($expectedEntries, $actualEntries);
272 }
273
274 public function testGetName(): void
275 {
276 $learningHistoryFactory = $this->getMockBuilder(ilLearningHistoryFactory::class)
277 ->disableOriginalConstructor()
278 ->getMock();
279
280 $language = $this->getMockBuilder(ilLanguage::class)
281 ->disableOriginalConstructor()
282 ->getMock();
283
284 $language
285 ->expects($this->once())
286 ->method('txt')
287 ->willReturn('Certificates');
288
289 $dic = $this->getMockBuilder(\ILIAS\DI\Container::class)
290 ->disableOriginalConstructor()
291 ->getMock();
292
293 $template = $this->getMockBuilder(ilTemplate::class)
294 ->disableOriginalConstructor()
295 ->getMock();
296
297 $userCertificateRepository = $this->getMockBuilder(ilUserCertificateRepository::class)
298 ->disableOriginalConstructor()
299 ->getMock();
300
301 $controller = $this->getMockBuilder(ilCtrlInterface::class)
302 ->disableOriginalConstructor()
303 ->getMock();
304
305 $certificateSettings = $this->getMockBuilder(ilSetting::class)
306 ->disableOriginalConstructor()
307 ->getMock();
308
309 $certificateSettings->method('get')
310 ->willReturn('1');
311
312 $uiFactory = $this->getMockBuilder(ILIAS\UI\Factory::class)
313 ->disableOriginalConstructor()
314 ->getMock();
315
316 $uiRenderer = $this->getMockBuilder(ILIAS\UI\Renderer::class)
317 ->disableOriginalConstructor()
318 ->getMock();
319
320 $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
321 ->disableOriginalConstructor()
322 ->getMock();
323
325 10,
326 $learningHistoryFactory,
327 $language,
328 $template,
329 $dic,
330 $userCertificateRepository,
331 $controller,
332 $certificateSettings,
333 $uiFactory,
334 $uiRenderer,
335 $utilHelper
336 );
337
338 $this->assertSame('Certificates', $provider->getName());
339 }
340}
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.