‪TYPO3CMS  ‪main
DisjunctionValidatorTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\Test;
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
26 
27 final class ‪DisjunctionValidatorTest extends UnitTestCase
28 {
29  #[Test]
31  {
32  $validatorDisjunction = new ‪DisjunctionValidator();
33  $validatorDisjunction->setOptions([]);
34  $validatorObject = $this->getMockBuilder(ValidatorInterface::class)
35  ->onlyMethods(['validate', 'getOptions', 'setOptions'])
36  ->getMock();
37  $validatorObject->method('validate')->willReturn(new ‪Result());
38  ‪$errors = new ‪Result();
39  ‪$errors->addError(new ‪Error('Error', 123));
40  $secondValidatorObject = $this->getMockBuilder(ValidatorInterface::class)
41  ->onlyMethods(['validate', 'getOptions', 'setOptions'])
42  ->getMock();
43  $secondValidatorObject->method('validate')->willReturn(‪$errors);
44  $validatorDisjunction->addValidator($validatorObject);
45  $validatorDisjunction->addValidator($secondValidatorObject);
46  self::assertFalse($validatorDisjunction->validate('some subject')->hasErrors());
47  }
48 
49  #[Test]
51  {
52  $validatorDisjunction = new ‪DisjunctionValidator();
53  $validatorDisjunction->setOptions([]);
54  $error1 = new ‪Error('Error', 123);
55  $error2 = new ‪Error('Error2', 123);
56  $errors1 = new ‪Result();
57  $errors1->addError($error1);
58  $validatorObject = $this->getMockBuilder(ValidatorInterface::class)
59  ->onlyMethods(['validate', 'getOptions', 'setOptions'])
60  ->getMock();
61  $validatorObject->method('validate')->willReturn($errors1);
62  $errors2 = new ‪Result();
63  $errors2->addError($error2);
64  $secondValidatorObject = $this->getMockBuilder(ValidatorInterface::class)
65  ->onlyMethods(['validate', 'getOptions', 'setOptions'])
66  ->getMock();
67  $secondValidatorObject->method('validate')->willReturn($errors2);
68  $validatorDisjunction->addValidator($validatorObject);
69  $validatorDisjunction->addValidator($secondValidatorObject);
70  self::assertEquals([$error1, $error2], $validatorDisjunction->validate('some subject')->getErrors());
71  }
72 }
‪TYPO3\CMS\Extbase\Validation\Validator\DisjunctionValidator
Definition: DisjunctionValidator.php:26
‪TYPO3\CMS\Extbase\Error\Result
Definition: Result.php:24
‪TYPO3\CMS\Extbase\Error\Error
Definition: Error.php:25
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator\DisjunctionValidatorTest\validateReturnsNoErrorsIfOneValidatorReturnsNoError
‪validateReturnsNoErrorsIfOneValidatorReturnsNoError()
Definition: DisjunctionValidatorTest.php:30
‪$errors
‪$errors
Definition: annotationChecker.php:116
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator\DisjunctionValidatorTest
Definition: DisjunctionValidatorTest.php:28
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator
Definition: AbstractCompositeValidatorTest.php:18
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator\DisjunctionValidatorTest\validateReturnsAllErrorsIfAllValidatorsReturnErrors
‪validateReturnsAllErrorsIfAllValidatorsReturnErrors()
Definition: DisjunctionValidatorTest.php:50
‪TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface
Definition: ValidatorInterface.php:26