|
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; |
20 | 21 | use Doctrine\Common\Persistence\ManagerRegistry;
|
21 | 22 | use Doctrine\ORM\EntityRepository;
|
22 | 23 | use Symfony\Bridge\Doctrine\Test\DoctrineTestHelper;
|
@@ -103,6 +104,31 @@ public function testApplyDate()
|
103 | 104 |
|
104 | 105 | $filter->apply($queryBuilder, new QueryNameGenerator(), DummyDate::class);
|
105 | 106 | $this->assertEquals(new \DateTime('2015-04-05'), $queryBuilder->getParameters()[0]->getValue());
|
| 107 | + $this->assertInstanceOf(\DateTime::class, $queryBuilder->getParameters()[0]->getValue()); |
| 108 | + } |
| 109 | + |
| 110 | + public function testApplyDateImmutable() |
| 111 | + { |
| 112 | + $request = Request::create('/api/dummy_immutable_dates', 'GET', [ |
| 113 | + 'dummyDate' => [ |
| 114 | + 'after' => '2015-04-05', |
| 115 | + ], |
| 116 | + ]); |
| 117 | + $requestStack = new RequestStack(); |
| 118 | + $requestStack->push($request); |
| 119 | + |
| 120 | + $queryBuilder = $this->repository->createQueryBuilder('o'); |
| 121 | + |
| 122 | + $filter = new DateFilter( |
| 123 | + $this->managerRegistry, |
| 124 | + $requestStack, |
| 125 | + null, |
| 126 | + ['dummyDate' => null] |
| 127 | + ); |
| 128 | + |
| 129 | + $filter->apply($queryBuilder, new QueryNameGenerator(), DummyImmutableDate::class); |
| 130 | + $this->assertEquals(new \DateTimeImmutable('2015-04-05'), $queryBuilder->getParameters()[0]->getValue()); |
| 131 | + $this->assertInstanceOf(\DateTimeImmutable::class, $queryBuilder->getParameters()[0]->getValue()); |
106 | 132 | }
|
107 | 133 |
|
108 | 134 | public function testGetDescription()
|
|
0 commit comments