Skip to content

Commit

Permalink
Update orm 3.0 (#239)
Browse files Browse the repository at this point in the history
  • Loading branch information
mfadul24 authored Mar 29, 2024
1 parent 588c8cd commit 0a143fe
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 35 deletions.
1 change: 1 addition & 0 deletions Command/EnumDropCommentCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion Form/EnumTypeGuesser.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public function guessType(string $class, string $property): ?TypeGuess
return null;
}

/** @var \Doctrine\ORM\Mapping\ClassMetadataInfo<object> $metadata */
/** @var \Doctrine\ORM\Mapping\ClassMetadata<object> $metadata */
[$metadata] = $classMetadata;
$fieldType = $metadata->getTypeOfField($property);

Expand Down
3 changes: 2 additions & 1 deletion Tests/Command/EnumDropCommentCommandTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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');

Expand Down
97 changes: 65 additions & 32 deletions Tests/Form/EnumTypeGuesserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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())
Expand Down Expand Up @@ -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())
Expand Down Expand Up @@ -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())
Expand Down Expand Up @@ -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')
Expand Down Expand Up @@ -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())
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down

0 comments on commit 0a143fe

Please sign in to comment.