ILIAS  release_8 Revision v8.24
ilTermsOfServiceDocumentCriterionAssignmentConstraintTest Class Reference

Class ilTermsOfServiceDocumentCriterionAssignmentConstraintTest. More...

+ Inheritance diagram for ilTermsOfServiceDocumentCriterionAssignmentConstraintTest:
+ Collaboration diagram for ilTermsOfServiceDocumentCriterionAssignmentConstraintTest:

Public Member Functions

 criteriaAssignmentProvider ()
 
 testConstraintAcceptanceWorksAsExpected (ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
 @dataProvider criteriaAssignmentProvider More...
 
 testConstraintCheckWorksAsExpected (ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
 @dataProvider criteriaAssignmentProvider More...
 
 testConstraintProblemDetectionWorksAsExpected (ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
 @dataProvider criteriaAssignmentProvider More...
 
 testConstraintRestrictionWorksAsExpected (ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
 @dataProvider criteriaAssignmentProvider More...
 
 testConstraintProblemBuilderWorksAsExpected (ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
 @dataProvider criteriaAssignmentProvider More...
 
 testConstraintExposesCorrectErrorMessagesAfterMultiAccept (ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
 @dataProvider criteriaAssignmentProvider More...
 
 testCriterionWithSameNatureIsNotAcceptedWhenAlreadyAssigned (ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
 @dataProvider criteriaAssignmentProvider More...
 

Protected Member Functions

 getCriterionTypeFactoryMock ()
 
 getCriterionTypeMock (string $typeIdent)
 
 getTypeMockForConstraint ()
 
- Protected Member Functions inherited from ilTermsOfServiceCriterionBaseTest
 getRbacReviewMock ()
 
 getObjectDataCacheMock ()
 
 getRadioGroupMock ()
 
 getFormMock ()
 
 getUserMock ()
 
- Protected Member Functions inherited from ilTermsOfServiceBaseTest
 setUp ()
 
 getLanguageMock ()
 
 getUiFactoryMock ()
 
 setGlobalVariable (string $name, $value)
 
 getCriterionConfig ($value=null)
 

Additional Inherited Members

- Protected Attributes inherited from ilTermsOfServiceBaseTest
Container $dic
 

Detailed Description

Member Function Documentation

◆ criteriaAssignmentProvider()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::criteriaAssignmentProvider ( )

Definition at line 85 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

85 : array
86 {
87 $criterionAssignment1 = $this
88 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
89 ->disableOriginalConstructor()
90 ->onlyMethods(['getCriterionValue', 'getCriterionId'])
91 ->addMethods(['getId'])
92 ->getMock();
93
94 $criterionAssignment1
95 ->method('getId')
96 ->willReturn(1);
97
98 $criterionAssignment1
99 ->method('getCriterionId')
100 ->willReturn('usr_global_role');
101
102 $criterionAssignment1
103 ->method('getCriterionValue')
104 ->willReturn($this->getCriterionConfig(['role_id' => 4]));
105
106 $criterionAssignment2 = $this
107 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
108 ->disableOriginalConstructor()
109 ->onlyMethods(['getCriterionValue', 'getCriterionId'])
110 ->addMethods(['getId'])
111 ->getMock();
112
113 $criterionAssignment2
114 ->method('getId')
115 ->willReturn(1);
116
117 $criterionAssignment2
118 ->method('getCriterionId')
119 ->willReturn('usr_language');
120
121 $criterionAssignment2
122 ->method('getCriterionValue')
123 ->willReturn($this->getCriterionConfig(['lng' => 'de']));
124
125 $criterionAssignment3 = $this
126 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
127 ->onlyMethods(['getCriterionValue', 'getCriterionId'])
128 ->addMethods(['getId'])
129 ->disableOriginalConstructor()
130 ->getMock();
131
132 $criterionAssignment3
133 ->method('getId')
134 ->willReturn(0);
135
136 $criterionAssignment3
137 ->method('getCriterionId')
138 ->willReturn('usr_language');
139
140 $criterionAssignment3
141 ->method('getCriterionValue')
142 ->willReturn($this->getCriterionConfig(['lng' => 'de']));
143
144 $criterionAssignment4 = $this
145 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
146 ->disableOriginalConstructor()
147 ->onlyMethods(['getCriterionValue', 'getCriterionId'])
148 ->addMethods(['getId'])
149 ->getMock();
150
151 $criterionAssignment4
152 ->method('getId')
153 ->willReturn(0);
154
155 $criterionAssignment4
156 ->method('getCriterionId')
157 ->willReturn('usr_global_role');
158
159 $criterionAssignment4
160 ->method('getCriterionValue')
161 ->willReturn($this->getCriterionConfig(['role_id' => 6]));
162
163 return [
164 [$criterionAssignment1, $criterionAssignment2, $criterionAssignment3, $criterionAssignment4]
165 ];
166 }

References ilTermsOfServiceBaseTest\getCriterionConfig().

+ Here is the call graph for this function:

◆ getCriterionTypeFactoryMock()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::getCriterionTypeFactoryMock ( )
protected
Returns
MockObject&ilTermsOfServiceCriterionTypeFactoryInterface

Definition at line 33 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

34 {
35 $criterionTypeFactory = $this
36 ->getMockBuilder(ilTermsOfServiceCriterionTypeFactoryInterface::class)
37 ->getMock();
38
39 return $criterionTypeFactory;
40 }

Referenced by getTypeMockForConstraint().

+ Here is the caller graph for this function:

◆ getCriterionTypeMock()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::getCriterionTypeMock ( string  $typeIdent)
protected
Parameters
string$typeIdent
Returns
MockObject&ilTermsOfServiceCriterionType

Definition at line 46 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

47 {
48 $criterionType = $this
49 ->getMockBuilder(ilTermsOfServiceCriterionType::class)
50 ->getMock();
51
52 $criterionType
53 ->method('getTypeIdent')
54 ->willReturn($typeIdent);
55
56 return $criterionType;
57 }
Interface ilTermsOfServiceCriterionType.

Referenced by getTypeMockForConstraint().

+ Here is the caller graph for this function:

◆ getTypeMockForConstraint()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::getTypeMockForConstraint ( )
protected
Returns
MockObject&ilTermsOfServiceCriterionTypeFactoryInterface

Definition at line 62 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

63 {
64 $criterionTypeFactory = $this->getCriterionTypeFactoryMock();
65
66 $criterionType1 = $this->getCriterionTypeMock('dummy');
67
68 $criterionType1
69 ->method('hasUniqueNature')
70 ->willReturn(false);
71
72 $criterionTypeFactory
73 ->method('getTypesByIdentMap')
74 ->willReturn([
75 $criterionType1->getTypeIdent() => $criterionType1,
76 ]);
77
78 $criterionTypeFactory
79 ->method('findByTypeIdent')
80 ->willReturn($criterionType1);
81
82 return $criterionTypeFactory;
83 }

References getCriterionTypeFactoryMock(), and getCriterionTypeMock().

+ Here is the call graph for this function:

◆ testConstraintAcceptanceWorksAsExpected()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::testConstraintAcceptanceWorksAsExpected ( ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment1,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment2,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment3,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment4 
)

@dataProvider criteriaAssignmentProvider

Parameters
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment1
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment2
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment3
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment4

Definition at line 175 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

180 : void {
181 $document1 = $this
182 ->getMockBuilder(ilTermsOfServiceDocument::class)
183 ->disableOriginalConstructor()
184 ->onlyMethods(['criteria'])
185 ->getMock();
186
187 $document1
188 ->method('criteria')
189 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
190
193 $document1,
194 new Factory(),
195 $this->getLanguageMock()
196 );
197
198 $this->assertTrue($constraint->accepts($criterionAssignment1));
199 $this->assertTrue($constraint->accepts($criterionAssignment2));
200 $this->assertFalse($constraint->accepts($criterionAssignment3));
201 $this->assertTrue($constraint->accepts($criterionAssignment4));
202 }
Builds data types.
Definition: Factory.php:21

◆ testConstraintCheckWorksAsExpected()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::testConstraintCheckWorksAsExpected ( ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment1,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment2,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment3,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment4 
)

@dataProvider criteriaAssignmentProvider

Parameters
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment1
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment2
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment3
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment4

Definition at line 211 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

216 : void {
217 $document1 = $this
218 ->getMockBuilder(ilTermsOfServiceDocument::class)
219 ->disableOriginalConstructor()
220 ->onlyMethods(['criteria'])
221 ->getMock();
222
223 $document1
224 ->method('criteria')
225 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
226
229 $document1,
230 new Factory(),
231 $this->getLanguageMock()
232 );
233
234 $raised = false;
235
236 try {
237 $constraint->check($criterionAssignment4);
238 } catch (UnexpectedValueException $e) {
239 $raised = true;
240 }
241
242 $this->assertFalse($raised);
243
244 try {
245 $constraint->check($criterionAssignment3);
246 $raised = false;
247 } catch (UnexpectedValueException $e) {
248 $this->assertSame('The passed assignment must be unique for the document!', $e->getMessage());
249 $raised = true;
250 }
251
252 $this->assertTrue($raised);
253 }

◆ testConstraintExposesCorrectErrorMessagesAfterMultiAccept()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::testConstraintExposesCorrectErrorMessagesAfterMultiAccept ( ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment1,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment2,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment3,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment4 
)

@dataProvider criteriaAssignmentProvider

Parameters
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment1
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment2
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment3
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment4

Definition at line 380 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

385 : void {
386 $document1 = $this
387 ->getMockBuilder(ilTermsOfServiceDocument::class)
388 ->disableOriginalConstructor()
389 ->onlyMethods(['criteria'])
390 ->getMock();
391
392 $document1
393 ->method('criteria')
394 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
395
398 $document1,
399 new Factory(),
400 $this->getLanguageMock()
401 );
402
403 $criterionAssignment5 = clone $criterionAssignment3;
404
405 $constraint->accepts($criterionAssignment1);
406 $constraint->accepts($criterionAssignment2);
407 $constraint->accepts($criterionAssignment3);
408 $constraint->accepts($criterionAssignment4);
409 $constraint->accepts($criterionAssignment5);
410
411 $this->assertSame(
412 'The passed assignment must be unique for the document!',
413 $constraint->problemWith($criterionAssignment3)
414 );
415 $this->assertSame(
416 'The passed assignment must be unique for the document!',
417 $constraint->problemWith($criterionAssignment5)
418 );
419 }

◆ testConstraintProblemBuilderWorksAsExpected()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::testConstraintProblemBuilderWorksAsExpected ( ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment1,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment2,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment3,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment4 
)

@dataProvider criteriaAssignmentProvider

Parameters
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment1
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment2
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment3
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment4

Definition at line 344 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

349 : void {
350 $document1 = $this
351 ->getMockBuilder(ilTermsOfServiceDocument::class)
352 ->disableOriginalConstructor()
353 ->onlyMethods(['criteria'])
354 ->getMock();
355
356 $document1
357 ->method('criteria')
358 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
359
362 $document1,
363 new Factory(),
364 $this->getLanguageMock()
365 );
366
367 $newConstraint = $constraint->withProblemBuilder(function () {
368 return 'phpunit';
369 });
370 $this->assertSame('phpunit', $newConstraint->problemWith($criterionAssignment3));
371 }

◆ testConstraintProblemDetectionWorksAsExpected()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::testConstraintProblemDetectionWorksAsExpected ( ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment1,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment2,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment3,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment4 
)

@dataProvider criteriaAssignmentProvider

Parameters
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment1
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment2
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment3
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment4

Definition at line 262 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

267 : void {
268 $document1 = $this
269 ->getMockBuilder(ilTermsOfServiceDocument::class)
270 ->disableOriginalConstructor()
271 ->onlyMethods(['criteria'])
272 ->getMock();
273
274 $document1
275 ->method('criteria')
276 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
277
280 $document1,
281 new Factory(),
282 $this->getLanguageMock()
283 );
284
285 $this->assertNull($constraint->problemWith($criterionAssignment1));
286 $this->assertNull($constraint->problemWith($criterionAssignment2));
287 $this->assertNull($constraint->problemWith($criterionAssignment4));
288 $this->assertIsString($constraint->problemWith($criterionAssignment3));
289 }

◆ testConstraintRestrictionWorksAsExpected()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::testConstraintRestrictionWorksAsExpected ( ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment1,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment2,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment3,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment4 
)

@dataProvider criteriaAssignmentProvider

Parameters
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment1
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment2
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment3
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment4

Definition at line 298 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

303 : void {
304 $document1 = $this
305 ->getMockBuilder(ilTermsOfServiceDocument::class)
306 ->disableOriginalConstructor()
307 ->onlyMethods(['criteria'])
308 ->getMock();
309
310 $document1
311 ->method('criteria')
312 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
313
314 $dataFavtgory = new Factory();
315
318 $document1,
319 $dataFavtgory,
320 $this->getLanguageMock()
321 );
322
323 $ok = $dataFavtgory->ok($criterionAssignment1);
324 $ok2 = $dataFavtgory->ok($criterionAssignment3);
325 $error = $dataFavtgory->error('An error occurred');
326
327 $result = $constraint->applyTo($ok);
328 $this->assertTrue($result->isOK());
329
330 $result = $constraint->applyTo($ok2);
331 $this->assertTrue($result->isError());
332
333 $result = $constraint->applyTo($error);
334 $this->assertSame($error, $result);
335 }

◆ testCriterionWithSameNatureIsNotAcceptedWhenAlreadyAssigned()

ilTermsOfServiceDocumentCriterionAssignmentConstraintTest::testCriterionWithSameNatureIsNotAcceptedWhenAlreadyAssigned ( ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment1,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment2,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment3,
ilTermsOfServiceDocumentCriterionAssignment  $criterionAssignment4 
)

@dataProvider criteriaAssignmentProvider

Parameters
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment1
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment2
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment3
ilTermsOfServiceDocumentCriterionAssignment$criterionAssignment4

Definition at line 428 of file ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.php.

433 : void {
434 $document = $this
435 ->getMockBuilder(ilTermsOfServiceDocument::class)
436 ->disableOriginalConstructor()
437 ->onlyMethods(['criteria'])
438 ->getMock();
439
440 $document
441 ->method('criteria')
442 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
443
444 $criterionTypeFactory = $this->getCriterionTypeFactoryMock();
445
446 $criterionType1 = $this->getCriterionTypeMock('usr_global_role');
447 $criterionType2 = $this->getCriterionTypeMock('usr_language');
448
449 $criterionType1
450 ->method('hasUniqueNature')
451 ->willReturn(false);
452
453 $criterionType2
454 ->method('hasUniqueNature')
455 ->willReturn(true);
456
457 $criterionTypeFactory
458 ->method('findByTypeIdent')
459 ->willReturn($criterionType2);
460
462 $criterionTypeFactory,
463 $document,
464 new Factory(),
465 $this->getLanguageMock()
466 );
467
468 $criterionWithSameNature = $this
469 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
470 ->onlyMethods(['getCriterionValue', 'getCriterionId'])
471 ->addMethods(['getId'])
472 ->disableOriginalConstructor()
473 ->getMock();
474
475 $criterionWithSameNature
476 ->method('getId')
477 ->willReturn(0);
478
479 $criterionWithSameNature
480 ->method('getCriterionId')
481 ->willReturn('usr_language');
482
483 $criterionWithSameNature
484 ->method('getCriterionValue')
485 ->willReturn($this->getCriterionConfig(['lng' => 'ru']));
486
487 $this->assertFalse($constraint->accepts($criterionWithSameNature));
488 }

The documentation for this class was generated from the following file: