87 : 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,
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,
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,
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 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.