ApiPlatform\Core\Tests\Doctrine\Orm\Filter\SearchFilterTest::testTripleJoin PHP Method

testTripleJoin() public method

public testTripleJoin ( )
    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);
    }