public function testChaining() { $f = Zend_Ldap_Filter::equals('a1', 'v1')->addAnd(Zend_Ldap_Filter::approx('a2', 'v2')); $this->assertEquals('(&(a1=v1)(a2~=v2))', $f->toString()); $f = Zend_Ldap_Filter::equals('a1', 'v1')->addOr(Zend_Ldap_Filter::approx('a2', 'v2')); $this->assertEquals('(|(a1=v1)(a2~=v2))', $f->toString()); $f = Zend_Ldap_Filter::equals('a1', 'v1')->negate()->addOr(Zend_Ldap_Filter::approx('a2', 'v2')); $this->assertEquals('(|(!(a1=v1))(a2~=v2))', $f->toString()); $f = Zend_Ldap_Filter::equals('a1', 'v1')->addAnd(Zend_Ldap_Filter::approx('a2', 'v2')->negate()); $this->assertEquals('(&(a1=v1)(!(a2~=v2)))', $f->toString()); $f = Zend_Ldap_Filter::equals('a1', 'v1')->negate()->addAnd(Zend_Ldap_Filter::approx('a2', 'v2')->negate()); $this->assertEquals('(&(!(a1=v1))(!(a2~=v2)))', $f->toString()); $f = Zend_Ldap_Filter::equals('a1', 'v1')->negate()->addAnd(Zend_Ldap_Filter::approx('a2', 'v2')->negate()); $this->assertEquals('(&(!(a1=v1))(!(a2~=v2)))', $f->toString()); $f = Zend_Ldap_Filter::equals('a1', 'v1')->negate()->addAnd(Zend_Ldap_Filter::approx('a2', 'v2')->negate())->negate(); $this->assertEquals('(!(&(!(a1=v1))(!(a2~=v2))))', $f->toString()); }