‪TYPO3CMS  11.5
ValidatorClassNameResolverTest.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 
30 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
31 
35 class ‪ValidatorClassNameResolverTest extends UnitTestCase
36 {
41  {
42  $validatorIdentifier = IntegerValidator::class;
43  self::assertSame($validatorIdentifier, ‪ValidatorClassNameResolver::resolve($validatorIdentifier));
44  }
45 
50  {
51  self::assertSame(IntegerValidator::class, ‪ValidatorClassNameResolver::resolve('int'));
52  self::assertSame(BooleanValidator::class, ‪ValidatorClassNameResolver::resolve('bool'));
53  self::assertSame(FloatValidator::class, ‪ValidatorClassNameResolver::resolve('double'));
54  self::assertSame(NumberValidator::class, ‪ValidatorClassNameResolver::resolve('numeric'));
55  self::assertSame(FloatValidator::class, ‪ValidatorClassNameResolver::resolve('float'));
56  }
57 
62  {
63  self::assertSame(IntegerValidator::class, ‪ValidatorClassNameResolver::resolve('TYPO3.CMS.Extbase:Integer'));
64  }
65 
70  {
71  $this->expectExceptionCode(1365799920);
72  $this->expectExceptionMessage('Validator class TYPO3\CMS\Extbase\Validation\Validator\NonExistingValidator does not exist');
73 
74  self::assertSame(IntegerValidator::class, ‪ValidatorClassNameResolver::resolve('NonExisting'));
75  }
76 
81  {
82  return [
83  'TYPO3.CMS.Extbase:NotEmpty' => [
84  'TYPO3.CMS.Extbase:NotEmpty',
85  NotEmptyValidator::class,
86  ],
87  'TYPO3.CMS.Extbase.Tests.Unit.Validation.Fixtures:Custom' => [
88  'TYPO3.CMS.Extbase.Tests.Unit.Validation.Fixtures:Custom',
89  CustomValidator::class,
90  ],
91  ];
92  }
93 
101  public function ‪resolveWithShortHandNotationReturnsValidatorNameIfClassExists(string $validatorName, string $expectedClassName): void
102  {
103  self::assertSame(
104  $expectedClassName,
106  );
107  }
108 
113  {
114  $this->expectException(NoSuchValidatorException::class);
115  $this->expectExceptionCode(1365799920);
116 
117  $validatorName = 'TYPO3.CMS.Extbase.Tests.Unit.Validation.Fixtures:NonExistentValidator';
119  }
120 
125  {
126  $this->expectExceptionCode(1365776838);
127  $this->expectExceptionMessage(sprintf(
128  'Validator class %s must implement %s',
129  CustomValidatorThatDoesNotImplementValidatorInterfaceValidator::class,
130  ValidatorInterface::class
131  ));
132 
133  self::assertSame(
134  IntegerValidator::class,
135  ‪ValidatorClassNameResolver::resolve(CustomValidatorThatDoesNotImplementValidatorInterfaceValidator::class)
136  );
137  }
138 
143  {
144  $this->expectException(NoSuchValidatorException::class);
145  $this->expectExceptionCode(1365776838);
146 
147  $validatorName = 'TYPO3.CMS.Extbase.Tests.Unit.Validation.Fixtures:CustomValidatorThatDoesNotImplementValidatorInterface';
149  }
150 
155  {
156  $validatorName = CustomValidator::class;
157  $className = CustomValidator::class;
158 
159  self::assertSame(
160  $className,
162  );
163  }
164 
169  {
170  $validatorName = '\\' . CustomValidator::class;
171  $className = CustomValidator::class;
172 
173  self::assertSame(
174  $className,
176  );
177  }
178 }
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveThrowsExceptionWithValidatorThatDoesNotImplementValidatorInterface
‪resolveThrowsExceptionWithValidatorThatDoesNotImplementValidatorInterface()
Definition: ValidatorClassNameResolverTest.php:142
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\namespacedShorthandValidatorNamesDataProvider
‪array namespacedShorthandValidatorNamesDataProvider()
Definition: ValidatorClassNameResolverTest.php:80
‪TYPO3\CMS\Extbase\Validation\Exception\NoSuchValidatorException
Definition: NoSuchValidatorException.php:25
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\Fixtures\Validation\Validator\CustomValidatorThatDoesNotImplementValidatorInterfaceValidator
Definition: CustomValidatorThatDoesNotImplementValidatorInterfaceValidator.php:21
‪TYPO3\CMS\Extbase\Validation\ValidatorClassNameResolver\resolve
‪static string resolve(string $validatorIdentifier)
Definition: ValidatorClassNameResolver.php:45
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest
Definition: ValidatorClassNameResolverTest.php:36
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveReturnsValidatorNameForFullQualifiedValidatorNameWithLeadingBackslash
‪resolveReturnsValidatorNameForFullQualifiedValidatorNameWithLeadingBackslash()
Definition: ValidatorClassNameResolverTest.php:168
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\Fixtures\Validation\Validator\CustomValidator
Definition: CustomValidator.php:23
‪TYPO3\CMS\Extbase\Tests\Unit\Validation
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveResolvesExtensionShorthandIdentifiers
‪resolveResolvesExtensionShorthandIdentifiers()
Definition: ValidatorClassNameResolverTest.php:61
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveWithShortHandNotationReturnsValidatorNameIfClassExists
‪resolveWithShortHandNotationReturnsValidatorNameIfClassExists(string $validatorName, string $expectedClassName)
Definition: ValidatorClassNameResolverTest.php:101
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveResolvesFullyQualifiedClassNames
‪resolveResolvesFullyQualifiedClassNames()
Definition: ValidatorClassNameResolverTest.php:40
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveResolvesCoreShorthandIdentifiers
‪resolveResolvesCoreShorthandIdentifiers()
Definition: ValidatorClassNameResolverTest.php:49
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveWithShortHandNotationThrowsExceptionIfClassDoesNotExist
‪resolveWithShortHandNotationThrowsExceptionIfClassDoesNotExist()
Definition: ValidatorClassNameResolverTest.php:112
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveThrowsNoSuchValidatorExceptionDueToClassInheritance
‪resolveThrowsNoSuchValidatorExceptionDueToClassInheritance()
Definition: ValidatorClassNameResolverTest.php:124
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveReturnsValidatorNameForFullQualifiedValidatorName
‪resolveReturnsValidatorNameForFullQualifiedValidatorName()
Definition: ValidatorClassNameResolverTest.php:154
‪TYPO3\CMS\Extbase\Validation\Validator\NotEmptyValidator
Definition: NotEmptyValidator.php:22
‪TYPO3\CMS\Extbase\Validation\Validator\FloatValidator
Definition: FloatValidator.php:22
‪TYPO3\CMS\Extbase\Validation\Validator\BooleanValidator
Definition: BooleanValidator.php:22
‪TYPO3\CMS\Extbase\Validation\Validator\ValidatorInterface
Definition: ValidatorInterface.php:22
‪TYPO3\CMS\Extbase\Validation\Validator\NumberValidator
Definition: NumberValidator.php:22
‪TYPO3\CMS\Extbase\Validation\Validator\IntegerValidator
Definition: IntegerValidator.php:22
‪TYPO3\CMS\Extbase\Tests\Unit\Validation\ValidatorClassNameResolverTest\resolveThrowsNoSuchValidatorExceptionDueToMissingClass
‪resolveThrowsNoSuchValidatorExceptionDueToMissingClass()
Definition: ValidatorClassNameResolverTest.php:69
‪TYPO3\CMS\Extbase\Validation\ValidatorClassNameResolver
Definition: ValidatorClassNameResolver.php:27