19 declare(strict_types=1);
37 ->getMockBuilder(ilTermsOfServiceDocument::class)
38 ->disableOriginalConstructor()
39 ->addMethods([
'getId'])
43 ->getMockBuilder(ilHtmlPurifierInterface::class)
47 ->getMockBuilder(ilObjUser::class)
48 ->disableOriginalConstructor()
52 ->getMockBuilder(Filesystem::class)
56 ->getMockBuilder(FileUpload::class)
72 $form->getItemByPostVar(
'document')->getRequired(),
73 'Failed asserting document upload is required for new documents' 78 $form->getCommandButtons(),
79 'Failed asserting save and cancel buttons are given if form is editable' 81 $this->assertArrayHasKey(
83 $form->getCommandButtons(),
84 'Failed asserting save and cancel buttons are given if form is editable' 86 $this->assertArrayHasKey(
88 $form->getCommandButtons(),
89 'Failed asserting save and cancel buttons are given if form is editable' 93 $form->getCommandButtons()[0][
'cmd'],
94 'Failed asserting save and cancel buttons are given if form is editable' 98 $form->getCommandButtons()[1][
'cmd'],
99 'Failed asserting save and cancel buttons are given if form is editable' 116 $form->getCommandButtons(),
117 'Failed asserting only cancel button is given if form is not editable' 119 $this->assertArrayHasKey(
121 $form->getCommandButtons(),
122 'Failed asserting only cancel button is given if form is not editable' 126 $form->getCommandButtons()[0][
'cmd'],
127 'Failed asserting only cancel button is given if form is not editable' 134 ->getMockBuilder(ilTermsOfServiceDocument::class)
135 ->disableOriginalConstructor()
136 ->onlyMethods([
'fetchAllCriterionAssignments'])
137 ->addMethods([
'getId'])
141 ->method(
'fetchAllCriterionAssignments');
144 ->getMockBuilder(ilHtmlPurifierInterface::class)
151 $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
157 ->getMockBuilder(ilObjUser::class)
158 ->disableOriginalConstructor()
159 ->onlyMethods([
'getId'])
163 ->expects($this->exactly(2))
168 ->getMockBuilder(Filesystem::class)
172 ->expects($this->exactly(2))
174 ->with(
'/agreements/' . $uploadResult->getName())
178 ->expects($this->exactly(2))
180 ->with(
'/agreements/' . $uploadResult->getName())
181 ->willReturn(
'phpunit');
184 ->expects($this->atLeast(1))
187 ->willReturnArgument(0);
190 ->expects($this->exactly(2))
192 ->with(
'/agreements/' . $uploadResult->getName());
195 ->getMockBuilder(FileUpload::class)
209 ->method(
'hasUploads')
213 ->expects($this->exactly(2))
214 ->method(
'hasBeenProcessed')
218 ->expects($this->exactly(2))
222 ->expects($this->exactly(2))
223 ->method(
'getResults')
229 ->expects($this->exactly(2))
230 ->method(
'moveOneFileTo')
241 $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
242 $criterionConnector = $this->getMockBuilder(arConnector::class)->getMock();
244 $expectedSortingValueExistingDocuments = 10;
247 ->expects($this->once())
249 ->willReturnCallback(
function () use ($expectedSortingValueExistingDocuments) {
253 'title' =>
'another',
254 'sorting' => $expectedSortingValueExistingDocuments - 1,
258 $documentConnector->method(
'affectedRows')->willReturn(1);
261 ->expects($this->once())
269 $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
270 ->setConstructorArgs([
281 ->onlyMethods([
'checkInput'])
285 ->expects($this->once())
286 ->method(
'checkInput')
289 $_FILES[
'document'] = [];
291 $form->setCheckInputCalled(
true);
293 $this->assertTrue($form->saveObject());
294 $this->assertFalse($form->hasTranslatedError());
295 $this->assertEmpty($form->getTranslatedError());
297 $expectedSortingValueExistingDocuments,
298 $document->getSorting(),
299 'Failed asserting that the sorting of the new document equals the maximum incremented by one when other documents exist' 302 $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
305 ->expects($this->once())
307 ->willReturnCallback(
function () {
313 $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
314 ->setConstructorArgs([
325 ->onlyMethods([
'checkInput'])
329 ->expects($this->once())
330 ->method(
'checkInput')
333 $form->setCheckInputCalled(
true);
335 $this->assertTrue($form->saveObject());
336 $this->assertFalse($form->hasTranslatedError());
337 $this->assertEmpty($form->getTranslatedError());
340 $document->getSorting(),
341 'Failed asserting that the sorting of the new document equals 1 when no other document exists' 348 ->getMockBuilder(ilTermsOfServiceDocument::class)
349 ->disableOriginalConstructor()
350 ->addMethods([
'getId'])
358 ->getMockBuilder(ilHtmlPurifierInterface::class)
362 ->getMockBuilder(ilObjUser::class)
363 ->disableOriginalConstructor()
364 ->onlyMethods([
'getId'])
368 ->getMockBuilder(Filesystem::class)
372 ->getMockBuilder(FileUpload::class)
388 $form->getItemByPostVar(
'document')->getRequired(),
389 'Failed asserting document upload is not required for existing documents' 395 $expectedSorting = 10;
398 ->getMockBuilder(ilTermsOfServiceDocument::class)
399 ->disableOriginalConstructor()
400 ->onlyMethods([
'fetchAllCriterionAssignments'])
403 $document->setId(4711);
404 $document->setTitle(
'phpunit');
405 $document->setSorting($expectedSorting);
408 ->getMockBuilder(ilHtmlPurifierInterface::class)
412 ->getMockBuilder(ilObjUser::class)
413 ->disableOriginalConstructor()
414 ->onlyMethods([
'getId'])
418 ->expects($this->once())
423 ->getMockBuilder(Filesystem::class)
427 ->getMockBuilder(FileUpload::class)
441 ->method(
'hasUploads')
446 $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
447 $documentConnector->method(
'affectedRows')->willReturn(0);
452 $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
453 ->setConstructorArgs([
464 ->onlyMethods([
'checkInput'])
468 ->expects($this->once())
469 ->method(
'checkInput')
472 $form->setCheckInputCalled(
true);
474 $this->assertTrue($form->saveObject());
475 $this->assertFalse($form->hasTranslatedError());
476 $this->assertEmpty($form->getTranslatedError());
479 $document->getSorting(),
480 'Failed asserting that the sorting of the existing document has not been changed' 490 ->willReturn(
'translation');
495 ->getMockBuilder(ilTermsOfServiceDocument::class)
496 ->disableOriginalConstructor()
497 ->onlyMethods([
'fetchAllCriterionAssignments'])
498 ->addMethods([
'getId'])
502 ->getMockBuilder(ilHtmlPurifierInterface::class)
506 ->getMockBuilder(ilObjUser::class)
507 ->disableOriginalConstructor()
511 ->getMockBuilder(FileUpload::class)
525 ->expects($this->atLeast(3))
526 ->method(
'hasUploads')
530 ->expects($this->atLeast(3))
531 ->method(
'hasBeenProcessed')
535 ->expects($this->exactly(3))
542 $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
551 $this->getMockBuilder(ImmutableStringMap::class)->getMock(),
557 ->expects($this->exactly(3))
558 ->method(
'getResults')
559 ->willReturnOnConsecutiveCalls(
561 [0 => $uploadFailingResult],
566 ->getMockBuilder(Filesystem::class)
570 ->expects($this->once())
572 ->with(
'/agreements/' . $uploadResult->getName())
577 $documentConnector = $this->getMockBuilder(arConnector::class)->getMock();
582 $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
583 ->setConstructorArgs([
594 ->onlyMethods([
'checkInput'])
598 ->expects($this->once())
599 ->method(
'checkInput')
602 $form->setCheckInputCalled(
true);
604 $this->assertFalse($form->saveObject());
605 $this->assertTrue($form->hasTranslatedError());
606 $this->assertNotEmpty($form->getTranslatedError());
608 $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
609 ->setConstructorArgs([
620 ->onlyMethods([
'checkInput'])
624 ->expects($this->once())
625 ->method(
'checkInput')
628 $form->setCheckInputCalled(
true);
630 $this->assertFalse($form->saveObject());
631 $this->assertTrue($form->hasTranslatedError());
632 $this->assertNotEmpty($form->getTranslatedError());
634 $form = $this->getMockBuilder(ilTermsOfServiceDocumentFormGUI::class)
635 ->setConstructorArgs([
646 ->onlyMethods([
'checkInput'])
650 ->expects($this->once())
651 ->method(
'checkInput')
654 $form->setCheckInputCalled(
true);
656 $this->assertFalse($form->saveObject());
657 $this->assertTrue($form->hasTranslatedError());
658 $this->assertNotEmpty($form->getTranslatedError());
setGlobalVariable(string $name, $value)
static register(ActiveRecord $ar, arConnector $connector)
Class ilTermsOfServiceDocumentCriterionAssignment.
Class ilTermsOfServiceBaseTest.
Class ilTermsOfServiceDocument.