Annotation of embedaddon/php/ext/spl/tests/iterator_044.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: SPL: CachingIterator and offsetGet/Exists using flag FULL_CACHE
                      3: --FILE--
                      4: <?php
                      5: 
                      6: class MyFoo
                      7: {
                      8:        function __toString()
                      9:        {
                     10:                return 'foo';
                     11:        }
                     12: }
                     13: 
                     14: class MyCachingIterator extends CachingIterator
                     15: {
                     16:        function __construct(Iterator $it, $flags = 0)
                     17:        {
                     18:                parent::__construct($it, $flags);
                     19:        }
                     20: 
                     21:        function test($ar)
                     22:        {
                     23:                foreach($ar as $k => $v)
                     24:                {
                     25:                        echo "===$k===\n";
                     26:                        var_dump($v);
                     27:                        var_dump($this->offsetExists($v));
                     28:                        var_dump($this->offsetGet($v));
                     29:                }
                     30:        }
                     31: }
                     32: 
                     33: $it = new MyCachingIterator(new ArrayIterator(array(0, 'foo'=>1, 2, 'bar'=>3, 4)));
                     34: 
                     35: try
                     36: {
                     37:        var_dump($it->offsetExists(0));
                     38: }
                     39: catch(Exception $e)
                     40: {
                     41:        echo "Exception: " . $e->getMessage() . "\n";
                     42: }
                     43: 
                     44: try
                     45: {
                     46:        var_dump($it->offsetGet(0));
                     47: }
                     48: catch(Exception $e)
                     49: {
                     50:        echo "Exception: " . $e->getMessage() . "\n";
                     51: }
                     52: 
                     53: $it = new MyCachingIterator(new ArrayIterator(array(0, 'foo'=>1, 2, 'bar'=>3, 4)), CachingIterator::FULL_CACHE);
                     54: 
                     55: var_dump($it->offsetExists());
                     56: var_dump($it->offsetGet());
                     57: 
                     58: $checks = array(0, new stdClass, new MyFoo, NULL, 2, 'foo', 3);
                     59: 
                     60: $it->test($checks);
                     61: 
                     62: echo "===FILL===\n";
                     63: 
                     64: foreach($it as $v); // read all into cache
                     65: 
                     66: $it->test($checks);
                     67: 
                     68: ?>
                     69: ===DONE===
                     70: <?php exit(0); ?>
                     71: --EXPECTF--
                     72: Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct)
                     73: Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct)
                     74: 
                     75: Warning: CachingIterator::offsetExists() expects exactly 1 parameter, 0 given in %siterator_044.php on line %d
                     76: NULL
                     77: 
                     78: Warning: CachingIterator::offsetGet() expects exactly 1 parameter, 0 given in %siterator_044.php on line %d
                     79: NULL
                     80: ===0===
                     81: int(0)
                     82: bool(false)
                     83: 
                     84: Notice: Undefined index:  0 in %siterator_044.php on line %d
                     85: NULL
                     86: ===1===
                     87: object(stdClass)#%d (0) {
                     88: }
                     89: 
                     90: Warning: CachingIterator::offsetExists() expects parameter 1 to be string, object given in %siterator_044.php on line %d
                     91: NULL
                     92: 
                     93: Warning: CachingIterator::offsetGet() expects parameter 1 to be string, object given in %siterator_044.php on line %d
                     94: NULL
                     95: ===2===
                     96: object(MyFoo)#%d (0) {
                     97: }
                     98: bool(false)
                     99: 
                    100: Notice: Undefined index:  foo in %siterator_044.php on line %d
                    101: NULL
                    102: ===3===
                    103: NULL
                    104: bool(false)
                    105: 
                    106: Notice: Undefined index:   in %siterator_044.php on line %d
                    107: NULL
                    108: ===4===
                    109: int(2)
                    110: bool(false)
                    111: 
                    112: Notice: Undefined index:  2 in %siterator_044.php on line %d
                    113: NULL
                    114: ===5===
                    115: string(3) "foo"
                    116: bool(false)
                    117: 
                    118: Notice: Undefined index:  foo in %siterator_044.php on line %d
                    119: NULL
                    120: ===6===
                    121: int(3)
                    122: bool(false)
                    123: 
                    124: Notice: Undefined index:  3 in %siterator_044.php on line %d
                    125: NULL
                    126: ===FILL===
                    127: ===0===
                    128: int(0)
                    129: bool(true)
                    130: int(0)
                    131: ===1===
                    132: object(stdClass)#1 (0) {
                    133: }
                    134: 
                    135: Warning: CachingIterator::offsetExists() expects parameter 1 to be string, object given in %siterator_044.php on line %d
                    136: NULL
                    137: 
                    138: Warning: CachingIterator::offsetGet() expects parameter 1 to be string, object given in %siterator_044.php on line %d
                    139: NULL
                    140: ===2===
                    141: object(MyFoo)#2 (0) {
                    142: }
                    143: bool(true)
                    144: int(1)
                    145: ===3===
                    146: NULL
                    147: bool(false)
                    148: 
                    149: Notice: Undefined index:   in %siterator_044.php on line %d
                    150: NULL
                    151: ===4===
                    152: int(2)
                    153: bool(true)
                    154: int(4)
                    155: ===5===
                    156: string(3) "foo"
                    157: bool(true)
                    158: int(1)
                    159: ===6===
                    160: int(3)
                    161: bool(false)
                    162: 
                    163: Notice: Undefined index:  3 in %siterator_044.php on line %d
                    164: NULL
                    165: ===DONE===

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