Author: Kévin Dunglas (dunglas@gmail.com)
Inheritance: extends AbstractFilter
Esempio n. 1
0
 public function testTripleJoin()
 {
     $request = Request::create('/api/dummies', 'GET', ['relatedDummy.symfony' => 'foo', 'relatedDummy.thirdLevel.level' => 'bar']);
     $requestStack = new RequestStack();
     $requestStack->push($request);
     $queryBuilder = $this->repository->createQueryBuilder('o');
     $filter = new SearchFilter($this->managerRegistry, $requestStack, $this->iriConverter, $this->propertyAccessor, null, ['relatedDummy.symfony' => null, 'relatedDummy.thirdLevel.level' => null]);
     $queryBuilder->innerJoin('o.relatedDummy', 'relateddummy_a1');
     $queryBuilder->innerJoin('relateddummy_a1.thirdLevel', 'thirdLevel_a1');
     $filter->apply($queryBuilder, new QueryNameGenerator(), $this->resourceClass, 'op');
     $actual = strtolower($queryBuilder->getQuery()->getDQL());
     $expected = strtolower(sprintf('SELECT o FROM %s o inner join o.relatedDummy relateddummy_a1 inner join relateddummy_a1.thirdLevel thirdLevel_a1 WHERE relateddummy_a1.symfony = :symfony_p1 and thirdLevel_a1.level = :level_p2', Dummy::class));
     $this->assertEquals($actual, $expected);
 }