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

tests: Дополнительные тесты для Date и Where

parent 1e8d0969
Loading
Loading
Loading
Loading
+53 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ namespace IQDEV\Tests\Packages\DoctrineHttpFilter;

use DateInterval;
use DateTimeImmutable;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\Filter\Date;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post;
@@ -131,4 +132,56 @@ class FilterByDateTest extends TestCase

        $this->assertEmpty($result);
    }

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

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

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

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

        $result = $postRepository->createQueryByFilter([
            'createdAt' => Date::class,
        ], new Request([
            HttpFilter::REQUEST_FILTER_KEY => [
                'createdAt' => 'not date',
            ],
        ]))
            ->getQuery()
            ->getResult();

        $this->assertEmpty($result);
    }

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

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

        $postRepository->createQueryByFilter([
            'createdAt' => Date::class,
        ], new Request([
            HttpFilter::REQUEST_FILTER_KEY => [
                'notCreatedAt' => 'Not createdAt value'
            ],
        ]))
            ->getQuery()
            ->getResult();
    }
}
+18 −0
Original line number Diff line number Diff line
@@ -127,4 +127,22 @@ class FilterByWhereTest extends TestCase
            ->getQuery()
            ->getResult();
    }

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

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

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