helly Tue Jul 19 15:50:11 2005 EDT Added files: /php-src/tests/classes iterators_007.phpt Log: - Add test to verify all iterator methods can throw
http://cvs.php.net/co.php/php-src/tests/classes/iterators_007.phpt?r=1.1&p=1 Index: php-src/tests/classes/iterators_007.phpt +++ php-src/tests/classes/iterators_007.phpt --TEST-- ZE2 iterators and exceptions --FILE-- <? class Test implements Iterator { public $arr = array(1, 2, 3); public $x = 0; public function rewind() { if ($this->x == 0) throw new Exception(__METHOD__); reset($this->arr); } public function current() { if ($this->x == 1) throw new Exception(__METHOD__); return current($this->arr); } public function key() { if ($this->x == 2) throw new Exception(__METHOD__); return key($this->arr); } public function next() { if ($this->x == 3) throw new Exception(__METHOD__); next($this->arr); } public function valid() { if ($this->x == 4) throw new Exception(__METHOD__); return (key($this->arr) !== NULL); } } $t = new Test(); while($t->x < 5) { try { foreach($t as $k => $v) { echo "Current\n"; } } catch(Exception $e) { echo "Caught in " . $e->getMessage() . "()\n"; } $t->x++; } ?> ===DONE=== --EXPECT-- Caught in Test::rewind() Caught in Test::current() Caught in Test::key() Current Caught in Test::next() Caught in Test::valid() ===DONE=== -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php