19 declare(strict_types=1);
35 $criterionTypeFactory = $this
36 ->getMockBuilder(ilTermsOfServiceCriterionTypeFactoryInterface::class)
39 return $criterionTypeFactory;
48 $criterionType = $this
49 ->getMockBuilder(ilTermsOfServiceCriterionType::class)
53 ->method(
'getTypeIdent')
54 ->willReturn($typeIdent);
56 return $criterionType;
69 ->method(
'hasUniqueNature')
73 ->method(
'getTypesByIdentMap')
75 $criterionType1->getTypeIdent() => $criterionType1,
79 ->method(
'findByTypeIdent')
80 ->willReturn($criterionType1);
82 return $criterionTypeFactory;
87 $criterionAssignment1 = $this
88 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
89 ->disableOriginalConstructor()
90 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
91 ->addMethods([
'getId'])
99 ->method(
'getCriterionId')
100 ->willReturn(
'usr_global_role');
102 $criterionAssignment1
103 ->method(
'getCriterionValue')
106 $criterionAssignment2 = $this
107 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
108 ->disableOriginalConstructor()
109 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
110 ->addMethods([
'getId'])
113 $criterionAssignment2
117 $criterionAssignment2
118 ->method(
'getCriterionId')
119 ->willReturn(
'usr_language');
121 $criterionAssignment2
122 ->method(
'getCriterionValue')
125 $criterionAssignment3 = $this
126 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
127 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
128 ->addMethods([
'getId'])
129 ->disableOriginalConstructor()
132 $criterionAssignment3
136 $criterionAssignment3
137 ->method(
'getCriterionId')
138 ->willReturn(
'usr_language');
140 $criterionAssignment3
141 ->method(
'getCriterionValue')
144 $criterionAssignment4 = $this
145 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
146 ->disableOriginalConstructor()
147 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
148 ->addMethods([
'getId'])
151 $criterionAssignment4
155 $criterionAssignment4
156 ->method(
'getCriterionId')
157 ->willReturn(
'usr_global_role');
159 $criterionAssignment4
160 ->method(
'getCriterionValue')
164 [$criterionAssignment1, $criterionAssignment2, $criterionAssignment3, $criterionAssignment4]
182 ->getMockBuilder(ilTermsOfServiceDocument::class)
183 ->disableOriginalConstructor()
184 ->onlyMethods([
'criteria'])
189 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
198 $this->assertTrue($constraint->accepts($criterionAssignment1));
199 $this->assertTrue($constraint->accepts($criterionAssignment2));
200 $this->assertFalse($constraint->accepts($criterionAssignment3));
201 $this->assertTrue($constraint->accepts($criterionAssignment4));
218 ->getMockBuilder(ilTermsOfServiceDocument::class)
219 ->disableOriginalConstructor()
220 ->onlyMethods([
'criteria'])
225 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
237 $constraint->check($criterionAssignment4);
242 $this->assertFalse($raised);
245 $constraint->check($criterionAssignment3);
248 $this->assertSame(
'The passed assignment must be unique for the document!', $e->getMessage());
252 $this->assertTrue($raised);
269 ->getMockBuilder(ilTermsOfServiceDocument::class)
270 ->disableOriginalConstructor()
271 ->onlyMethods([
'criteria'])
276 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
285 $this->assertNull($constraint->problemWith($criterionAssignment1));
286 $this->assertNull($constraint->problemWith($criterionAssignment2));
287 $this->assertNull($constraint->problemWith($criterionAssignment4));
288 $this->assertIsString($constraint->problemWith($criterionAssignment3));
305 ->getMockBuilder(ilTermsOfServiceDocument::class)
306 ->disableOriginalConstructor()
307 ->onlyMethods([
'criteria'])
312 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
323 $ok = $dataFavtgory->ok($criterionAssignment1);
324 $ok2 = $dataFavtgory->ok($criterionAssignment3);
325 $error = $dataFavtgory->error(
'An error occurred');
327 $result = $constraint->applyTo($ok);
328 $this->assertTrue($result->isOK());
330 $result = $constraint->applyTo($ok2);
331 $this->assertTrue($result->isError());
333 $result = $constraint->applyTo($error);
334 $this->assertSame($error, $result);
351 ->getMockBuilder(ilTermsOfServiceDocument::class)
352 ->disableOriginalConstructor()
353 ->onlyMethods([
'criteria'])
358 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
367 $newConstraint = $constraint->withProblemBuilder(
function () {
370 $this->assertSame(
'phpunit', $newConstraint->problemWith($criterionAssignment3));
387 ->getMockBuilder(ilTermsOfServiceDocument::class)
388 ->disableOriginalConstructor()
389 ->onlyMethods([
'criteria'])
394 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
403 $criterionAssignment5 = clone $criterionAssignment3;
405 $constraint->accepts($criterionAssignment1);
406 $constraint->accepts($criterionAssignment2);
407 $constraint->accepts($criterionAssignment3);
408 $constraint->accepts($criterionAssignment4);
409 $constraint->accepts($criterionAssignment5);
412 'The passed assignment must be unique for the document!',
413 $constraint->problemWith($criterionAssignment3)
416 'The passed assignment must be unique for the document!',
417 $constraint->problemWith($criterionAssignment5)
435 ->getMockBuilder(ilTermsOfServiceDocument::class)
436 ->disableOriginalConstructor()
437 ->onlyMethods([
'criteria'])
442 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
450 ->method(
'hasUniqueNature')
454 ->method(
'hasUniqueNature')
457 $criterionTypeFactory
458 ->method(
'findByTypeIdent')
459 ->willReturn($criterionType2);
462 $criterionTypeFactory,
468 $criterionWithSameNature = $this
469 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
470 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
471 ->addMethods([
'getId'])
472 ->disableOriginalConstructor()
475 $criterionWithSameNature
479 $criterionWithSameNature
480 ->method(
'getCriterionId')
481 ->willReturn(
'usr_language');
483 $criterionWithSameNature
484 ->method(
'getCriterionValue')
487 $this->assertFalse($constraint->accepts($criterionWithSameNature));
testCriterionWithSameNatureIsNotAcceptedWhenAlreadyAssigned(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
criteriaAssignmentProvider
Interface ilTermsOfServiceCriterionType.
testConstraintAcceptanceWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
criteriaAssignmentProvider
getCriterionTypeMock(string $typeIdent)
Class ilTermsOfServiceCriterionBaseTest.
Class ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.
testConstraintRestrictionWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
criteriaAssignmentProvider
getCriterionConfig($value=null)
Class ilTermsOfServiceDocumentCriterionAssignment.
testConstraintCheckWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
criteriaAssignmentProvider
testConstraintProblemBuilderWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
criteriaAssignmentProvider
criteriaAssignmentProvider()
testConstraintProblemDetectionWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
criteriaAssignmentProvider
getTypeMockForConstraint()
getCriterionTypeFactoryMock()
Class ilTermsOfServiceDocumentCriterionAssignmentConstraint.
testConstraintExposesCorrectErrorMessagesAfterMultiAccept(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
criteriaAssignmentProvider
Interface ilTermsOfServiceCriterionTypeFactoryInterface.