Annotation of embedaddon/php/ext/spl/tests/iterator_045.phpt, revision 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>