Skip to content

Commit df9da0a

Browse files
committed
Datasources\ArraySource: Fixed & Improved
1 parent b821a38 commit df9da0a

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

Grido/DataSources/ArraySource.php

+10-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,13 @@ protected function makeWhere(Condition $condition, array $data = NULL)
6262

6363
} else {
6464
$i = count($condition->condition) > 1 ? $i : 0;
65-
$results[] = (int) $that->compare($row[$column], $condition->condition[$i], $condition->value[$i]);
65+
$results[] = (int) $that->compare(
66+
$row[$column],
67+
$condition->condition[$i],
68+
isset($condition->value[$i])
69+
? $condition->value[$i]
70+
: NULL
71+
);
6672

6773
$i++;
6874
}
@@ -94,6 +100,9 @@ public function compare($actual, $condition, $expected)
94100
} else if ($cond === '=') {
95101
return $actual == $expected;
96102

103+
} else if ($cond === '<>') {
104+
return $actual != $expected;
105+
97106
} elseif ($cond === 'IS NULL') {
98107
return $actual === NULL;
99108

tests/Grido/DataSources/ArraySource.phpt

+3
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ class ArraySourceTest extends DataSourceTestCase
7272
Assert::true($source->compare('Lucie', '=', 'Lucie'));
7373
Assert::false($source->compare('Lucie', '=', 'lucie'));
7474

75+
Assert::true($source->compare('Lucie', '<>', 'Petr'));
76+
Assert::false($source->compare('Lucie', '<>', 'Lucie'));
77+
7578
Assert::true($source->compare(NULL, 'IS NULL', NULL));
7679
Assert::false($source->compare('', 'IS NULL', NULL));
7780

0 commit comments

Comments
 (0)