diff --git a/tests/FilterByInTest.php b/tests/FilterByInTest.php index b02364962cc5d83ed2e392b60ad21d96ce7988f1..bcf3d8a6cba61b20812007f7032137fea7e59c0e 100644 --- a/tests/FilterByInTest.php +++ b/tests/FilterByInTest.php @@ -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(); + } }