[TASK] Shorten the extend class in all unit tests
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Tests / Unit / Validation / Validator / AbstractValidatorTest.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator;
3
4 /* *
5 * This script belongs to the Extbase framework. *
6 * *
7 * It is free software; you can redistribute it and/or modify it under *
8 * the terms of the GNU Lesser General Public License as published by the *
9 * Free Software Foundation, either version 3 of the License, or (at your *
10 * option) any later version. *
11 * *
12 * This script is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14 * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15 * General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License along with the script. *
19 * If not, see http://www.gnu.org/licenses/lgpl.html *
20 * *
21 * The TYPO3 project - inspiring people to share! *
22 * */
23
24 use TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator\Fixture\AbstractValidatorClass;
25 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
26
27 /**
28 * Testcase for the abstract base-class of validators
29 *
30 * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
31 */
32 class AbstractValidatorTest extends UnitTestCase
33 {
34 /**
35 * @test
36 */
37 public function validatorAcceptsSupportedOptions()
38 {
39 $inputOptions = [
40 'requiredOption' => 666,
41 'demoOption' => 42
42 ];
43 $expectedOptions = $inputOptions;
44 $validator = $this->getAccessibleMock(AbstractValidatorClass::class, ['dummy'], [$inputOptions]);
45 $this->assertSame($expectedOptions, $validator->_get('options'));
46 }
47
48 /**
49 * @test
50 */
51 public function validatorHasDefaultOptions()
52 {
53 $inputOptions = ['requiredOption' => 666];
54 $expectedOptions = [
55 'requiredOption' => 666,
56 'demoOption' => PHP_INT_MAX
57 ];
58 $validator = $this->getAccessibleMock(AbstractValidatorClass::class, ['dummy'], [$inputOptions]);
59 $this->assertSame($expectedOptions, $validator->_get('options'));
60 }
61
62 /**
63 * @test
64 */
65 public function validatorThrowsExceptionOnNotSupportedOptions()
66 {
67 $inputOptions = ['invalidoption' => 42];
68 $this->expectException(\TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException::class);
69 $this->expectExceptionCode(1379981890);
70 $this->getAccessibleMock(AbstractValidatorClass::class, ['dummy'], [$inputOptions]);
71 }
72
73 /**
74 * @test
75 */
76 public function validatorThrowsExceptionOnMissingRequiredOptions()
77 {
78 $inputOptions = [];
79 $this->expectException(\TYPO3\CMS\Extbase\Validation\Exception\InvalidValidationOptionsException::class);
80 $this->expectExceptionCode(1379981891);
81 $this->getAccessibleMock(AbstractValidatorClass::class, ['dummy'], [$inputOptions]);
82 }
83 }