public function testFactoryAndOr() { $actual = Filter::_and(); $expected = new CompositeFilter(CompositeFilter::OP_AND); $this->assertEquals($expected, $actual); $actual = Filter::_or(); $expected = new CompositeFilter(CompositeFilter::OP_OR); $this->assertEquals($expected, $actual); }
public function testFilterQS() { $f = new ColumnFilter('name', '=', 'x'); $qs1 = Person::objects(); $qs2 = $qs1->filter('name', '=', 'x'); $this->assertNotEquals($qs1, $qs2); $this->assertNotSame($qs1, $qs2); $this->assertInstanceOf("\\Phormium\\Filter\\CompositeFilter", $qs2->getFilter()); $this->assertCount(1, $qs2->getFilter()->getFilters()); $this->assertEmpty($qs1->getOrder()); $this->assertEmpty($qs2->getOrder()); $expected = Filter::_and($f); $actual = $qs2->getFilter(); $this->assertEquals($expected, $actual); }
/** * Adds a new filter to the queryset. If multiple filters are added, they * will be joined by an AND composite filter. */ private function addFilter(Filter $filter) { // Start with an empty AND composite filter if (!isset($this->filter)) { $this->filter = Filter::_and(); } $this->checkFilter($filter); $this->filter->add($filter); }