summaryrefslogtreecommitdiffstats
path: root/test/Iterator/IteratorQueryTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'test/Iterator/IteratorQueryTest.php')
-rw-r--r--test/Iterator/IteratorQueryTest.php23
1 files changed, 20 insertions, 3 deletions
diff --git a/test/Iterator/IteratorQueryTest.php b/test/Iterator/IteratorQueryTest.php
index 1f1953e..d44847b 100644
--- a/test/Iterator/IteratorQueryTest.php
+++ b/test/Iterator/IteratorQueryTest.php
@@ -83,13 +83,30 @@ class IteratorQueryTest extends PHPUnit_Framework_TestCase
public function testFilter()
{
$func = function ($row) {
- return $row == 'john';
+ return false !== strpos($row, 'o');
};
$this->traitQuery->setFilter($func);
$iterator = $this->invokeMethod($this->traitQuery, 'execute', [$this->iterator]);
- $res = iterator_to_array($iterator);
- $this->assertCount(1, $res);
+ $this->assertCount(2, iterator_to_array($iterator, false));
+
+ $func2 = function ($row) {
+ return false !== strpos($row, 'j');
+ };
+ $this->traitQuery->addFilter($func2);
+ $this->traitQuery->addFilter($func);
+
+ $iterator = $this->invokeMethod($this->traitQuery, 'execute', [$this->iterator]);
+ $this->assertCount(1, iterator_to_array($iterator, false));
+
+ $this->traitQuery->addFilter($func2);
+ $this->traitQuery->addFilter($func);
+ $this->assertTrue($this->traitQuery->hasFilter($func2));
+ $this->traitQuery->removeFilter($func2);
+ $this->assertFalse($this->traitQuery->hasFilter($func2));
+
+ $iterator = $this->invokeMethod($this->traitQuery, 'execute', [$this->iterator]);
+ $this->assertCount(2, iterator_to_array($iterator, false));
}
public function testSortBy()