diff --git a/src/QueryExpressionFilter.php b/src/QueryExpressionFilter.php index 1710b84..4cdb3ea 100644 --- a/src/QueryExpressionFilter.php +++ b/src/QueryExpressionFilter.php @@ -30,26 +30,23 @@ private function matchFilter($data, $filter) private function matchOr($data, $filter) { - $empty = true; if ($this->isVector($filter)) { foreach ($filter as $element) { if ($this->matchFilter($data, $element)) { return true; } - $empty = false; } } elseif ($this->isObject($filter)) { foreach ($filter as $key => $value) { if ($this->matchValue($data, $key, $value)) { return true; } - $empty = false; } } else { throw new DomainException('Invalid data type for $or combinator'); } - return $empty; + return false; } private function matchAnd($data, $filter) diff --git a/tests/QueryExpressionFilterTest.php b/tests/QueryExpressionFilterTest.php index dd2753c..979df60 100644 --- a/tests/QueryExpressionFilterTest.php +++ b/tests/QueryExpressionFilterTest.php @@ -233,22 +233,22 @@ public function testEmptyAndAlwaysMatches() $this->assertTrue($filter->doesMatch(array('id' => 100))); } - public function testEmptyOrAlwaysMatches() + public function testEmptyOrNeverMatches() { $filter = new QueryExpressionFilter(array( '$or' => array() )); - $this->assertTrue($filter->doesMatch(array('id' => 100))); + $this->assertFalse($filter->doesMatch(array('id' => 100))); } - public function testEmptyOrObjectAlwaysMatches() + public function testEmptyOrObjectNeverMatches() { $filter = new QueryExpressionFilter((object)array( '$or' => (object)array() )); - $this->assertTrue($filter->doesMatch((object)array('id' => 100))); + $this->assertFalse($filter->doesMatch((object)array('id' => 100))); } public function testEmptyNotNeverMatches()