public function testFilterAny() { $list = new ArrayList(array($steve = array('Name' => 'Steve', 'ID' => 1, 'Age' => 21), $bob = array('Name' => 'Bob', 'ID' => 2, 'Age' => 18), $clair = array('Name' => 'Clair', 'ID' => 3, 'Age' => 21), $phil = array('Name' => 'Phil', 'ID' => 4, 'Age' => 21), $oscar = array('Name' => 'Oscar', 'ID' => 5, 'Age' => 52), $mike = array('Name' => 'Mike', 'ID' => 6, 'Age' => 43))); // only bob in the list //$list = $list->filterAny('Name', 'bob'); $filteredList = $list->filterAny('Name', 'Bob')->toArray(); $this->assertCount(1, $filteredList); $this->assertContains($bob, $filteredList); // azis or bob in the list //$list = $list->filterAny('Name', array('aziz', 'bob'); $filteredList = $list->filterAny('Name', array('Aziz', 'Bob'))->toArray(); $this->assertCount(1, $filteredList); $this->assertContains($bob, $filteredList); $filteredList = $list->filterAny('Name', array('Steve', 'Bob'))->toArray(); $this->assertCount(2, $filteredList); $this->assertContains($steve, $filteredList); $this->assertContains($bob, $filteredList); // bob or anyone aged 21 in the list //$list = $list->filterAny(array('Name'=>'bob, 'Age'=>21)); $filteredList = $list->filterAny(array('Name' => 'Bob', 'Age' => 21))->toArray(); $this->assertCount(4, $filteredList); $this->assertContains($bob, $filteredList); $this->assertContains($steve, $filteredList); $this->assertContains($clair, $filteredList); $this->assertContains($phil, $filteredList); // bob or anyone aged 21 or 43 in the list // $list = $list->filterAny(array('Name'=>'bob, 'Age'=>array(21, 43))); $filteredList = $list->filterAny(array('Name' => 'Bob', 'Age' => array(21, 43)))->toArray(); $this->assertCount(5, $filteredList); $this->assertContains($bob, $filteredList); $this->assertContains($steve, $filteredList); $this->assertContains($clair, $filteredList); $this->assertContains($mike, $filteredList); $this->assertContains($phil, $filteredList); // all bobs, phils or anyone aged 21 or 43 in the list //$list = $list->filterAny(array('Name'=>array('bob','phil'), 'Age'=>array(21, 43))); $filteredList = $list->filterAny(array('Name' => array('Bob', 'Phil'), 'Age' => array(21, 43)))->toArray(); $this->assertCount(5, $filteredList); $this->assertContains($bob, $filteredList); $this->assertContains($steve, $filteredList); $this->assertContains($clair, $filteredList); $this->assertContains($mike, $filteredList); $this->assertContains($phil, $filteredList); $filteredList = $list->filterAny(array('Name' => array('Bob', 'Nobody'), 'Age' => array(21, 43)))->toArray(); $this->assertCount(5, $filteredList); $this->assertContains($bob, $filteredList); $this->assertContains($steve, $filteredList); $this->assertContains($clair, $filteredList); $this->assertContains($mike, $filteredList); $this->assertContains($phil, $filteredList); }