public function testEndif() { $f = new TestableCriteria(); $res = $f->_if(true)->test()->_endif(); $this->assertEquals($res, $f, '_endif() returns the main object if the test is true'); $f = new TestableCriteria(); $res = $f->_if(false)->test()->_endif(); $this->assertEquals($res, $f, '_endif() returns the main object if the test is false'); $f = new TestableCriteria(); $f->_if(true)->_endif()->test(); $this->assertTrue($f->getTest(), '_endif() stops the condition check'); $f = new TestableCriteria(); $f->_if(false)->_endif()->test(); $this->assertTrue($f->getTest(), '_endif() stops the condition check'); }
public function testHierarchy() { $f = new TestableCriteria(); $f2 = $f->_if(true)->_else()->_endif(); $this->assertEquals($f2, $f, '_endif returns criteria'); $f = new TestableCriteria(); $f2 = $f->_if(false)->_elseif(false)->_elseif(true)->_elseif(true)->_else()->_endif(); $this->assertEquals($f2, $f, '_endif returns criteria'); $f = new TestableCriteria(); $f2 = $f->_if(true)->_else()->_endif()->_if(true)->_else()->_endif()->_if(false)->_else()->_endif(); $this->assertEquals($f2, $f, '_endif can be chained'); $f = new TestableCriteria(); $f2 = $f->_if(false)->_else()->_endif(); $this->assertEquals($f2, $f, '_endif returns criteria'); $f = new TestableCriteria(); $f2 = $f->_if(false)->_if(false)->_endif()->_elseif(false)->_if(false)->_endif()->_elseif(true)->_if(true)->_if(true)->_endif()->_endif()->_elseif(true)->_if(false)->_endif()->_else()->_endif(); $this->assertEquals($f2, $f, '_endif returns criteria when nested'); }