Skip to content

Commit cd4291b

Browse files
committed
Tests: add ArrayDataSource tests for invalid date filter values
1 parent ed133af commit cd4291b

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

tests/Cases/DataSources/ArrayDataSourceTest.phpt

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
namespace Contributte\Datagrid\Tests\Cases\DataSources;
44

55
use Contributte\Datagrid\DataSource\ArrayDataSource;
6+
use Contributte\Datagrid\Filter\FilterDate;
7+
use Contributte\Datagrid\Filter\FilterDateRange;
68
use Contributte\Datagrid\Tests\Files\TestingDatagridFactory;
9+
use Tester\Assert;
710

811
require __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

Comments
 (0)