1<?
php declare(strict_types=1);
5use PHPUnit\Framework\MockObject\MockObject;
19 $criterionTypeFactory = $this
20 ->getMockBuilder(ilTermsOfServiceCriterionTypeFactoryInterface::class)
23 return $criterionTypeFactory;
33 $criterionType = $this
34 ->getMockBuilder(ilTermsOfServiceCriterionType::class)
38 ->expects($this->any())
39 ->method(
'getTypeIdent')
40 ->willReturn($typeIdent);
42 return $criterionType;
56 ->expects($this->any())
57 ->method(
'hasUniqueNature')
61 ->expects($this->any())
62 ->method(
'getTypesByIdentMap')
64 $criterionType1->getTypeIdent() => $criterionType1,
68 ->expects($this->any())
69 ->method(
'findByTypeIdent')
70 ->willReturn($criterionType1);
72 return $criterionTypeFactory;
81 $criterionAssignment1 = $this
82 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
83 ->disableOriginalConstructor()
84 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
85 ->addMethods([
'getId'])
89 ->expects($this->any())
94 ->expects($this->any())
95 ->method(
'getCriterionId')
96 ->willReturn(
'usr_global_role');
99 ->expects($this->any())
100 ->method(
'getCriterionValue')
103 $criterionAssignment2 = $this
104 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
105 ->disableOriginalConstructor()
106 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
107 ->addMethods([
'getId'])
110 $criterionAssignment2
111 ->expects($this->any())
115 $criterionAssignment2
116 ->expects($this->any())
117 ->method(
'getCriterionId')
118 ->willReturn(
'usr_language');
120 $criterionAssignment2
121 ->expects($this->any())
122 ->method(
'getCriterionValue')
125 $criterionAssignment3 = $this
126 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
127 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
128 ->addMethods([
'getId'])
129 ->disableOriginalConstructor()
132 $criterionAssignment3
133 ->expects($this->any())
137 $criterionAssignment3
138 ->expects($this->any())
139 ->method(
'getCriterionId')
140 ->willReturn(
'usr_language');
142 $criterionAssignment3
143 ->expects($this->any())
144 ->method(
'getCriterionValue')
147 $criterionAssignment4 = $this
148 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
149 ->disableOriginalConstructor()
150 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
151 ->addMethods([
'getId'])
154 $criterionAssignment4
155 ->expects($this->any())
159 $criterionAssignment4
160 ->expects($this->any())
161 ->method(
'getCriterionId')
162 ->willReturn(
'usr_global_role');
164 $criterionAssignment4
165 ->expects($this->any())
166 ->method(
'getCriterionValue')
170 [$criterionAssignment1, $criterionAssignment2, $criterionAssignment3, $criterionAssignment4]
190 ->disableOriginalConstructor()
191 ->onlyMethods([
'criteria'])
195 ->expects($this->any())
197 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
206 $this->assertTrue($constraint->accepts($criterionAssignment1));
207 $this->assertTrue($constraint->accepts($criterionAssignment2));
208 $this->assertFalse($constraint->accepts($criterionAssignment3));
209 $this->assertTrue($constraint->accepts($criterionAssignment4));
228 ->disableOriginalConstructor()
229 ->onlyMethods([
'criteria'])
233 ->expects($this->any())
235 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
238 $this->getTypeMockForConstraint(),
241 $this->getLanguageMock()
247 $constraint->check($criterionAssignment4);
252 $this->assertFalse($raised);
255 $constraint->check($criterionAssignment3);
258 $this->assertEquals(
'The passed assignment must be unique for the document!',
$e->getMessage());
262 $this->assertTrue($raised);
281 ->disableOriginalConstructor()
282 ->onlyMethods([
'criteria'])
286 ->expects($this->any())
288 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
291 $this->getTypeMockForConstraint(),
294 $this->getLanguageMock()
297 $this->assertNull($constraint->problemWith($criterionAssignment1));
298 $this->assertNull($constraint->problemWith($criterionAssignment2));
299 $this->assertNull($constraint->problemWith($criterionAssignment4));
300 $this->assertIsString($constraint->problemWith($criterionAssignment3));
319 ->disableOriginalConstructor()
320 ->onlyMethods([
'criteria'])
324 ->expects($this->any())
326 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
331 $this->getTypeMockForConstraint(),
334 $this->getLanguageMock()
337 $ok = $dataFavtgory->ok($criterionAssignment1);
338 $ok2 = $dataFavtgory->ok($criterionAssignment3);
339 $error = $dataFavtgory->error(
'An error occurred');
342 $this->assertTrue(
$result->isOk());
344 $result = $constraint->applyTo($ok2);
345 $this->assertTrue(
$result->isError());
347 $result = $constraint->applyTo($error);
348 $this->assertSame($error,
$result);
367 ->disableOriginalConstructor()
368 ->onlyMethods([
'criteria'])
372 ->expects($this->any())
374 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
377 $this->getTypeMockForConstraint(),
380 $this->getLanguageMock()
383 $newConstraint = $constraint->withProblemBuilder(
function () {
386 $this->assertEquals(
'phpunit', $newConstraint->problemWith($criterionAssignment3));
405 ->disableOriginalConstructor()
406 ->onlyMethods([
'criteria'])
410 ->expects($this->any())
412 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
415 $this->getTypeMockForConstraint(),
418 $this->getLanguageMock()
421 $criterionAssignment5 = clone $criterionAssignment3;
423 $constraint->accepts($criterionAssignment1);
424 $constraint->accepts($criterionAssignment2);
425 $constraint->accepts($criterionAssignment3);
426 $constraint->accepts($criterionAssignment4);
427 $constraint->accepts($criterionAssignment5);
430 'The passed assignment must be unique for the document!',
431 $constraint->problemWith($criterionAssignment3)
434 'The passed assignment must be unique for the document!',
435 $constraint->problemWith($criterionAssignment5)
455 ->disableOriginalConstructor()
456 ->onlyMethods([
'criteria'])
460 ->expects($this->any())
462 ->willReturn([$criterionAssignment1, $criterionAssignment2]);
464 $criterionTypeFactory = $this->getCriterionTypeFactoryMock();
466 $criterionType1 = $this->getCriterionTypeMock(
'usr_global_role');
467 $criterionType2 = $this->getCriterionTypeMock(
'usr_language');
470 ->expects($this->any())
471 ->method(
'hasUniqueNature')
475 ->expects($this->any())
476 ->method(
'hasUniqueNature')
479 $criterionTypeFactory
480 ->expects($this->any())
481 ->method(
'findByTypeIdent')
482 ->willReturn($criterionType2);
485 $criterionTypeFactory,
488 $this->getLanguageMock()
491 $criterionWithSameNature = $this
492 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
493 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
494 ->addMethods([
'getId'])
495 ->disableOriginalConstructor()
498 $criterionWithSameNature
499 ->expects($this->any())
503 $criterionWithSameNature
504 ->expects($this->any())
505 ->method(
'getCriterionId')
506 ->willReturn(
'usr_language');
508 $criterionWithSameNature
509 ->expects($this->any())
510 ->method(
'getCriterionValue')
511 ->willReturn($this->getCriterionConfig([
'lng' =>
'ru']));
513 $this->assertFalse($constraint->accepts($criterionWithSameNature));
An exception for terminatinating execution or to throw for unit testing.
getCriterionConfig($value=null)
Class ilTermsOfServiceCriterionBaseTest.
Class ilTermsOfServiceDocumentCriterionAssignmentConstraintTest.
getTypeMockForConstraint()
testConstraintAcceptanceWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
@dataProvider criteriaAssignmentProvider
criteriaAssignmentProvider()
testConstraintProblemDetectionWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
@dataProvider criteriaAssignmentProvider
testConstraintProblemBuilderWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
@dataProvider criteriaAssignmentProvider
testConstraintCheckWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
@dataProvider criteriaAssignmentProvider
testConstraintRestrictionWorksAsExpected(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
@dataProvider criteriaAssignmentProvider
testConstraintExposesCorrectErrorMessagesAfterMultiAccept(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
@dataProvider criteriaAssignmentProvider
testCriterionWithSameNatureIsNotAcceptedWhenAlreadyAssigned(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment4)
@dataProvider criteriaAssignmentProvider
getCriterionTypeMock(string $typeIdent)
getCriterionTypeFactoryMock()
Class ilTermsOfServiceDocumentCriterionAssignmentConstraint.
Class ilTermsOfServiceDocumentCriterionAssignment.
Class ilTermsOfServiceDocument.
Interface ilTermsOfServiceCriterionTypeFactoryInterface.
Interface ilTermsOfServiceCriterionType.