Exemplo n.º 1
0
 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');
 }