diff --git a/tests/Cases/DataSources/ArrayDataSourceTest.phpt b/tests/Cases/DataSources/ArrayDataSourceTest.phpt index 575d29c9..0e8a7609 100644 --- a/tests/Cases/DataSources/ArrayDataSourceTest.phpt +++ b/tests/Cases/DataSources/ArrayDataSourceTest.phpt @@ -5,6 +5,7 @@ namespace Contributte\Datagrid\Tests\Cases\DataSources; use Contributte\Datagrid\DataSource\ArrayDataSource; use Contributte\Datagrid\Filter\FilterDate; use Contributte\Datagrid\Filter\FilterDateRange; +use Contributte\Datagrid\Filter\FilterRange; use Contributte\Datagrid\Tests\Files\TestingDatagridFactory; use Tester\Assert; @@ -51,6 +52,21 @@ final class ArrayDataSourceTest extends BaseDataSourceTest Assert::same(0, $ds->getCount()); } + public function testFilterRangeWithZeroFromValue(): void + { + $ds = new ArrayDataSource([ + ['id' => 1, 'name' => 'Negative', 'age' => -5, 'address' => ''], + ['id' => 2, 'name' => 'Zero', 'age' => 0, 'address' => ''], + ['id' => 3, 'name' => 'Positive', 'age' => 5, 'address' => ''], + ]); + + $filter = new FilterRange($this->grid, 'a', 'b', 'age', '-'); + $filter->setValue(['from' => '0', 'to' => '']); + $ds->filter([$filter]); + + Assert::same(2, $ds->getCount()); + } + public function testFilterDateRangeWithInvalidToValue(): void { $ds = new ArrayDataSource([ diff --git a/tests/Cases/DataSources/BaseDataSourceTest.phpt b/tests/Cases/DataSources/BaseDataSourceTest.phpt index 804facdc..01119fd0 100644 --- a/tests/Cases/DataSources/BaseDataSourceTest.phpt +++ b/tests/Cases/DataSources/BaseDataSourceTest.phpt @@ -138,6 +138,15 @@ abstract class BaseDataSourceTest extends TestCase ], $this->getActualResultAsArray()); } + public function testFilterRangeWithZeroToValue(): void + { + $filter = new FilterRange($this->grid, 'a', 'b', 'age', '-'); + $filter->setValue(['from' => '', 'to' => '0']); + $this->ds->filter([$filter]); + + Assert::equal([], $this->getActualResultAsArray()); + } + public function testFilterOne(): void { $this->ds->filterOne(['id' => 8]);