19 declare(strict_types=1);
31 $criterionAssignment1 = $this
32 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
33 ->disableOriginalConstructor()
34 ->onlyMethods([
'getCriterionValue',
'getCriterionId',
'store',
'delete'])
35 ->addMethods([
'getId'])
43 ->method(
'getCriterionId')
44 ->willReturn(
'usr_global_role');
47 ->method(
'getCriterionValue')
50 $criterionAssignment2 = $this
51 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
52 ->disableOriginalConstructor()
53 ->onlyMethods([
'getCriterionValue',
'getCriterionId',
'store',
'delete'])
54 ->addMethods([
'getId'])
62 ->method(
'getCriterionId')
63 ->willReturn(
'usr_language');
66 ->method(
'getCriterionValue')
69 $criterionAssignment3 = $this
70 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
71 ->disableOriginalConstructor()
72 ->onlyMethods([
'getCriterionValue',
'getCriterionId',
'store',
'delete'])
73 ->addMethods([
'getId'])
81 ->method(
'getCriterionId')
82 ->willReturn(
'usr_global_role');
85 ->method(
'getCriterionValue')
89 [$criterionAssignment1, $criterionAssignment2, $criterionAssignment3]
104 $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
105 $criterionConnector = $this->getMockBuilder(arConnector::class)->getMock();
108 ->expects($this->once())
110 ->willReturnCallback(
function () use ($criterionAssignment1, $criterionAssignment2, $criterionAssignment3) {
113 'id' => $criterionAssignment1->getId(),
119 'id' => $criterionAssignment2->getId(),
125 'id' => $criterionAssignment3->getId(),
138 $document->buildFromArray([
140 'title' =>
'phpunit',
143 $this->assertCount(3, $document->criteria());
157 $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
158 $criterionConnector = $this->getMockBuilder(arConnector::class)->getMock();
161 ->expects($this->once())
163 ->willReturnCallback(
function () {
167 $object->title =
'phpunit';
168 $object->creation_ts = time();
169 $object->modification_ts = time();
170 $object->owner_usr_id = 6;
171 $object->last_modified_usr_id = 6;
172 $object->sorting = 10;
173 $object->text =
'HelloWorld';
179 ->expects($this->once())
181 ->willReturnCallback(
function () use ($criterionAssignment1, $criterionAssignment2, $criterionAssignment3) {
184 'id' => $criterionAssignment1->getId(),
190 'id' => $criterionAssignment2->getId(),
196 'id' => $criterionAssignment3->getId(),
209 $this->assertCount(3, $document->criteria());
224 $document->attachCriterion($criterionAssignment1);
225 $document->attachCriterion($criterionAssignment2);
226 $document->attachCriterion($criterionAssignment3);
228 $this->assertCount(3, $document->criteria());
243 $document->attachCriterion($criterionAssignment1);
244 $document->attachCriterion($criterionAssignment2);
245 $document->attachCriterion($criterionAssignment3);
247 $this->assertCount(3, $document->criteria());
249 $document->detachCriterion($criterionAssignment2);
250 $this->assertCount(2, $document->criteria());
264 $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
269 ->expects($this->exactly(2))
270 ->method(
'affectedRows')
271 ->willReturnOnConsecutiveCalls(0, 1);
274 ->expects($this->once())
279 ->expects($this->once())
284 $document->attachCriterion($criterionAssignment1);
285 $document->attachCriterion($criterionAssignment2);
286 $document->attachCriterion($criterionAssignment3);
288 $criterionAssignment1
289 ->expects($this->exactly(2))
292 $criterionAssignment1
293 ->expects($this->once())
296 $criterionAssignment2
297 ->expects($this->once())
300 $criterionAssignment2
301 ->expects($this->once())
304 $criterionAssignment3
305 ->expects($this->exactly(2))
308 $criterionAssignment3
309 ->expects($this->once())
312 $this->assertCount(3, $document->criteria());
316 $document->detachCriterion($criterionAssignment2);
320 $this->assertCount(2, $document->criteria());
322 $document->detachCriterion($criterionAssignment1);
323 $document->detachCriterion($criterionAssignment3);
325 $this->assertCount(0, $document->criteria());
332 $this->expectException(ilTermsOfServiceDuplicateCriterionAssignmentException::class);
334 $criterionAssignment1 = $this
335 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
336 ->disableOriginalConstructor()
337 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
338 ->addMethods([
'getId'])
341 $criterionAssignment1
345 $criterionAssignment1
346 ->method(
'getCriterionId')
347 ->willReturn(
'usr_global_role');
349 $criterionAssignment1
350 ->method(
'getCriterionValue')
353 $criterionAssignment2 = $this
354 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
355 ->disableOriginalConstructor()
356 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
357 ->addMethods([
'getId'])
360 $criterionAssignment2
364 $criterionAssignment2
365 ->method(
'getCriterionId')
366 ->willReturn(
'usr_global_role');
368 $criterionAssignment2
369 ->method(
'getCriterionValue')
374 $document->attachCriterion($criterionAssignment1);
375 $document->attachCriterion($criterionAssignment2);
380 $this->expectException(ilTermsOfServiceDuplicateCriterionAssignmentException::class);
382 $criterionAssignment1 = $this
383 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
384 ->disableOriginalConstructor()
385 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
386 ->addMethods([
'getId'])
389 $criterionAssignment1
393 $criterionAssignment1
394 ->method(
'getCriterionId')
395 ->willReturn(
'usr_global_role');
397 $criterionAssignment1
398 ->method(
'getCriterionValue')
401 $criterionAssignment2 = $this
402 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
403 ->disableOriginalConstructor()
404 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
405 ->addMethods([
'getId'])
408 $criterionAssignment2
412 $criterionAssignment2
413 ->method(
'getCriterionId')
414 ->willReturn(
'usr_global_role');
416 $criterionAssignment2
417 ->method(
'getCriterionValue')
422 $document->attachCriterion($criterionAssignment1);
423 $document->attachCriterion($criterionAssignment2);
428 $this->expectException(OutOfBoundsException::class);
430 $criterionAssignment1 = $this
431 ->getMockBuilder(ilTermsOfServiceDocumentCriterionAssignment::class)
432 ->disableOriginalConstructor()
433 ->onlyMethods([
'getCriterionValue',
'getCriterionId'])
434 ->addMethods([
'getId'])
437 $criterionAssignment1
441 $criterionAssignment1
442 ->method(
'getCriterionId')
443 ->willReturn(
'usr_global_role');
445 $criterionAssignment1
446 ->method(
'getCriterionValue')
451 $document->detachCriterion($criterionAssignment1);
testCriteriaCanBeAttachedToAndDetachedFromDocumentPersistently(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3)
criteriaAssignmentProvider
static register(ActiveRecord $ar, arConnector $connector)
testExceptionIsRaisedWhenAttachingDuplicateCriteria()
Class ilTermsOfServiceCriterionBaseTest.
Class ilTermsOfServiceDocumentTest.
testCriteriaCanBeDetachedFromDocument(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3)
criteriaAssignmentProvider
criteriaAssignmentProvider()
getCriterionConfig($value=null)
Class ilTermsOfServiceDocumentCriterionAssignment.
testDocumentModelCanBeBuiltFromArrayWithAttachedCriteriaBeingRead(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3)
criteriaAssignmentProvider
Class ilTermsOfServiceDocument.
testDocumentModelCanBeCreatedByIdWithAttachedCriteriaBeingRead(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3)
criteriaAssignmentProvider
testExceptionIsRaisedWhenRemovingUnknownCriterion()
testCriteriaCanBeAttachedToDocument(ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment1, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment2, ilTermsOfServiceDocumentCriterionAssignment $criterionAssignment3)
criteriaAssignmentProvider
testExceptionIsRaisedWhenAttachingDuplicateCriteriaEvenWithDifferentIds()