1818use ApiPlatform \Core \Tests \Fixtures \TestBundle \Entity \Dummy ;
1919use ApiPlatform \Core \Tests \Fixtures \TestBundle \Entity \DummyDate ;
2020use 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 ;
2521use Symfony \Component \HttpFoundation \Request ;
2622use 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