ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilTermsOfServiceCriterionFormGUITest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
26 {
28  {
29  $document = $this
30  ->getMockBuilder(ilTermsOfServiceDocument::class)
31  ->disableOriginalConstructor()
32  ->getMock();
33 
34  $criterionAssignment = $this
35  ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
36  ->disableOriginalConstructor()
37  ->onlyMethods(['getCriterionId'])
38  ->addMethods(['getId'])
39  ->getMock();
40 
41  $criterionAssignment
42  ->method('getId')
43  ->willReturn(0);
44 
45  $criterionAssignment
46  ->method('getCriterionId')
47  ->willReturn('');
48 
49  $criterionTypeFactory = $this
50  ->getMockBuilder(ilTermsOfServiceCriterionTypeFactoryInterface::class)
51  ->getMock();
52 
53  $criterionType1 = $this
54  ->getMockBuilder(ilTermsOfServiceCriterionType::class)
55  ->getMock();
56 
57  $criterionType1
58  ->method('getTypeIdent')
59  ->willReturn('dummy1');
60 
61  $criterionType1
62  ->method('ui')
63  ->willReturn($this->getMockBuilder(ilTermsOfServiceCriterionTypeGUI::class)->getMock());
64 
65  $criterionType2 = $this
66  ->getMockBuilder(ilTermsOfServiceCriterionType::class)
67  ->getMock();
68 
69  $criterionType2
70  ->method('getTypeIdent')
71  ->willReturn('dummy2');
72 
73  $criterionType2
74  ->method('ui')
75  ->willReturn($this->getMockBuilder(ilTermsOfServiceCriterionTypeGUI::class)->getMock());
76 
77  $criterionTypeFactory
78  ->expects($this->once())
79  ->method('getTypesByIdentMap')
80  ->willReturn([
81  $criterionType1,
82  $criterionType2
83  ]);
84 
85  $user = $this
86  ->getMockBuilder(ilObjUser::class)
87  ->disableOriginalConstructor()
88  ->getMock();
89 
91  $document,
92  $criterionAssignment,
93  $criterionTypeFactory,
94  $user,
95  '',
96  'save',
97  'cancel'
98  );
99 
100  $this->assertSame($criterionType1->getTypeIdent(), $form->getItemByPostVar('criterion')->getValue());
101  }
102 
104  {
105  $document = $this
106  ->getMockBuilder(ilTermsOfServiceDocument::class)
107  ->disableOriginalConstructor()
108  ->getMock();
109 
110  $criterionAssignment = $this
111  ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
112  ->disableOriginalConstructor()
113  ->onlyMethods(['getCriterionId', 'getCriterionValue'])
114  ->addMethods(['getId'])
115  ->getMock();
116 
117  $criterionAssignment
118  ->method('getId')
119  ->willReturn(1);
120 
121  $criterionAssignment
122  ->method('getCriterionId')
123  ->willReturn('dummy2');
124 
125  $criterionAssignment
126  ->method('getCriterionValue')
127  ->willReturn(new ilTermsOfServiceCriterionConfig([]));
128 
129  $criterionTypeFactory = $this
130  ->getMockBuilder(ilTermsOfServiceCriterionTypeFactoryInterface::class)
131  ->getMock();
132 
133  $criterionType1 = $this
134  ->getMockBuilder(ilTermsOfServiceCriterionType::class)
135  ->getMock();
136 
137  $criterionType1
138  ->method('getTypeIdent')
139  ->willReturn('dummy1');
140 
141  $criterionType1
142  ->method('ui')
143  ->willReturn($this->getMockBuilder(ilTermsOfServiceCriterionTypeGUI::class)->getMock());
144 
145  $criterionType2 = $this
146  ->getMockBuilder(ilTermsOfServiceCriterionType::class)
147  ->getMock();
148 
149  $criterionType2
150  ->method('getTypeIdent')
151  ->willReturn('dummy2');
152 
153  $criterionType2
154  ->method('ui')
155  ->willReturn($this->getMockBuilder(ilTermsOfServiceCriterionTypeGUI::class)->getMock());
156 
157  $criterionTypeFactory
158  ->expects($this->once())
159  ->method('getTypesByIdentMap')
160  ->willReturn([
161  $criterionType1,
162  $criterionType2
163  ]);
164 
165  $user = $this
166  ->getMockBuilder(ilObjUser::class)
167  ->disableOriginalConstructor()
168  ->getMock();
169 
171  $document,
172  $criterionAssignment,
173  $criterionTypeFactory,
174  $user,
175  '',
176  'save',
177  'cancel'
178  );
179 
180  $this->assertSame($criterionType2->getTypeIdent(), $form->getItemByPostVar('criterion')->getValue());
181  }
182 
184  {
185  $document = $this
186  ->getMockBuilder(ilTermsOfServiceDocument::class)
187  ->disableOriginalConstructor()
188  ->getMock();
189 
190  $document
191  ->expects($this->once())
192  ->method('save');
193 
194  $document
195  ->expects($this->once())
196  ->method('attachCriterion');
197 
198  $criterionAssignment = $this
199  ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
200  ->disableOriginalConstructor()
201  ->onlyMethods(['getCriterionId', 'getCriterionValue'])
202  ->addMethods(['getId'])
203  ->getMock();
204 
205  $criterionAssignment
206  ->method('getId')
207  ->willReturn(0);
208 
209  $criterionAssignment
210  ->method('getCriterionId')
211  ->willReturn('');
212 
213  $criterionTypeFactory = $this
214  ->getMockBuilder(ilTermsOfServiceCriterionTypeFactoryInterface::class)
215  ->getMock();
216 
217  $criterionType1 = $this
218  ->getMockBuilder(ilTermsOfServiceCriterionType::class)
219  ->getMock();
220 
221  $criterionType1
222  ->method('getTypeIdent')
223  ->willReturn('dummy1');
224 
225  $criterionType1
226  ->method('ui')
227  ->willReturn($this->getMockBuilder(ilTermsOfServiceCriterionTypeGUI::class)->getMock());
228 
229  $criterionType2 = $this
230  ->getMockBuilder(ilTermsOfServiceCriterionType::class)
231  ->getMock();
232 
233  $criterionType2
234  ->method('getTypeIdent')
235  ->willReturn('dummy2');
236 
237  $criterionType2
238  ->method('ui')
239  ->willReturn($this->getMockBuilder(ilTermsOfServiceCriterionTypeGUI::class)->getMock());
240 
241  $criterionTypeFactory
242  ->expects($this->once())
243  ->method('getTypesByIdentMap')
244  ->willReturn([
245  $criterionType1,
246  $criterionType2
247  ]);
248 
249  $criterionTypeFactory
250  ->expects($this->once())
251  ->method('findByTypeIdent')
252  ->willReturn($criterionType1);
253 
254  $user = $this
255  ->getMockBuilder(ilObjUser::class)
256  ->disableOriginalConstructor()
257  ->onlyMethods(['getId'])
258  ->getMock();
259 
260  $user
261  ->method('getId')
262  ->willReturn(6);
263 
264  $form = $this->getMockBuilder(ilTermsOfServiceCriterionFormGUI::class)
265  ->setConstructorArgs([
266  $document,
267  $criterionAssignment,
268  $criterionTypeFactory,
269  $user,
270  'action',
271  'save',
272  'cancel'
273  ])
274  ->onlyMethods(['checkInput'])
275  ->getMock();
276 
277  $form
278  ->expects($this->once())
279  ->method('checkInput')
280  ->willReturn(true);
281 
282  $form->setCheckInputCalled(true);
283 
284  $this->assertTrue($form->saveObject());
285  $this->assertFalse($form->hasTranslatedError());
286  $this->assertEmpty($form->getTranslatedError());
287  }
288 
290  {
291  $lng = $this->getLanguageMock();
292 
293  $lng
294  ->method('txt')
295  ->willReturn('translation');
296 
297  $this->setGlobalVariable('lng', $lng);
298 
299  $document = $this
300  ->getMockBuilder(ilTermsOfServiceDocument::class)
301  ->disableOriginalConstructor()
302  ->getMock();
303 
304  $document
305  ->expects($this->never())
306  ->method('save');
307 
308  $document
309  ->expects($this->never())
310  ->method('attachCriterion');
311 
312  $criterionAssignment = $this
313  ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
314  ->disableOriginalConstructor()
315  ->onlyMethods(['getCriterionId', 'getCriterionValue'])
316  ->addMethods(['getId'])
317  ->getMock();
318 
319  $criterionAssignment
320  ->method('getId')
321  ->willReturn(1);
322 
323  $criterionAssignment
324  ->method('getCriterionId')
325  ->willReturn('usr_global_role');
326 
327  $criterionAssignment
328  ->method('getCriterionValue')
329  ->willReturn(new ilTermsOfServiceCriterionConfig(['role_id' => 4]));
330 
331  $criterionTypeFactory = $this
332  ->getMockBuilder(ilTermsOfServiceCriterionTypeFactoryInterface::class)
333  ->getMock();
334 
335  $criterionType1 = $this
336  ->getMockBuilder(ilTermsOfServiceCriterionType::class)
337  ->getMock();
338 
339  $criterionType1
340  ->method('getTypeIdent')
341  ->willReturn('dummy1');
342 
343  $criterionType1
344  ->method('ui')
345  ->willReturn($this->getMockBuilder(ilTermsOfServiceCriterionTypeGUI::class)->getMock());
346 
347  $criterionType2 = $this
348  ->getMockBuilder(ilTermsOfServiceCriterionType::class)
349  ->getMock();
350 
351  $criterionType2
352  ->method('getTypeIdent')
353  ->willReturn('dummy2');
354 
355  $criterionTypeGui2 = $this->getMockBuilder(ilTermsOfServiceCriterionTypeGUI::class)->getMock();
356 
357  $criterionTypeGui2
358  ->method('getConfigByForm')
359  ->willReturn($criterionAssignment->getCriterionValue());
360 
361  $criterionType2
362  ->method('ui')
363  ->willReturn($criterionTypeGui2);
364 
365  $criterionTypeFactory
366  ->expects($this->once())
367  ->method('getTypesByIdentMap')
368  ->willReturn([
369  $criterionType1,
370  $criterionType2
371  ]);
372 
373  $criterionTypeFactory
374  ->expects($this->exactly(2))
375  ->method('findByTypeIdent')
376  ->willReturnOnConsecutiveCalls(
377  $this->throwException(new ilTermsOfServiceCriterionTypeNotFoundException('')),
378  $criterionType1
379  );
380 
381  $anotherCriterionAssignment = $this
382  ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
383  ->disableOriginalConstructor()
384  ->onlyMethods(['getCriterionId', 'getCriterionValue'])
385  ->addMethods(['getId'])
386  ->getMock();
387 
388  $anotherCriterionAssignment
389  ->method('getId')
390  ->willReturn(2);
391 
392  $anotherCriterionAssignment
393  ->method('getCriterionId')
394  ->willReturn('usr_global_role');
395 
396  $anotherCriterionAssignment
397  ->method('getCriterionValue')
398  ->willReturn(new ilTermsOfServiceCriterionConfig(['role_id' => 4]));
399 
400  $document
401  ->expects($this->once())
402  ->method('criteria')
403  ->willReturn([$anotherCriterionAssignment]);
404 
405  $user = $this
406  ->getMockBuilder(ilObjUser::class)
407  ->disableOriginalConstructor()
408  ->onlyMethods(['getId'])
409  ->getMock();
410 
411  $user
412  ->method('getId')
413  ->willReturn(6);
414 
415  $form = $this->getMockBuilder(ilTermsOfServiceCriterionFormGUI::class)
416  ->setConstructorArgs([
417  $document,
418  $criterionAssignment,
419  $criterionTypeFactory,
420  $user,
421  'action',
422  'save',
423  'cancel'
424  ])
425  ->onlyMethods(['checkInput'])
426  ->getMock();
427 
428  $form
429  ->expects($this->exactly(2))
430  ->method('checkInput')
431  ->willReturn(true);
432 
433  $form->setCheckInputCalled(true);
434 
435  $this->assertFalse(
436  $form->saveObject(),
437  'Failed asserting form cannot be saved selected criterion type was not found'
438  );
439  $this->assertTrue($form->hasTranslatedError());
440  $this->assertNotEmpty($form->getTranslatedError());
441 
442  $this->assertFalse(
443  $form->saveObject(),
444  'Failed asserting form cannot be saved selected criterion type was already assigned to document'
445  );
446  $this->assertTrue($form->hasTranslatedError());
447  $this->assertNotEmpty($form->getTranslatedError());
448  }
449 }
setGlobalVariable(string $name, $value)
$lng
Class ilTermsOfServiceCriterionFormGUI.
Class ilTermsOfServiceCriterionConfig.
Class ilTermsOfServiceBaseTest.
Class ilTermsOfServiceCriterionFormGUITest.