ILIAS  release_8 Revision v8.24
ilXlsFoParserTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
25{
27 {
28 $formData = [
29 'certificate_text' => '<xml> Some Context </xml>',
30 'margin_body' => [
31 'top' => '1cm',
32 'right' => '2cm',
33 'bottom' => '3cm',
34 'left' => '4cm'
35 ],
36 'pageformat' => 'a4'
37 ];
38
39 $settings = $this->getMockBuilder(ilSetting::class)
40 ->disableOriginalConstructor()
41 ->getMock();
42
43 $settings->method('get')
44 ->willReturn('Something');
45
46 $pageFormats = $this->getMockBuilder(ilPageFormats::class)
47 ->disableOriginalConstructor()
48 ->getMock();
49
50 $pageFormats->method('fetchPageFormats')
51 ->willReturn([
52 'a4' => [
53 'name' => 'A4',
54 'value' => 'a4',
55 'width' => '210mm',
56 'height' => '297mm'
57 ],
58 ]);
59
60 $xmlChecker = new ilXMLChecker(new ILIAS\Data\Factory());
61
62 $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
63 ->getMock();
64
65 $utilHelper->method('stripSlashes')
66 ->willReturnOnConsecutiveCalls(
67 '297mm',
68 '210mm',
69 '1cm',
70 '2cm',
71 '3cm',
72 '4cm'
73 );
74
75 $xlstProcess = $this->getMockBuilder(ilCertificateXlstProcess::class)
76 ->getMock();
77
78 $xlstProcess->method('process')
79 ->with(
80 [
81 '/_xml' => '<html><body><xml> Some Context </xml></body></html>',
82 '/_xsl' => '<xml>Some XLS Content</xml>'
83 ],
84 [
85 'pageheight' => '297mm',
86 'pagewidth' => '210mm',
87 'backgroundimage' => '[BACKGROUND_IMAGE]',
88 'marginbody' => '1cm 2cm 3cm 4cm'
89 ]
90 )
91 ->willReturn('Something Processed');
92
93 $language = $this->getMockBuilder(ilLanguage::class)
94 ->disableOriginalConstructor()
95 ->getMock();
96
97 $certificateXlsFileLoader = $this->getMockBuilder(ilCertificateXlsFileLoader::class)
98 ->getMock();
99
100 $certificateXlsFileLoader->method('getXlsCertificateContent')
101 ->willReturn('<xml>Some XLS Content</xml>');
102
103 $xlsFoParser = new ilXlsFoParser(
104 $settings,
105 $pageFormats,
106 $xmlChecker,
107 $utilHelper,
108 $xlstProcess,
109 $language,
110 $certificateXlsFileLoader
111 );
112
113 $output = $xlsFoParser->parse($formData);
114
115 $this->assertSame('Something Processed', $output);
116 }
117
119 {
120 $this->expectException(Exception::class);
121
122 $formData = [
123 'certificate_text' => '<xml> Some Context <xml>',
124 'margin_body' => [
125 'top' => '1cm',
126 'right' => '2cm',
127 'bottom' => '3cm',
128 'left' => '4cm'
129 ],
130 'pageformat' => 'custom'
131 ];
132
133 $settings = $this->getMockBuilder(ilSetting::class)
134 ->disableOriginalConstructor()
135 ->getMock();
136
137 $settings->method('get')
138 ->willReturn('Something');
139
140 $pageFormats = $this->getMockBuilder(ilPageFormats::class)
141 ->disableOriginalConstructor()
142 ->getMock();
143
144 $pageFormats->method('fetchPageFormats')
145 ->willReturn([
146 'a4' => [
147 'name' => 'A4',
148 'value' => 'a4',
149 'width' => '210mm',
150 'height' => '297mm'
151 ],
152 ]);
153
154 $xmlChecker = new ilXMLChecker(new ILIAS\Data\Factory());
155
156 $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
157 ->getMock();
158
159 $xlstProcess = $this->getMockBuilder(ilCertificateXlstProcess::class)
160 ->getMock();
161
162 $language = $this->getMockBuilder(ilLanguage::class)
163 ->disableOriginalConstructor()
164 ->onlyMethods(['txt'])
165 ->getMock();
166 $language->expects($this->once())->method('txt')->willReturn('certificate_not_well_formed');
167
168 $certificateXlsFileLoader = $this->getMockBuilder(ilCertificateXlsFileLoader::class)
169 ->getMock();
170
171 $certificateXlsFileLoader->method('getXlsCertificateContent')
172 ->willReturn('<xml>Some XLS Content</xml>');
173
174 $xlsFoParser = new ilXlsFoParser(
175 $settings,
176 $pageFormats,
177 $xmlChecker,
178 $utilHelper,
179 $xlstProcess,
180 $language,
181 $certificateXlsFileLoader
182 );
183
184 $xlsFoParser->parse($formData);
185
186 $this->fail();
187 }
188
189 public function testParseWithCustomPageFormatting(): void
190 {
191 $formData = [
192 'certificate_text' => '<xml> Some Context </xml>',
193 'margin_body' => [
194 'top' => '1cm',
195 'right' => '2cm',
196 'bottom' => '3cm',
197 'left' => '4cm'
198 ],
199 'pageformat' => 'custom',
200 'pagewidth' => '210mm',
201 'pageheight' => '297mm'
202 ];
203
204 $settings = $this->getMockBuilder(ilSetting::class)
205 ->disableOriginalConstructor()
206 ->getMock();
207
208 $settings->method('get')
209 ->willReturn('Something');
210
211 $pageFormats = $this->getMockBuilder(ilPageFormats::class)
212 ->disableOriginalConstructor()
213 ->getMock();
214
215 $pageFormats->method('fetchPageFormats')
216 ->willReturn([
217 'a4' => [
218 'name' => 'A4',
219 'value' => 'a4',
220 'width' => '210mm',
221 'height' => '297mm'
222 ],
223 ]);
224
225 $xmlChecker = new ilXMLChecker(new ILIAS\Data\Factory());
226
227 $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
228 ->getMock();
229
230 $utilHelper->method('stripSlashes')
231 ->willReturnOnConsecutiveCalls(
232 '297mm',
233 '210mm',
234 '1cm',
235 '2cm',
236 '3cm',
237 '4cm'
238 );
239
240 $xlstProcess = $this->getMockBuilder(ilCertificateXlstProcess::class)
241 ->getMock();
242
243 $xlstProcess->method('process')
244 ->with(
245 [
246 '/_xml' => '<html><body><xml> Some Context </xml></body></html>',
247 '/_xsl' => '<xml>Some XLS Content</xml>'
248 ],
249 [
250 'pageheight' => '297mm',
251 'pagewidth' => '210mm',
252 'backgroundimage' => '[BACKGROUND_IMAGE]',
253 'marginbody' => '1cm 2cm 3cm 4cm'
254 ]
255 )
256 ->willReturn('Something Processed');
257
258 $language = $this->getMockBuilder(ilLanguage::class)
259 ->disableOriginalConstructor()
260 ->getMock();
261
262 $certificateXlsFileLoader = $this->getMockBuilder(ilCertificateXlsFileLoader::class)
263 ->getMock();
264
265 $certificateXlsFileLoader->method('getXlsCertificateContent')
266 ->willReturn('<xml>Some XLS Content</xml>');
267
268 $xlsFoParser = new ilXlsFoParser(
269 $settings,
270 $pageFormats,
271 $xmlChecker,
272 $utilHelper,
273 $xlstProcess,
274 $language,
275 $certificateXlsFileLoader
276 );
277
278 $output = $xlsFoParser->parse($formData);
279
280 $this->assertSame('Something Processed', $output);
281 }
282
284 {
285 $formData = [
286 'certificate_text' => '<xml> Some Context </xml>',
287 'margin_body' => [
288 'top' => '1cm',
289 'right' => '2cm',
290 'bottom' => '3cm',
291 'left' => '4cm'
292 ],
293 'pageformat' => 'custom',
294 'pagewidth' => '210mm',
295 'pageheight' => '297mm'
296 ];
297
298 $settings = $this->getMockBuilder(ilSetting::class)
299 ->disableOriginalConstructor()
300 ->getMock();
301
302 $settings->method('get')
303 ->willReturn('Something');
304
305 $pageFormats = $this->getMockBuilder(ilPageFormats::class)
306 ->disableOriginalConstructor()
307 ->getMock();
308
309 $pageFormats->method('fetchPageFormats')
310 ->willReturn([
311 'a4' => [
312 'name' => 'A4',
313 'value' => 'a4',
314 'width' => '21,0mm',
315 'height' => '29,7mm'
316 ],
317 ]);
318
319 $xmlChecker = new ilXMLChecker(new ILIAS\Data\Factory());
320
321 $utilHelper = $this->getMockBuilder(ilCertificateUtilHelper::class)
322 ->getMock();
323
324 $utilHelper->method('stripSlashes')
325 ->willReturnOnConsecutiveCalls(
326 '29,7mm',
327 '21,0mm',
328 '1cm',
329 '2cm',
330 '3cm',
331 '4cm'
332 );
333
334 $xlstProcess = $this->getMockBuilder(ilCertificateXlstProcess::class)
335 ->getMock();
336
337 $xlstProcess->method('process')
338 ->with(
339 [
340 '/_xml' => '<html><body><xml> Some Context </xml></body></html>',
341 '/_xsl' => '<xml>Some XLS Content</xml>'
342 ],
343 [
344 'pageheight' => '29.7mm',
345 'pagewidth' => '21.0mm',
346 'backgroundimage' => '[BACKGROUND_IMAGE]',
347 'marginbody' => '1cm 2cm 3cm 4cm'
348 ]
349 )
350 ->willReturn('Something Processed');
351
352 $language = $this->getMockBuilder(ilLanguage::class)
353 ->disableOriginalConstructor()
354 ->getMock();
355
356 $certificateXlsFileLoader = $this->getMockBuilder(ilCertificateXlsFileLoader::class)
357 ->getMock();
358
359 $certificateXlsFileLoader->method('getXlsCertificateContent')
360 ->willReturn('<xml>Some XLS Content</xml>');
361
362 $xlsFoParser = new ilXlsFoParser(
363 $settings,
364 $pageFormats,
365 $xmlChecker,
366 $utilHelper,
367 $xlstProcess,
368 $language,
369 $certificateXlsFileLoader
370 );
371
372 $output = $xlsFoParser->parse($formData);
373
374 $this->assertSame('Something Processed', $output);
375 }
376}
Class ilCertificateBaseTestCase.
testCommasWillBeConvertedToPointInDecimalSepartor()
array $settings
Setting values (LTI parameters, custom parameters and local parameters).
Definition: System.php:200
Class ChatMainBarProvider \MainMenu\Provider.