diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/GH10450Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/GH10450Test.php new file mode 100644 index 00000000000..274c6cb6595 --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/GH10450Test.php @@ -0,0 +1,106 @@ +getTestEntityManager(); + + $this->expectException(MappingException::class); + + $em->getClassMetadata($className); + } + + public function classesThatOverrideFieldNames(): Generator + { + yield 'Entity class that redeclares a private field inherited from a base entity' => [GH10450EntityChild::class]; + yield 'Entity class that redeclares a private field inherited from a mapped superclass' => [GH10450MappedSuperclassChild::class]; + } +} + +/** + * @ORM\Entity + * @ORM\InheritanceType("JOINED") + * @ORM\DiscriminatorMap({ "base": "GH10450BaseEntity", "child": "GH10450EntityChild" }) + * @ORM\DiscriminatorColumn(name="type") + */ +class GH10450BaseEntity +{ + /** + * @ORM\Column(type="integer") + * @ORM\Id + * @ORM\GeneratedValue + * + * @var int + */ + private $id; + + /** + * @ORM\Column(type="text", name="base") + * + * @var string + */ + private $field; +} + +/** + * @ORM\Entity + */ +class GH10450EntityChild extends GH10450BaseEntity +{ + /** + * @ORM\Column(type="text", name="child") + * + * @var string + */ + private $field; +} + +/** + * @ORM\MappedSuperclass + */ +class GH10450BaseMappedSuperclass +{ + /** + * @ORM\Column(type="integer") + * @ORM\Id + * @ORM\GeneratedValue + * + * @var int + */ + private $id; + + /** + * @ORM\Column(type="text", name="base") + * + * @var string + */ + private $field; +} + +/** + * @ORM\Entity + */ +class GH10450MappedSuperclassChild extends GH10450BaseMappedSuperclass +{ + /** + * @ORM\Column(type="text", name="child") + * + * @var string + */ + private $field; +}