[TASK] Streamline phpdoc annotations in EXT:extbase
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Tests / Unit / Validation / Validator / DateTimeValidatorTest.php
1 <?php
2 declare(strict_types = 1);
3 namespace TYPO3\CMS\Extbase\Tests\Unit\Validation\Validator;
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
18 use TYPO3\CMS\Extbase\Validation\Validator\DateTimeValidator;
19 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
20
21 /**
22 * Test case
23 */
24 class DateTimeValidatorTest extends UnitTestCase
25 {
26 /**
27 * @test
28 * @dataProvider dateTimeValues
29 */
30 public function acceptsDateTimeValues($value)
31 {
32 $validator = new DateTimeValidator();
33 $result = $validator->validate($value);
34
35 $this->assertFalse($result->hasErrors());
36 }
37
38 /**
39 * @return array
40 */
41 public function dateTimeValues(): array
42 {
43 return [
44 \DateTime::class => [
45 new \DateTime(),
46 ],
47 'Extended ' . \DateTime::class => [
48 new class extends \DateTime {
49 },
50 ],
51 \DateTimeImmutable::class => [
52 new \DateTimeImmutable(),
53 ],
54 'Extended ' . \DateTimeImmutable::class => [
55 new class extends \DateTimeImmutable {
56 },
57 ],
58 ];
59 }
60
61 /**
62 * @test
63 */
64 public function addsErrorForInvalidValue()
65 {
66 $validator = $this->getMockBuilder(DateTimeValidator::class)
67 ->setMethods(['translateErrorMessage'])
68 ->getMock();
69 $result = $validator->validate(false);
70
71 $this->assertTrue($result->hasErrors());
72 }
73 }