From e56223fa609f60e31f3dc9a9da927deaad2a5dc6 Mon Sep 17 00:00:00 2001 From: Ondrej Mirtes Date: Fri, 9 Feb 2024 11:53:38 +0100 Subject: [PATCH] Fix tests for ORM 3 --- .../ORM/EntityManagerTypeInferenceTest.php | 14 +++-- ...utObjectManagerLoaderTypeInferenceTest.php | 8 ++- .../ORM/data/entityManager-orm2.php | 54 +++++++++++++++++++ .../ORM/data/entityManagerDynamicReturn.php | 14 ----- 4 files changed, 71 insertions(+), 19 deletions(-) create mode 100644 tests/DoctrineIntegration/ORM/data/entityManager-orm2.php diff --git a/tests/DoctrineIntegration/ORM/EntityManagerTypeInferenceTest.php b/tests/DoctrineIntegration/ORM/EntityManagerTypeInferenceTest.php index ad6c0b9f..086a6e0e 100644 --- a/tests/DoctrineIntegration/ORM/EntityManagerTypeInferenceTest.php +++ b/tests/DoctrineIntegration/ORM/EntityManagerTypeInferenceTest.php @@ -14,14 +14,20 @@ class EntityManagerTypeInferenceTest extends TypeInferenceTestCase */ public function dataFileAsserts(): iterable { + $ormVersion = InstalledVersions::getVersion('doctrine/orm'); + $hasOrm2 = $ormVersion !== null && strpos($ormVersion, '2.') === 0; + if ($hasOrm2) { + yield from $this->gatherAssertTypes(__DIR__ . '/data/entityManager-orm2.php'); + yield from $this->gatherAssertTypes(__DIR__ . '/data/entityManagerMergeReturn.php'); + } yield from $this->gatherAssertTypes(__DIR__ . '/data/entityManagerDynamicReturn.php'); - yield from $this->gatherAssertTypes(__DIR__ . '/data/entityManagerMergeReturn.php'); + yield from $this->gatherAssertTypes(__DIR__ . '/data/customRepositoryUsage.php'); yield from $this->gatherAssertTypes(__DIR__ . '/data/queryBuilder.php'); - $version = InstalledVersions::getVersion('doctrine/dbal'); - $hasDbal3 = $version !== null && strpos($version, '3.') === 0; - $hasDbal4 = $version !== null && strpos($version, '4.') === 0; + $dbalVersion = InstalledVersions::getVersion('doctrine/dbal'); + $hasDbal3 = $dbalVersion !== null && strpos($dbalVersion, '3.') === 0; + $hasDbal4 = $dbalVersion !== null && strpos($dbalVersion, '4.') === 0; if ($hasDbal4) { // nothing to test diff --git a/tests/DoctrineIntegration/ORM/EntityManagerWithoutObjectManagerLoaderTypeInferenceTest.php b/tests/DoctrineIntegration/ORM/EntityManagerWithoutObjectManagerLoaderTypeInferenceTest.php index c91f7fb1..25308635 100644 --- a/tests/DoctrineIntegration/ORM/EntityManagerWithoutObjectManagerLoaderTypeInferenceTest.php +++ b/tests/DoctrineIntegration/ORM/EntityManagerWithoutObjectManagerLoaderTypeInferenceTest.php @@ -14,8 +14,14 @@ class EntityManagerWithoutObjectManagerLoaderTypeInferenceTest extends TypeInfer */ public function dataFileAsserts(): iterable { + $ormVersion = InstalledVersions::getVersion('doctrine/orm'); + $hasOrm2 = $ormVersion !== null && strpos($ormVersion, '2.') === 0; + if ($hasOrm2) { + yield from $this->gatherAssertTypes(__DIR__ . '/data/entityManager-orm2.php'); + yield from $this->gatherAssertTypes(__DIR__ . '/data/entityManagerMergeReturn.php'); + } + yield from $this->gatherAssertTypes(__DIR__ . '/data/entityManagerDynamicReturn.php'); - yield from $this->gatherAssertTypes(__DIR__ . '/data/entityManagerMergeReturn.php'); yield from $this->gatherAssertTypes(__DIR__ . '/data/customRepositoryUsage.php'); $version = InstalledVersions::getVersion('doctrine/dbal'); diff --git a/tests/DoctrineIntegration/ORM/data/entityManager-orm2.php b/tests/DoctrineIntegration/ORM/data/entityManager-orm2.php new file mode 100644 index 00000000..4fc3f60e --- /dev/null +++ b/tests/DoctrineIntegration/ORM/data/entityManager-orm2.php @@ -0,0 +1,54 @@ +entityManager = $entityManager; + } + + public function getPartialReferenceDynamicType(): void + { + $test = $this->entityManager->getPartialReference(MyEntity::class, 1); + + if ($test === null) { + throw new RuntimeException('Sorry, but no...'); + } + + assertType(MyEntity::class, $test); + + $test->doSomething(); + $test->doSomethingElse(); + } +} + +/** + * @ORM\Entity() + */ +class MyEntity +{ + /** + * @ORM\Id() + * @ORM\GeneratedValue() + * @ORM\Column(type="integer") + * + * @var int + */ + private $id; + + public function doSomething(): void + { + } +} diff --git a/tests/DoctrineIntegration/ORM/data/entityManagerDynamicReturn.php b/tests/DoctrineIntegration/ORM/data/entityManagerDynamicReturn.php index 5eb754ab..6882b535 100644 --- a/tests/DoctrineIntegration/ORM/data/entityManagerDynamicReturn.php +++ b/tests/DoctrineIntegration/ORM/data/entityManagerDynamicReturn.php @@ -45,20 +45,6 @@ public function getReferenceDynamicType(): void $test->doSomethingElse(); } - public function getPartialReferenceDynamicType(): void - { - $test = $this->entityManager->getPartialReference(MyEntity::class, 1); - - if ($test === null) { - throw new RuntimeException('Sorry, but no...'); - } - - assertType(MyEntity::class, $test); - - $test->doSomething(); - $test->doSomethingElse(); - } - /** * @param class-string $entityName */