From 04b9b0618f5fdb3d02fec0281eab27ac8472b91c Mon Sep 17 00:00:00 2001 From: Jan Nedbal <janedbal@gmail.com> Date: Mon, 11 Nov 2024 10:59:48 +0100 Subject: [PATCH] Failing test: diving to traits does not work --- .../data/QueryResult/queryBuilderGetQuery.php | 8 ++++++++ .../data/QueryResult/traitWithQueryBuilder.php | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 tests/Type/Doctrine/data/QueryResult/traitWithQueryBuilder.php diff --git a/tests/Type/Doctrine/data/QueryResult/queryBuilderGetQuery.php b/tests/Type/Doctrine/data/QueryResult/queryBuilderGetQuery.php index c0cf3068..f7072422 100644 --- a/tests/Type/Doctrine/data/QueryResult/queryBuilderGetQuery.php +++ b/tests/Type/Doctrine/data/QueryResult/queryBuilderGetQuery.php @@ -15,6 +15,9 @@ class QueryBuilderGetQuery { + + use TraitWithQueryBuilder; + private function getQueryBuilderMany(EntityManagerInterface $em): QueryBuilder { return $em->createQueryBuilder() @@ -33,6 +36,11 @@ public function getQueryDirectly(EntityManagerInterface $em): void assertType('list<QueryResult\Entities\Many>', $this->getQueryBuilderMany($em)->getQuery()->getResult()); } + public function getQueryFromTrait(EntityManagerInterface $em): void + { + assertType('list<QueryResult\Entities\Many>', $this->getQueryBuilderFromTrait($em)->getQuery()->getResult()); + } + public function testQueryTypeParametersAreInfered(EntityManagerInterface $em): void { $query = $em->createQueryBuilder() diff --git a/tests/Type/Doctrine/data/QueryResult/traitWithQueryBuilder.php b/tests/Type/Doctrine/data/QueryResult/traitWithQueryBuilder.php new file mode 100644 index 00000000..8612911b --- /dev/null +++ b/tests/Type/Doctrine/data/QueryResult/traitWithQueryBuilder.php @@ -0,0 +1,18 @@ +<?php declare(strict_types = 1); + +namespace QueryResult\CreateQuery; + +use Doctrine\ORM\EntityManagerInterface; +use Doctrine\ORM\QueryBuilder; +use QueryResult\Entities\Many; + +trait TraitWithQueryBuilder +{ + public function getQueryBuilderFromTrait(EntityManagerInterface $em): QueryBuilder + { + return $em->createQueryBuilder() + ->select('m') + ->from(Many::class, 'm'); + } + +}