ILIAS  trunk Revision v11.0_alpha-1753-gb21ca8c4367
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilCertificateLearningHistoryProviderTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(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',
126  new ilUserCertificate(
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  '/some/where/background_1.jpg',
141  '/some/where/else/tile_image_1.jpg',
142  '',
143  '',
144  40
145  ),
146  'Course Title',
147  'Course Description'
148  ),
150  500,
151  'tst',
152  new ilUserCertificate(
153  5,
154  500,
155  'tst',
156  5000,
157  'Ilyas Odys',
158  987_654_321,
159  '<xml>Some Content</xml>',
160  '["SOME_PLACEHOLDER"]',
161  null,
162  1,
163  'v5.4.0',
164  true,
165  new CertificateId('11111111-2222-3333-4444-555555555555'),
166  '',
167  '',
168  '/some/where/background_1.jpg',
169  '/some/where/else/tile_image_1.jpg',
170  50
171  ),
172  'Test Title',
173  'Test Description'
174  )
175  ]
176  );
177 
178  $controller = $this->getMockBuilder(ilCtrlInterface::class)
179  ->disableOriginalConstructor()
180  ->getMock();
181 
182  $controller
183  ->expects($this->exactly(2))
184  ->method('getLinkTargetByClass')
185  ->willReturn('<a href> </a>');
186 
187  $controller
188  ->expects($this->exactly(2))
189  ->method('clearParametersByClass');
190 
191  $controller
192  ->expects($this->exactly(2))
193  ->method('setParameterByClass');
194 
195  $certificateSettings = $this->getMockBuilder(ilSetting::class)
196  ->disableOriginalConstructor()
197  ->getMock();
198 
199  $certificateSettings->method('get')
200  ->willReturn('1');
201 
202  $uiFactory = $this->getMockBuilder(ILIAS\UI\Factory::class)
203  ->disableOriginalConstructor()
204  ->getMock();
205 
206  $link = $this->getMockBuilder(\ILIAS\UI\Component\Link\Factory::class)
207  ->disableOriginalConstructor()
208  ->getMock();
209 
210  $std_link = $this->getMockBuilder(\ILIAS\UI\Component\Link\Standard::class)
211  ->disableOriginalConstructor()
212  ->getMock();
213 
214  $consecutive = ['Course Title', 'Test Title'];
215  $link->method('standard')
216  ->with(
217  $this->callback(function ($value) use (&$consecutive) {
218  $this->assertSame(array_shift($consecutive), $value);
219  return true;
220  }),
221  $this->identicalTo('<a href> </a>')
222  )
223  ->willReturn($std_link);
224 
225  $uiFactory->method('link')
226  ->willReturn($link);
227 
228  $uiRenderer = $this->getMockBuilder(ILIAS\UI\Renderer::class)
229  ->disableOriginalConstructor()
230  ->getMock();
231 
232  $uiRenderer->method('render')
233  ->with($std_link)
234  ->willReturn('link');
235 
236  $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
237  ->disableOriginalConstructor()
238  ->getMock();
239 
240  $utilHelper->method('getImagePath')
241  ->willReturn('/some/acutal/image/path/background.png');
242 
244  10,
245  $learningHistoryFactory,
246  $language,
247  $template,
248  $dic,
249  $userCertificateRepository,
250  $controller,
251  $certificateSettings,
252  $uiFactory,
253  $uiRenderer,
254  $utilHelper
255  );
256 
257  $expectedEntries = [
259  'Certificate for link achieved.',
260  'Certificate for link achieved.',
261  '/some/acutal/image/path/background.png',
262  123_456_789,
263  200
264  ),
266  'Certificate for link achieved.',
267  'Certificate for link achieved.',
268  '/some/acutal/image/path/background.png',
269  987_654_321,
270  500
271  ),
272  ];
273 
274  $actualEntries = $provider->getEntries(123_456_789, 987_654_321);
275  $this->assertEquals($expectedEntries, $actualEntries);
276  }
277 
278  public function testGetName(): void
279  {
280  $learningHistoryFactory = $this->getMockBuilder(ilLearningHistoryFactory::class)
281  ->disableOriginalConstructor()
282  ->getMock();
283 
284  $language = $this->getMockBuilder(ilLanguage::class)
285  ->disableOriginalConstructor()
286  ->getMock();
287 
288  $language
289  ->expects($this->once())
290  ->method('txt')
291  ->willReturn('Certificates');
292 
293  $dic = $this->getMockBuilder(\ILIAS\DI\Container::class)
294  ->disableOriginalConstructor()
295  ->getMock();
296 
297  $template = $this->getMockBuilder(ilTemplate::class)
298  ->disableOriginalConstructor()
299  ->getMock();
300 
301  $userCertificateRepository = $this->getMockBuilder(ilUserCertificateRepository::class)
302  ->disableOriginalConstructor()
303  ->getMock();
304 
305  $controller = $this->getMockBuilder(ilCtrlInterface::class)
306  ->disableOriginalConstructor()
307  ->getMock();
308 
309  $certificateSettings = $this->getMockBuilder(ilSetting::class)
310  ->disableOriginalConstructor()
311  ->getMock();
312 
313  $certificateSettings->method('get')
314  ->willReturn('1');
315 
316  $uiFactory = $this->getMockBuilder(ILIAS\UI\Factory::class)
317  ->disableOriginalConstructor()
318  ->getMock();
319 
320  $uiRenderer = $this->getMockBuilder(ILIAS\UI\Renderer::class)
321  ->disableOriginalConstructor()
322  ->getMock();
323 
324  $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
325  ->disableOriginalConstructor()
326  ->getMock();
327 
329  10,
330  $learningHistoryFactory,
331  $language,
332  $template,
333  $dic,
334  $userCertificateRepository,
335  $controller,
336  $certificateSettings,
337  $uiFactory,
338  $uiRenderer,
339  $utilHelper
340  );
341 
342  $this->assertSame('Certificates', $provider->getName());
343  }
344 }
Interface Observer Contains several chained tasks and infos about them.
Class ilCertificateBaseTestCase.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$provider
Definition: ltitoken.php:80
Class HTTPServicesTest.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...