5
5
use Doctrine \Common \Collections \Criteria ;
6
6
use Doctrine \ORM \AbstractQuery ;
7
7
use Doctrine \ORM \EntityManagerInterface ;
8
+ use Doctrine \ORM \EntityRepository ;
8
9
use Doctrine \ORM \Query \Expr \Andx ;
9
10
use Doctrine \ORM \Query \Expr \From ;
10
11
use Doctrine \ORM \QueryBuilder ;
14
15
class QueryBuilderExpressionTypeResolverTest
15
16
{
16
17
18
+ /**
19
+ * @var MyRepository
20
+ */
21
+ private $ myRepository ;
22
+
17
23
public function testQueryTypeIsInferredOnAcrossMethods (EntityManagerInterface $ em ): void
18
24
{
19
25
$ query = $ this ->getQueryBuilder ($ em )->getQuery ();
@@ -30,6 +36,13 @@ public function testQueryTypeIsInferredOnAcrossMethodsEvenWhenVariableAssignment
30
36
assertType ('Doctrine\ORM\Query<null, QueryResult\Entities\Many> ' , $ queryBuilder ->getQuery ());
31
37
}
32
38
39
+ public function testDiveIntoCustomEntityRepository (EntityManagerInterface $ em ): void
40
+ {
41
+ $ queryBuilder = $ this ->myRepository ->getCustomQueryBuilder ($ em );
42
+
43
+ assertType ('Doctrine\ORM\Query<null, QueryResult\Entities\Many> ' , $ queryBuilder ->getQuery ());
44
+ }
45
+
33
46
public function testFirstClassCallableDoesNotFail (EntityManagerInterface $ em ): void
34
47
{
35
48
$ this ->getQueryBuilder (...);
@@ -55,3 +68,13 @@ private function getBranchingQueryBuilder(EntityManagerInterface $em): QueryBuil
55
68
return $ queryBuilder ;
56
69
}
57
70
}
71
+
72
+ class MyRepository extends EntityRepository {
73
+
74
+ private function getCustomQueryBuilder (EntityManagerInterface $ em ): QueryBuilder
75
+ {
76
+ return $ em ->createQueryBuilder ()
77
+ ->select ('m ' )
78
+ ->from (Many::class, 'm ' );
79
+ }
80
+ }
0 commit comments