|
17 | 17 | use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGenerator;
|
18 | 18 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Dummy;
|
19 | 19 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyDate;
|
| 20 | +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; |
20 | 25 | use Symfony\Component\HttpFoundation\Request;
|
21 | 26 | use Symfony\Component\HttpFoundation\RequestStack;
|
22 | 27 |
|
@@ -57,6 +62,31 @@ private function doTestApplyDate(bool $request)
|
57 | 62 | $filter->apply($queryBuilder, new QueryNameGenerator(), DummyDate::class, null, $request ? [] : ['filters' => $filters]);
|
58 | 63 |
|
59 | 64 | $this->assertEquals(new \DateTime('2015-04-05'), $queryBuilder->getParameters()[0]->getValue());
|
| 65 | + $this->assertInstanceOf(\DateTime::class, $queryBuilder->getParameters()[0]->getValue()); |
| 66 | + } |
| 67 | + |
| 68 | + public function testApplyDateImmutable() |
| 69 | + { |
| 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); |
| 77 | + |
| 78 | + $queryBuilder = $this->repository->createQueryBuilder('o'); |
| 79 | + |
| 80 | + $filter = new DateFilter( |
| 81 | + $this->managerRegistry, |
| 82 | + $requestStack, |
| 83 | + null, |
| 84 | + ['dummyDate' => null] |
| 85 | + ); |
| 86 | + |
| 87 | + $filter->apply($queryBuilder, new QueryNameGenerator(), DummyImmutableDate::class); |
| 88 | + $this->assertEquals(new \DateTimeImmutable('2015-04-05'), $queryBuilder->getParameters()[0]->getValue()); |
| 89 | + $this->assertInstanceOf(\DateTimeImmutable::class, $queryBuilder->getParameters()[0]->getValue()); |
60 | 90 | }
|
61 | 91 |
|
62 | 92 | public function testGetDescription()
|
|
0 commit comments