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

1.1       misho       1: --TEST--
                      2: SPL: CachingIterator and offsetSet/Unset, getCache 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 testSet($ar)
                     22:        {
                     23:                echo __METHOD__ . "()\n";
                     24:                foreach($ar as $k => $v)
                     25:                {
                     26:                        echo "set($k,$v)\n";
                     27:                        $this->offsetSet($k, $v);
                     28:                }
                     29:        }
                     30:        
                     31:        function testUnset($ar)
                     32:        {
                     33:                echo __METHOD__ . "()\n";
                     34:                foreach($ar as $k => $v)
                     35:                {
                     36:                        echo "unset($v)\n";
                     37:                        $this->offsetUnset($v);
                     38:                }
                     39:        }
                     40:        
                     41:        function fill()
                     42:        {
                     43:                echo __METHOD__ . "()\n";
                     44:                foreach($this as $v) ;
                     45:        }
                     46: 
                     47:        function show()
                     48:        {
                     49:                echo __METHOD__ . "()\n";
                     50:                var_dump($this->getCache());
                     51:        }
                     52: }
                     53: 
                     54: $it = new MyCachingIterator(new ArrayIterator(array(0, 'foo'=>1, 2, 'bar'=>3, 4)));
                     55: 
                     56: try
                     57: {
                     58:        var_dump($it->offsetSet(0, 0));
                     59: }
                     60: catch(Exception $e)
                     61: {
                     62:        echo "Exception: " . $e->getMessage() . "\n";
                     63: }
                     64: 
                     65: try
                     66: {
                     67:        var_dump($it->offsetUnset(0));
                     68: }
                     69: catch(Exception $e)
                     70: {
                     71:        echo "Exception: " . $e->getMessage() . "\n";
                     72: }
                     73: 
                     74: $it = new MyCachingIterator(new ArrayIterator(array(0, 1, 2, 3)), CachingIterator::FULL_CACHE);
                     75: 
                     76: var_dump($it->offsetSet());
                     77: var_dump($it->offsetSet(0));
                     78: var_dump($it->offsetUnset());
                     79: 
                     80: $checks = array(0 => 25, 1 => 42, 3 => 'FooBar');
                     81: $unsets = array(0, 2);
                     82: 
                     83: $it->testSet($checks);
                     84: $it->show();
                     85: $it->testUnset($unsets);
                     86: $it->show();
                     87: $it->fill();
                     88: $it->show();
                     89: $it->testSet($checks);
                     90: $it->show();
                     91: $it->testUnset($unsets);
                     92: $it->show();
                     93: 
                     94: ?>
                     95: ===DONE===
                     96: <?php exit(0); ?>
                     97: --EXPECTF--
                     98: Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct)
                     99: Exception: MyCachingIterator does not use a full cache (see CachingIterator::__construct)
                    100: 
                    101: Warning: CachingIterator::offsetSet() expects exactly 2 parameters, 0 given in %siterator_045.php on line %d
                    102: NULL
                    103: 
                    104: Warning: CachingIterator::offsetSet() expects exactly 2 parameters, 1 given in %siterator_045.php on line %d
                    105: NULL
                    106: 
                    107: Warning: CachingIterator::offsetUnset() expects exactly 1 parameter, 0 given in %siterator_045.php on line %d
                    108: NULL
                    109: MyCachingIterator::testSet()
                    110: set(0,25)
                    111: set(1,42)
                    112: set(3,FooBar)
                    113: MyCachingIterator::show()
                    114: array(3) {
                    115:   [0]=>
                    116:   int(25)
                    117:   [1]=>
                    118:   int(42)
                    119:   [3]=>
                    120:   string(6) "FooBar"
                    121: }
                    122: MyCachingIterator::testUnset()
                    123: unset(0)
                    124: unset(2)
                    125: MyCachingIterator::show()
                    126: array(2) {
                    127:   [1]=>
                    128:   int(42)
                    129:   [3]=>
                    130:   string(6) "FooBar"
                    131: }
                    132: MyCachingIterator::fill()
                    133: MyCachingIterator::show()
                    134: array(4) {
                    135:   [0]=>
                    136:   int(0)
                    137:   [1]=>
                    138:   int(1)
                    139:   [2]=>
                    140:   int(2)
                    141:   [3]=>
                    142:   int(3)
                    143: }
                    144: MyCachingIterator::testSet()
                    145: set(0,25)
                    146: set(1,42)
                    147: set(3,FooBar)
                    148: MyCachingIterator::show()
                    149: array(4) {
                    150:   [0]=>
                    151:   int(25)
                    152:   [1]=>
                    153:   int(42)
                    154:   [2]=>
                    155:   int(2)
                    156:   [3]=>
                    157:   string(6) "FooBar"
                    158: }
                    159: MyCachingIterator::testUnset()
                    160: unset(0)
                    161: unset(2)
                    162: MyCachingIterator::show()
                    163: array(2) {
                    164:   [1]=>
                    165:   int(42)
                    166:   [3]=>
                    167:   string(6) "FooBar"
                    168: }
                    169: ===DONE===

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