Skip to content

Commit 58c8bb2

Browse files
committed
Fix date filter tests with immutable dates
1 parent c49f3a2 commit 58c8bb2

1 file changed

Lines changed: 23 additions & 19 deletions

File tree

tests/Bridge/Doctrine/Orm/Filter/DateFilterTest.php

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@
1818
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Dummy;
1919
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyDate;
2020
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyImmutableDate;
21-
use Doctrine\Common\Persistence\ManagerRegistry;
22-
use Doctrine\ORM\EntityRepository;
23-
use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper;
24-
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
2521
use Symfony\Component\HttpFoundation\Request;
2622
use Symfony\Component\HttpFoundation\RequestStack;
2723

@@ -38,6 +34,11 @@ public function testApplyDate()
3834
$this->doTestApplyDate(false);
3935
}
4036

37+
public function testApplyDateImmutable()
38+
{
39+
$this->doTestApplyDateImmutable(false);
40+
}
41+
4142
/**
4243
* @group legacy
4344
*/
@@ -46,6 +47,14 @@ public function testRequestApplyDate()
4647
$this->doTestApplyDate(true);
4748
}
4849

50+
/**
51+
* @group legacy
52+
*/
53+
public function testRequestApplyDateImmutable()
54+
{
55+
$this->doTestApplyDateImmutable(true);
56+
}
57+
4958
private function doTestApplyDate(bool $request)
5059
{
5160
$filters = ['dummyDate' => ['after' => '2015-04-05']];
@@ -65,26 +74,21 @@ private function doTestApplyDate(bool $request)
6574
$this->assertInstanceOf(\DateTime::class, $queryBuilder->getParameters()[0]->getValue());
6675
}
6776

68-
public function testApplyDateImmutable()
77+
private function doTestApplyDateImmutable(bool $request)
6978
{
70-
$request = Request::create('/api/dummy_immutable_dates', 'GET', [
71-
'dummyDate' => [
72-
'after' => '2015-04-05',
73-
],
74-
]);
75-
$requestStack = new RequestStack();
76-
$requestStack->push($request);
79+
$filters = ['dummyDate' => ['after' => '2015-04-05']];
80+
81+
$requestStack = null;
82+
if ($request) {
83+
$requestStack = new RequestStack();
84+
$requestStack->push(Request::create('/api/dummy_immutable_dates', 'GET', $filters));
85+
}
7786

7887
$queryBuilder = $this->repository->createQueryBuilder('o');
7988

80-
$filter = new DateFilter(
81-
$this->managerRegistry,
82-
$requestStack,
83-
null,
84-
['dummyDate' => null]
85-
);
89+
$filter = new DateFilter($this->managerRegistry, $requestStack, null, ['dummyDate' => null]);
90+
$filter->apply($queryBuilder, new QueryNameGenerator(), DummyImmutableDate::class, null, $request ? [] : ['filters' => $filters]);
8691

87-
$filter->apply($queryBuilder, new QueryNameGenerator(), DummyImmutableDate::class);
8892
$this->assertEquals(new \DateTimeImmutable('2015-04-05'), $queryBuilder->getParameters()[0]->getValue());
8993
$this->assertInstanceOf(\DateTimeImmutable::class, $queryBuilder->getParameters()[0]->getValue());
9094
}

0 commit comments

Comments
 (0)