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

testApply() public method

public testApply ( $properties, array $filterParameters, array $expected )
$filterParameters array
$expected array
    public function testApply($properties, array $filterParameters, array $expected)
    {
        $request = Request::create('/api/dummies', 'GET', $filterParameters);
        $requestStack = new RequestStack();
        $requestStack->push($request);
        $queryBuilder = $this->repository->createQueryBuilder('o');
        $filter = new SearchFilter($this->managerRegistry, $requestStack, $this->iriConverter, $this->propertyAccessor, null, $properties);
        $filter->apply($queryBuilder, new QueryNameGenerator(), $this->resourceClass, 'op');
        $actualDql = $queryBuilder->getQuery()->getDQL();
        $expectedDql = $expected['dql'];
        $this->assertEquals($expectedDql, $actualDql);
        if (!empty($expected['parameters'])) {
            foreach ($expected['parameters'] as $parameterName => $expectedParameterValue) {
                $queryParameter = $queryBuilder->getQuery()->getParameter($parameterName);
                $this->assertNotNull($queryParameter, sprintf('Expected query parameter "%s" to be set', $parameterName));
                $actualParameterValue = $queryParameter->getValue();
                $this->assertEquals($expectedParameterValue, $actualParameterValue, sprintf('Expected query parameter "%s" to be "%s"', $parameterName, var_export($expectedParameterValue, true)));
            }
        }
    }