From 0a143fec8baa062a3acc714d2733edd00ed45129 Mon Sep 17 00:00:00 2001 From: Marcos Fadul <86224001+mfadul24@users.noreply.github.com> Date: Fri, 29 Mar 2024 07:45:06 +0100 Subject: [PATCH] Update orm 3.0 (#239) --- Command/EnumDropCommentCommand.php | 1 + Form/EnumTypeGuesser.php | 2 +- Tests/Command/EnumDropCommentCommandTest.php | 3 +- Tests/Form/EnumTypeGuesserTest.php | 97 +++++++++++++------- composer.json | 2 +- 5 files changed, 70 insertions(+), 35 deletions(-) diff --git a/Command/EnumDropCommentCommand.php b/Command/EnumDropCommentCommand.php index d1b5ec5..6d5f940 100644 --- a/Command/EnumDropCommentCommand.php +++ b/Command/EnumDropCommentCommand.php @@ -161,6 +161,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int foreach ($metadata->getFieldNames() as $fieldName) { if ($metadata->getTypeOfField($fieldName) === $this->enumType) { + /** @var array{columnName: string} $fieldMappingDetails */ $fieldMappingDetails = $metadata->getFieldMapping($fieldName); $sql = $platform->getCommentOnColumnSQL($tableName, $fieldMappingDetails['columnName'], null); $connection->executeQuery($sql); diff --git a/Form/EnumTypeGuesser.php b/Form/EnumTypeGuesser.php index 07e8159..d12b48c 100644 --- a/Form/EnumTypeGuesser.php +++ b/Form/EnumTypeGuesser.php @@ -65,7 +65,7 @@ public function guessType(string $class, string $property): ?TypeGuess return null; } - /** @var \Doctrine\ORM\Mapping\ClassMetadataInfo $metadata */ + /** @var \Doctrine\ORM\Mapping\ClassMetadata $metadata */ [$metadata] = $classMetadata; $fieldType = $metadata->getTypeOfField($property); diff --git a/Tests/Command/EnumDropCommentCommandTest.php b/Tests/Command/EnumDropCommentCommandTest.php index a8c504d..d1c35f7 100644 --- a/Tests/Command/EnumDropCommentCommandTest.php +++ b/Tests/Command/EnumDropCommentCommandTest.php @@ -17,6 +17,7 @@ use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadataFactory; +use Doctrine\ORM\Mapping\FieldMapping; use Doctrine\Persistence\ManagerRegistry; use Fresh\DoctrineEnumBundle\Command\EnumDropCommentCommand; use Fresh\DoctrineEnumBundle\Exception\EnumType\EnumTypeIsRegisteredButClassDoesNotExistException; @@ -244,7 +245,7 @@ public function testSuccessfulExecutionWithMetadata(): void $metadata->expects(self::once())->method('getTableName')->willReturn('tasks'); $metadata->expects(self::once())->method('getFieldNames')->willReturn(['status']); $metadata->expects(self::once())->method('getTypeOfField')->with('status')->willReturn('TaskStatusType'); - $metadata->expects(self::once())->method('getFieldMapping')->with('status')->willReturn(['columnName' => 'task_column_name']); + $metadata->expects(self::once())->method('getFieldMapping')->with('status')->willReturn(FieldMapping::fromMappingArray(['type'=> 'string', 'columnName' => 'task_column_name', 'fieldName' => 'test'])); $this->platform->expects(self::once())->method('getCommentOnColumnSQL')->with('tasks', 'task_column_name', null)->willReturn('test SQL'); diff --git a/Tests/Form/EnumTypeGuesserTest.php b/Tests/Form/EnumTypeGuesserTest.php index 42bac01..63e6d72 100644 --- a/Tests/Form/EnumTypeGuesserTest.php +++ b/Tests/Form/EnumTypeGuesserTest.php @@ -12,6 +12,7 @@ namespace Fresh\DoctrineEnumBundle\Tests\Form; +use Doctrine\ORM\Mapping\ClassMetadata; use Doctrine\ORM\Mapping\ClassMetadataInfo; use Doctrine\Persistence\ManagerRegistry; use Fresh\DoctrineEnumBundle\Exception\EnumType\EnumTypeIsRegisteredButClassDoesNotExistException; @@ -61,12 +62,19 @@ public function testNullResultWhenEnumTypeNotRegistered(): void ->getMock() ; - $metadata = $this - ->getMockBuilder(ClassMetadataInfo::class) - ->disableOriginalConstructor() - ->onlyMethods(['getTypeOfField']) - ->getMock() - ; + if(class_exists(ClassMetadata::class)) { + $metadata = $this->getMockBuilder(ClassMetadata::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField']) + ->getMock() + ; + } else { + $metadata = $this->getMockBuilder(ClassMetadataInfo::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField']) + ->getMock() + ; + } $metadata ->expects(self::once()) @@ -101,12 +109,19 @@ public function testExceptionWhenClassDoesNotExist(): void ->getMock() ; - $metadata = $this - ->getMockBuilder(ClassMetadataInfo::class) - ->disableOriginalConstructor() - ->onlyMethods(['getTypeOfField']) - ->getMock() - ; + if(class_exists(ClassMetadata::class)) { + $metadata = $this->getMockBuilder(ClassMetadata::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField']) + ->getMock() + ; + } else { + $metadata = $this->getMockBuilder(ClassMetadataInfo::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField']) + ->getMock() + ; + } $metadata ->expects(self::once()) @@ -142,13 +157,19 @@ public function testNullResultWhenIsNotChildOfAbstractEnumType(): void ->onlyMethods(['getMetadata']) ->getMock() ; - - $metadata = $this - ->getMockBuilder(ClassMetadataInfo::class) - ->disableOriginalConstructor() - ->onlyMethods(['getTypeOfField']) - ->getMock() - ; + if(class_exists(ClassMetadata::class)) { + $metadata = $this->getMockBuilder(ClassMetadata::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField']) + ->getMock() + ; + } else { + $metadata = $this->getMockBuilder(ClassMetadataInfo::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField']) + ->getMock() + ; + } $metadata ->expects(self::once()) @@ -183,13 +204,18 @@ public function testSuccessfulTypeGuessingWithAncestor(): void ->getMock() ; - $metadata = $this - ->getMockBuilder(ClassMetadataInfo::class) - ->disableOriginalConstructor() - ->onlyMethods(['getTypeOfField', 'isNullable']) - ->getMock() - ; - + if(class_exists(ClassMetadata::class)) { + $metadata = $this->getMockBuilder(ClassMetadata::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField', 'isNullable']) + ->getMock() + ; + } else { + $metadata = $this->getMockBuilder(ClassMetadataInfo::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField', 'isNullable']) + ->getMock(); + } $metadata ->expects(self::once()) ->method('getTypeOfField') @@ -238,12 +264,19 @@ public function testSuccessfulTypeGuessing(): void ->getMock() ; - $metadata = $this - ->getMockBuilder(ClassMetadataInfo::class) - ->disableOriginalConstructor() - ->onlyMethods(['getTypeOfField', 'isNullable']) - ->getMock() - ; + if(class_exists(ClassMetadata::class)) { + $metadata = $this->getMockBuilder(ClassMetadata::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField', 'isNullable']) + ->getMock() + ; + } else { + $metadata = $this->getMockBuilder(ClassMetadataInfo::class) + ->disableOriginalConstructor() + ->onlyMethods(['getTypeOfField', 'isNullable']) + ->getMock() + ; + } $metadata ->expects(self::once()) diff --git a/composer.json b/composer.json index 6243e24..a361e13 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "doctrine/common": "^3.4", "doctrine/dbal": "^3.7", "doctrine/doctrine-bundle": "^2.11", - "doctrine/orm": "^2.16", + "doctrine/orm": "^2.16|^3.0", "symfony/config": "^7.0", "symfony/dependency-injection": "^7.0", "symfony/doctrine-bridge": "^7.0",