|
6 | 6 | use Carbon\Doctrine\CarbonType; |
7 | 7 | use Composer\InstalledVersions; |
8 | 8 | use Doctrine\DBAL\Types\Type; |
| 9 | +use Doctrine\DBAL\Types\Types; |
9 | 10 | use Iterator; |
10 | 11 | use PHPStan\Doctrine\Driver\DriverDetector; |
11 | 12 | use PHPStan\Rules\Rule; |
|
18 | 19 | use PHPStan\Type\Doctrine\Descriptors\DateTimeType; |
19 | 20 | use PHPStan\Type\Doctrine\Descriptors\DateType; |
20 | 21 | use PHPStan\Type\Doctrine\Descriptors\DecimalType; |
| 22 | +use PHPStan\Type\Doctrine\Descriptors\EnumType; |
21 | 23 | use PHPStan\Type\Doctrine\Descriptors\IntegerType; |
22 | 24 | use PHPStan\Type\Doctrine\Descriptors\JsonType; |
23 | 25 | use PHPStan\Type\Doctrine\Descriptors\Ramsey\UuidTypeDescriptor; |
24 | 26 | use PHPStan\Type\Doctrine\Descriptors\ReflectionDescriptor; |
25 | 27 | use PHPStan\Type\Doctrine\Descriptors\SimpleArrayType; |
| 28 | +use PHPStan\Type\Doctrine\Descriptors\SmallFloatType; |
26 | 29 | use PHPStan\Type\Doctrine\Descriptors\StringType; |
27 | 30 | use PHPStan\Type\Doctrine\ObjectMetadataResolver; |
28 | 31 | use function array_unshift; |
@@ -74,6 +77,7 @@ protected function getRule(): Rule |
74 | 77 | new IntegerType(), |
75 | 78 | new StringType(), |
76 | 79 | new SimpleArrayType(), |
| 80 | + new EnumType(), |
77 | 81 | new UuidTypeDescriptor(FakeTestingUuidType::class), |
78 | 82 | new ReflectionDescriptor(CarbonImmutableType::class, $this->createReflectionProvider(), self::getContainer()), |
79 | 83 | new ReflectionDescriptor(CarbonType::class, $this->createReflectionProvider(), self::getContainer()), |
@@ -413,6 +417,20 @@ public function testEnumType(?string $objectManagerLoader): void |
413 | 417 | ]); |
414 | 418 | } |
415 | 419 |
|
| 420 | + /** |
| 421 | + * @dataProvider dataObjectManagerLoader |
| 422 | + */ |
| 423 | + public function testEnumValues(?string $objectManagerLoader): void |
| 424 | + { |
| 425 | + if (!defined('Types::ENUM')) { |
| 426 | + self::markTestSkipped('Test requires ENUM type.'); |
| 427 | + } |
| 428 | + |
| 429 | + $this->allowNullablePropertyForRequiredField = false; |
| 430 | + $this->objectManagerLoader = $objectManagerLoader; |
| 431 | + $this->analyse([__DIR__ . '/data-attributes/enum-values.php'], []); |
| 432 | + } |
| 433 | + |
416 | 434 | /** |
417 | 435 | * @dataProvider dataObjectManagerLoader |
418 | 436 | */ |
|
0 commit comments