Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • packages/doctrine-http-filter
1 result
Show changes
Commits on Source (3)
<?php
declare(strict_types=1);
namespace IQDEV\Packages\DoctrineHttpFilter\Exception;
use Exception;
class FilterParameterValueIsNullException extends Exception
{
public function __construct(string $key)
{
parent::__construct('Filter parameter value of key [' . $key . '] is null.');
}
}
...@@ -5,26 +5,24 @@ declare(strict_types=1); ...@@ -5,26 +5,24 @@ declare(strict_types=1);
namespace IQDEV\Packages\DoctrineHttpFilter\Filter; namespace IQDEV\Packages\DoctrineHttpFilter\Filter;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
final class Date extends HttpFilter final class Date extends HttpFilter
{ {
/** @throws FilterParameterValueIsNullException */
public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder
{ {
$queryBuilder->where(
'SUBSTRING(' . $this->getColumn() . ', 0, 11) = :' . $this->getParameterKey(),
);
if (is_null($this->getHttpValue())) { if (is_null($this->getHttpValue())) {
throw new FilterParameterValueIsNullException($this->field); return $queryBuilder;
} }
if (! \DateTimeImmutable::createFromFormat('Y-m-d', $this->getHttpValue())) { if (! \DateTimeImmutable::createFromFormat('Y-m-d', $this->getHttpValue())) {
throw new FilterParameterValueIsNullException($this->field); return $queryBuilder;
} }
$queryBuilder->where(
'SUBSTRING(' . $this->getColumn() . ', 0, 11) = :' . $this->getParameterKey(),
);
$queryBuilder->setParameter($this->getParameterKey(), $this->getHttpValue()); $queryBuilder->setParameter($this->getParameterKey(), $this->getHttpValue());
return $queryBuilder; return $queryBuilder;
......
...@@ -5,12 +5,10 @@ declare(strict_types=1); ...@@ -5,12 +5,10 @@ declare(strict_types=1);
namespace IQDEV\Packages\DoctrineHttpFilter\Filter; namespace IQDEV\Packages\DoctrineHttpFilter\Filter;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
final class DateRange extends HttpFilter final class DateRange extends HttpFilter
{ {
/** @throws FilterParameterValueIsNullException */
public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder
{ {
$httpValues = $this->getHttpValue(); $httpValues = $this->getHttpValue();
...@@ -18,14 +16,14 @@ final class DateRange extends HttpFilter ...@@ -18,14 +16,14 @@ final class DateRange extends HttpFilter
$toDate = $httpValues['to'] ?? null; $toDate = $httpValues['to'] ?? null;
if (is_null($fromDate) && is_null($toDate)) { if (is_null($fromDate) && is_null($toDate)) {
throw new FilterParameterValueIsNullException($this->field); return $queryBuilder;
} }
$fromDate = \DateTimeImmutable::createFromFormat('Y-m-d', $fromDate ?? ''); $fromDate = \DateTimeImmutable::createFromFormat('Y-m-d', $fromDate ?? '');
$toDate = \DateTimeImmutable::createFromFormat('Y-m-d', $toDate ?? ''); $toDate = \DateTimeImmutable::createFromFormat('Y-m-d', $toDate ?? '');
if (! $fromDate && ! $toDate) { if (! $fromDate && ! $toDate) {
throw new FilterParameterValueIsNullException($this->field); return $queryBuilder;
} }
if ($fromDate) { if ($fromDate) {
......
...@@ -5,16 +5,14 @@ declare(strict_types=1); ...@@ -5,16 +5,14 @@ declare(strict_types=1);
namespace IQDEV\Packages\DoctrineHttpFilter\Filter; namespace IQDEV\Packages\DoctrineHttpFilter\Filter;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
final class In extends HttpFilter final class In extends HttpFilter
{ {
/** @throws FilterParameterValueIsNullException */
public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder
{ {
if ($this->getHttpValue() === null || ! is_array($this->getHttpValue())) { if ($this->getHttpValue() === null || ! is_array($this->getHttpValue())) {
throw new FilterParameterValueIsNullException($this->field); return $queryBuilder;
} }
$values = array_map(fn($value) => '\'' . $value . '\'', $this->getHttpValue()); $values = array_map(fn($value) => '\'' . $value . '\'', $this->getHttpValue());
......
...@@ -5,22 +5,20 @@ declare(strict_types=1); ...@@ -5,22 +5,20 @@ declare(strict_types=1);
namespace IQDEV\Packages\DoctrineHttpFilter\Filter; namespace IQDEV\Packages\DoctrineHttpFilter\Filter;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
final class Like extends HttpFilter final class Like extends HttpFilter
{ {
/** @throws FilterParameterValueIsNullException */
public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder
{ {
if ($this->getHttpValue() === null) {
return $queryBuilder;
}
$queryBuilder->where( $queryBuilder->where(
$this->getColumn() . ' LIKE :' . $this->getParameterKey(), $this->getColumn() . ' LIKE :' . $this->getParameterKey(),
); );
if ($this->getHttpValue() === null) {
throw new FilterParameterValueIsNullException($this->field);
}
$queryBuilder->setParameter($this->getParameterKey(), '%' . $this->getHttpValue() . '%'); $queryBuilder->setParameter($this->getParameterKey(), '%' . $this->getHttpValue() . '%');
return $queryBuilder; return $queryBuilder;
......
...@@ -5,17 +5,15 @@ declare(strict_types=1); ...@@ -5,17 +5,15 @@ declare(strict_types=1);
namespace IQDEV\Packages\DoctrineHttpFilter\Filter; namespace IQDEV\Packages\DoctrineHttpFilter\Filter;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
final class Range extends HttpFilter final class Range extends HttpFilter
{ {
/** @throws FilterParameterValueIsNullException */
public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder
{ {
if ((! isset($this->getHttpValue()['min']) || ! is_numeric($this->getHttpValue()['min'])) if ((! isset($this->getHttpValue()['min']) || ! is_numeric($this->getHttpValue()['min']))
&& (! isset($this->getHttpValue()['max']) || ! is_numeric($this->getHttpValue()['max']))) { && (! isset($this->getHttpValue()['max']) || ! is_numeric($this->getHttpValue()['max']))) {
throw new FilterParameterValueIsNullException($this->field); return $queryBuilder;
} }
if (isset($this->getHttpValue()['min'])) { if (isset($this->getHttpValue()['min'])) {
......
...@@ -5,22 +5,20 @@ declare(strict_types=1); ...@@ -5,22 +5,20 @@ declare(strict_types=1);
namespace IQDEV\Packages\DoctrineHttpFilter\Filter; namespace IQDEV\Packages\DoctrineHttpFilter\Filter;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
final class Where extends HttpFilter final class Where extends HttpFilter
{ {
/** @throws FilterParameterValueIsNullException */
public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder
{ {
if ($this->getHttpValue() === null) {
return $queryBuilder;
}
$queryBuilder->where( $queryBuilder->where(
$this->getColumn() . ' = :' . $this->getParameterKey(), $this->getColumn() . ' = :' . $this->getParameterKey(),
); );
if ($this->getHttpValue() === null) {
throw new FilterParameterValueIsNullException($this->field);
}
$queryBuilder->setParameter($this->getParameterKey(), $this->getHttpValue()); $queryBuilder->setParameter($this->getParameterKey(), $this->getHttpValue());
return $queryBuilder; return $queryBuilder;
......
...@@ -6,7 +6,6 @@ namespace IQDEV\Tests\Packages\DoctrineHttpFilter; ...@@ -6,7 +6,6 @@ namespace IQDEV\Tests\Packages\DoctrineHttpFilter;
use DateInterval; use DateInterval;
use DateTimeImmutable; use DateTimeImmutable;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\Filter\DateRange; use IQDEV\Packages\DoctrineHttpFilter\Filter\DateRange;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post; use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post;
...@@ -191,15 +190,17 @@ class FilterByDateRangeTest extends TestCase ...@@ -191,15 +190,17 @@ class FilterByDateRangeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'createdAt' => DateRange::class, 'createdAt' => DateRange::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [], HttpFilter::REQUEST_FILTER_KEY => [],
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterDateRangeWithNotDateParameterValue(): void public function testFilterDateRangeWithNotDateParameterValue(): void
...@@ -207,9 +208,9 @@ class FilterByDateRangeTest extends TestCase ...@@ -207,9 +208,9 @@ class FilterByDateRangeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'createdAt' => DateRange::class, 'createdAt' => DateRange::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -218,6 +219,8 @@ class FilterByDateRangeTest extends TestCase ...@@ -218,6 +219,8 @@ class FilterByDateRangeTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterDateRangeWithNotDateParameterValues(): void public function testFilterDateRangeWithNotDateParameterValues(): void
...@@ -225,9 +228,9 @@ class FilterByDateRangeTest extends TestCase ...@@ -225,9 +228,9 @@ class FilterByDateRangeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'createdAt' => DateRange::class, 'createdAt' => DateRange::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -239,6 +242,8 @@ class FilterByDateRangeTest extends TestCase ...@@ -239,6 +242,8 @@ class FilterByDateRangeTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterDateRangeWithDifferentKey(): void public function testFilterDateRangeWithDifferentKey(): void
...@@ -246,9 +251,9 @@ class FilterByDateRangeTest extends TestCase ...@@ -246,9 +251,9 @@ class FilterByDateRangeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'createdAt' => DateRange::class, 'createdAt' => DateRange::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -257,6 +262,8 @@ class FilterByDateRangeTest extends TestCase ...@@ -257,6 +262,8 @@ class FilterByDateRangeTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterDateRangeWithOnlyFromParameterValue(): void public function testFilterDateRangeWithOnlyFromParameterValue(): void
......
...@@ -6,7 +6,6 @@ namespace IQDEV\Tests\Packages\DoctrineHttpFilter; ...@@ -6,7 +6,6 @@ namespace IQDEV\Tests\Packages\DoctrineHttpFilter;
use DateInterval; use DateInterval;
use DateTimeImmutable; use DateTimeImmutable;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\Filter\Date; use IQDEV\Packages\DoctrineHttpFilter\Filter\Date;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post; use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post;
...@@ -178,15 +177,17 @@ class FilterByDateTest extends TestCase ...@@ -178,15 +177,17 @@ class FilterByDateTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'createdAt' => Date::class, 'createdAt' => Date::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [], HttpFilter::REQUEST_FILTER_KEY => [],
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterDateWithNotDateParameterValue(): void public function testFilterDateWithNotDateParameterValue(): void
...@@ -194,9 +195,9 @@ class FilterByDateTest extends TestCase ...@@ -194,9 +195,9 @@ class FilterByDateTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'createdAt' => Date::class, 'createdAt' => Date::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -205,6 +206,8 @@ class FilterByDateTest extends TestCase ...@@ -205,6 +206,8 @@ class FilterByDateTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterDateWithDifferentKey(): void public function testFilterDateWithDifferentKey(): void
...@@ -212,9 +215,9 @@ class FilterByDateTest extends TestCase ...@@ -212,9 +215,9 @@ class FilterByDateTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'createdAt' => Date::class, 'createdAt' => Date::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -223,5 +226,7 @@ class FilterByDateTest extends TestCase ...@@ -223,5 +226,7 @@ class FilterByDateTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
} }
...@@ -4,7 +4,6 @@ declare(strict_types=1); ...@@ -4,7 +4,6 @@ declare(strict_types=1);
namespace IQDEV\Tests\Packages\DoctrineHttpFilter; namespace IQDEV\Tests\Packages\DoctrineHttpFilter;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\Filter\In; use IQDEV\Packages\DoctrineHttpFilter\Filter\In;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post; use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post;
...@@ -131,15 +130,17 @@ class FilterByInTest extends TestCase ...@@ -131,15 +130,17 @@ class FilterByInTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'title' => In::class, 'title' => In::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [], HttpFilter::REQUEST_FILTER_KEY => [],
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterInWithNotArrayParameterValue(): void public function testFilterInWithNotArrayParameterValue(): void
...@@ -147,9 +148,9 @@ class FilterByInTest extends TestCase ...@@ -147,9 +148,9 @@ class FilterByInTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'title' => In::class, 'title' => In::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -158,6 +159,8 @@ class FilterByInTest extends TestCase ...@@ -158,6 +159,8 @@ class FilterByInTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterInWithDifferentKey(): void public function testFilterInWithDifferentKey(): void
...@@ -165,9 +168,9 @@ class FilterByInTest extends TestCase ...@@ -165,9 +168,9 @@ class FilterByInTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'title' => In::class, 'title' => In::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -176,5 +179,7 @@ class FilterByInTest extends TestCase ...@@ -176,5 +179,7 @@ class FilterByInTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
} }
...@@ -4,7 +4,6 @@ declare(strict_types=1); ...@@ -4,7 +4,6 @@ declare(strict_types=1);
namespace IQDEV\Tests\Packages\DoctrineHttpFilter; namespace IQDEV\Tests\Packages\DoctrineHttpFilter;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\Filter\Like; use IQDEV\Packages\DoctrineHttpFilter\Filter\Like;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post; use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post;
...@@ -131,25 +130,27 @@ class FilterByLikeTest extends TestCase ...@@ -131,25 +130,27 @@ class FilterByLikeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'title' => Like::class, 'title' => Like::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [], HttpFilter::REQUEST_FILTER_KEY => [],
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterDateWithDifferentKey(): void public function testFilterLikeWithDifferentKey(): void
{ {
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'title' => Like::class, 'title' => Like::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -158,5 +159,7 @@ class FilterByLikeTest extends TestCase ...@@ -158,5 +159,7 @@ class FilterByLikeTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
} }
...@@ -5,7 +5,6 @@ declare(strict_types=1); ...@@ -5,7 +5,6 @@ declare(strict_types=1);
namespace IQDEV\Tests\Packages\DoctrineHttpFilter; namespace IQDEV\Tests\Packages\DoctrineHttpFilter;
use DateTimeImmutable; use DateTimeImmutable;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\Filter\Range; use IQDEV\Packages\DoctrineHttpFilter\Filter\Range;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post; use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post;
...@@ -196,15 +195,17 @@ class FilterByRangeTest extends TestCase ...@@ -196,15 +195,17 @@ class FilterByRangeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'createdAt' => Range::class, 'createdAt' => Range::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [], HttpFilter::REQUEST_FILTER_KEY => [],
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterRangeWithNotNumberParameterValue(): void public function testFilterRangeWithNotNumberParameterValue(): void
...@@ -212,9 +213,9 @@ class FilterByRangeTest extends TestCase ...@@ -212,9 +213,9 @@ class FilterByRangeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'countOfViews' => Range::class, 'countOfViews' => Range::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -223,6 +224,8 @@ class FilterByRangeTest extends TestCase ...@@ -223,6 +224,8 @@ class FilterByRangeTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterRangeWithNotNumberParameterValues(): void public function testFilterRangeWithNotNumberParameterValues(): void
...@@ -230,9 +233,9 @@ class FilterByRangeTest extends TestCase ...@@ -230,9 +233,9 @@ class FilterByRangeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'countOfViews' => Range::class, 'countOfViews' => Range::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -244,6 +247,8 @@ class FilterByRangeTest extends TestCase ...@@ -244,6 +247,8 @@ class FilterByRangeTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterRangeWithDifferentKey(): void public function testFilterRangeWithDifferentKey(): void
...@@ -251,9 +256,9 @@ class FilterByRangeTest extends TestCase ...@@ -251,9 +256,9 @@ class FilterByRangeTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'countOfViews' => Range::class, 'countOfViews' => Range::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -262,6 +267,8 @@ class FilterByRangeTest extends TestCase ...@@ -262,6 +267,8 @@ class FilterByRangeTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterRangeWithOnlyMinParameterValue(): void public function testFilterRangeWithOnlyMinParameterValue(): void
......
...@@ -4,7 +4,6 @@ declare(strict_types=1); ...@@ -4,7 +4,6 @@ declare(strict_types=1);
namespace IQDEV\Tests\Packages\DoctrineHttpFilter; namespace IQDEV\Tests\Packages\DoctrineHttpFilter;
use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException;
use IQDEV\Packages\DoctrineHttpFilter\Filter\Where; use IQDEV\Packages\DoctrineHttpFilter\Filter\Where;
use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter;
use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post; use IQDEV\Tests\Packages\DoctrineHttpFilter\Entity\Post;
...@@ -117,15 +116,17 @@ class FilterByWhereTest extends TestCase ...@@ -117,15 +116,17 @@ class FilterByWhereTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'title' => Where::class, 'title' => Where::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [], HttpFilter::REQUEST_FILTER_KEY => [],
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
public function testFilterWhereWithDifferentKey(): void public function testFilterWhereWithDifferentKey(): void
...@@ -133,9 +134,9 @@ class FilterByWhereTest extends TestCase ...@@ -133,9 +134,9 @@ class FilterByWhereTest extends TestCase
/** @var PostRepository $postRepository */ /** @var PostRepository $postRepository */
$postRepository = $this->em->getRepository(Post::class); $postRepository = $this->em->getRepository(Post::class);
$this->expectException(FilterParameterValueIsNullException::class); $countPosts = $postRepository->count();
$postRepository->createQueryByFilter([ $result = $postRepository->createQueryByFilter([
'title' => Where::class, 'title' => Where::class,
], new Request([ ], new Request([
HttpFilter::REQUEST_FILTER_KEY => [ HttpFilter::REQUEST_FILTER_KEY => [
...@@ -144,5 +145,7 @@ class FilterByWhereTest extends TestCase ...@@ -144,5 +145,7 @@ class FilterByWhereTest extends TestCase
])) ]))
->getQuery() ->getQuery()
->getResult(); ->getResult();
$this->assertCount($countPosts, $result);
} }
} }