33namespace Contributte \Datagrid \Tests \Cases \DataSources ;
44
55use Contributte \Datagrid \DataSource \ArrayDataSource ;
6+ use Contributte \Datagrid \Filter \FilterDate ;
7+ use Contributte \Datagrid \Filter \FilterDateRange ;
68use Contributte \Datagrid \Tests \Files \TestingDatagridFactory ;
9+ use Tester \Assert ;
710
811require __DIR__ . '/BaseDataSourceTest.phpt ' ;
912
@@ -18,6 +21,51 @@ final class ArrayDataSourceTest extends BaseDataSourceTest
1821 $ this ->grid = $ factory ->createTestingDatagrid ();
1922 }
2023
24+ public function testFilterDateWithInvalidValue (): void
25+ {
26+ $ ds = new ArrayDataSource ([
27+ ['id ' => 1 , 'date ' => '1. 1. 2020 ' ],
28+ ['id ' => 2 , 'date ' => '15. 6. 2021 ' ],
29+ ]);
30+
31+ $ filter = new FilterDate ($ this ->grid , 'date ' , 'Date ' , 'date ' );
32+ $ filter ->setValue ('not-a-date ' );
33+
34+ $ ds ->filter ([$ filter ]);
35+
36+ Assert::same (0 , $ ds ->getCount ());
37+ }
38+
39+ public function testFilterDateRangeWithInvalidFromValue (): void
40+ {
41+ $ ds = new ArrayDataSource ([
42+ ['id ' => 1 , 'date ' => '1. 1. 2020 ' ],
43+ ['id ' => 2 , 'date ' => '15. 6. 2021 ' ],
44+ ]);
45+
46+ $ filter = new FilterDateRange ($ this ->grid , 'date ' , 'Date ' , 'date ' , 'Date to ' );
47+ $ filter ->setValue (['from ' => 'not-a-date ' , 'to ' => '' ]);
48+
49+ $ ds ->filter ([$ filter ]);
50+
51+ Assert::same (0 , $ ds ->getCount ());
52+ }
53+
54+ public function testFilterDateRangeWithInvalidToValue (): void
55+ {
56+ $ ds = new ArrayDataSource ([
57+ ['id ' => 1 , 'date ' => '1. 1. 2020 ' ],
58+ ['id ' => 2 , 'date ' => '15. 6. 2021 ' ],
59+ ]);
60+
61+ $ filter = new FilterDateRange ($ this ->grid , 'date ' , 'Date ' , 'date ' , 'Date to ' );
62+ $ filter ->setValue (['from ' => '' , 'to ' => 'not-a-date ' ]);
63+
64+ $ ds ->filter ([$ filter ]);
65+
66+ Assert::same (0 , $ ds ->getCount ());
67+ }
68+
2169}
2270
2371(new ArrayDataSourceTest ())->run ();
0 commit comments