Skip to content

Commit e5faff0

Browse files
authored
Tests: add regression tests for FilterRange with zero value (#730) (#1275)
1 parent 2745880 commit e5faff0

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

tests/Cases/DataSources/ArrayDataSourceTest.phpt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ namespace Contributte\Datagrid\Tests\Cases\DataSources;
55
use Contributte\Datagrid\DataSource\ArrayDataSource;
66
use Contributte\Datagrid\Filter\FilterDate;
77
use Contributte\Datagrid\Filter\FilterDateRange;
8+
use Contributte\Datagrid\Filter\FilterRange;
89
use Contributte\Datagrid\Tests\Files\TestingDatagridFactory;
910
use Tester\Assert;
1011

@@ -51,6 +52,21 @@ final class ArrayDataSourceTest extends BaseDataSourceTest
5152
Assert::same(0, $ds->getCount());
5253
}
5354

55+
public function testFilterRangeWithZeroFromValue(): void
56+
{
57+
$ds = new ArrayDataSource([
58+
['id' => 1, 'name' => 'Negative', 'age' => -5, 'address' => ''],
59+
['id' => 2, 'name' => 'Zero', 'age' => 0, 'address' => ''],
60+
['id' => 3, 'name' => 'Positive', 'age' => 5, 'address' => ''],
61+
]);
62+
63+
$filter = new FilterRange($this->grid, 'a', 'b', 'age', '-');
64+
$filter->setValue(['from' => '0', 'to' => '']);
65+
$ds->filter([$filter]);
66+
67+
Assert::same(2, $ds->getCount());
68+
}
69+
5470
public function testFilterDateRangeWithInvalidToValue(): void
5571
{
5672
$ds = new ArrayDataSource([

tests/Cases/DataSources/BaseDataSourceTest.phpt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,15 @@ abstract class BaseDataSourceTest extends TestCase
138138
], $this->getActualResultAsArray());
139139
}
140140

141+
public function testFilterRangeWithZeroToValue(): void
142+
{
143+
$filter = new FilterRange($this->grid, 'a', 'b', 'age', '-');
144+
$filter->setValue(['from' => '', 'to' => '0']);
145+
$this->ds->filter([$filter]);
146+
147+
Assert::equal([], $this->getActualResultAsArray());
148+
}
149+
141150
public function testFilterOne(): void
142151
{
143152
$this->ds->filterOne(['id' => 8]);

0 commit comments

Comments
 (0)