Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_isIterateable_001.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: ReflectionClass::isIterateable()
                      3: --CREDITS--
                      4: Robin Fernandes <robinf@php.net>
                      5: Steve Seear <stevseea@php.net>
                      6: --FILE--
                      7: <?php
                      8: Interface ExtendsIterator extends Iterator {
                      9: }
                     10: Interface ExtendsIteratorAggregate extends IteratorAggregate {
                     11: }
                     12: Class IteratorImpl implements Iterator {
                     13:        public function next() {}
                     14:        public function key() {}
                     15:        public function rewind() {}
                     16:        public function current() {}
                     17:        public function valid() {}
                     18: }
                     19: Class IterarorAggregateImpl implements IteratorAggregate {
                     20:        public function getIterator() {}
                     21: }
                     22: Class ExtendsIteratorImpl extends IteratorImpl {
                     23: }
                     24: Class ExtendsIteratorAggregateImpl extends IterarorAggregateImpl {
                     25: }
                     26: Class A {
                     27: }
                     28: 
                     29: $classes = array('Traversable', 'Iterator', 'IteratorAggregate', 'ExtendsIterator', 'ExtendsIteratorAggregate', 
                     30:          'IteratorImpl', 'IterarorAggregateImpl', 'ExtendsIteratorImpl', 'ExtendsIteratorAggregateImpl', 'A');
                     31: 
                     32: foreach($classes as $class) {
                     33:        $rc = new ReflectionClass($class);
                     34:        echo "Is $class iterable? ";
                     35:        var_dump($rc->isIterateable());
                     36: }
                     37: 
                     38: echo "\nTest invalid params:\n";
                     39: $rc = new ReflectionClass('IteratorImpl');
                     40: var_dump($rc->isIterateable(null));
                     41: var_dump($rc->isIterateable(null, null));
                     42: var_dump($rc->isIterateable(1));
                     43: var_dump($rc->isIterateable(1.5));
                     44: var_dump($rc->isIterateable(true));
                     45: var_dump($rc->isIterateable('X'));
                     46: var_dump($rc->isIterateable(null));
                     47: 
                     48: echo "\nTest static invocation:\n";
                     49: ReflectionClass::isIterateable();
                     50: 
                     51: ?>
                     52: --EXPECTF--
                     53: Is Traversable iterable? bool(false)
                     54: Is Iterator iterable? bool(false)
                     55: Is IteratorAggregate iterable? bool(false)
                     56: Is ExtendsIterator iterable? bool(false)
                     57: Is ExtendsIteratorAggregate iterable? bool(false)
                     58: Is IteratorImpl iterable? bool(true)
                     59: Is IterarorAggregateImpl iterable? bool(true)
                     60: Is ExtendsIteratorImpl iterable? bool(true)
                     61: Is ExtendsIteratorAggregateImpl iterable? bool(true)
                     62: Is A iterable? bool(false)
                     63: 
                     64: Test invalid params:
                     65: 
                     66: Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 34
                     67: NULL
                     68: 
                     69: Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 2 given in %s on line 35
                     70: NULL
                     71: 
                     72: Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 36
                     73: NULL
                     74: 
                     75: Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 37
                     76: NULL
                     77: 
                     78: Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 38
                     79: NULL
                     80: 
                     81: Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 39
                     82: NULL
                     83: 
                     84: Warning: ReflectionClass::isIterateable() expects exactly 0 parameters, 1 given in %s on line 40
                     85: NULL
                     86: 
                     87: Test static invocation:
                     88: 
                     89: Fatal error: Non-static method ReflectionClass::isIterateable() cannot be called statically in %s on line 43

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>