|
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