Commit 0c68dac7 authored by Адлан Шамавов's avatar Адлан Шамавов
Browse files

tests: Дополнительные тесты для фильтра In

parent 4a7e8579
Loading
Loading
Loading
Loading
+53 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ declare(strict_types=1);

namespace IQDEV\Tests\Packages\DoctrineHttpFilter;

use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\Filter\In;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post;
@@ -126,4 +127,56 @@ class FilterByInTest extends TestCase

        $this->assertEmpty($result);
    }

    public function testFilterInWithoutParameterValue(): void
    {
        /** @var PostRepository $postRepository */
        $postRepository = $this->em->getRepository(Post::class);

        $this->expectException(FilterParameterValueIsNullException::class);

        $postRepository->createQueryByFilter([
            'title' => In::class,
        ], new Request([
            HttpFilter::REQUEST_FILTER_KEY => [],
        ]))
            ->getQuery()
            ->getResult();
    }

    public function testFilterInWithNotArrayParameterValue(): void
    {
        /** @var PostRepository $postRepository */
        $postRepository = $this->em->getRepository(Post::class);

        $this->expectException(FilterParameterValueIsNullException::class);

        $postRepository->createQueryByFilter([
            'title' => In::class,
        ], new Request([
            HttpFilter::REQUEST_FILTER_KEY => [
                'title' => 'not array',
            ],
        ]))
            ->getQuery()
            ->getResult();
    }

    public function testFilterInWithDifferentKey(): void
    {
        /** @var PostRepository $postRepository */
        $postRepository = $this->em->getRepository(Post::class);

        $this->expectException(FilterParameterValueIsNullException::class);

        $postRepository->createQueryByFilter([
            'title' => In::class,
        ], new Request([
            HttpFilter::REQUEST_FILTER_KEY => [
                'notTitle' => 'Not title value'
            ],
        ]))
            ->getQuery()
            ->getResult();
    }
}