pastebin

Paste Search Dynamic
Recent pastes
CachingIterator constructor
  1. <?php
  2.  
  3. /**
  4.  * Test: NetteIteratorsCachingIterator constructor.
  5.  */
  6.  
  7. declare(strict_types=1);
  8.  
  9. use NetteIterators;
  10. use TesterAssert;
  11.  
  12.  
  13. require __DIR__ . '/../bootstrap.php';
  14.  
  15.  
  16. test('array', function () {
  17.         $arr = ['Nette', 'Framework'];
  18.         $tmp = [];
  19.         foreach (new IteratorsCachingIterator($arr) as $k => $v) {
  20.                 $tmp[] = "$k => $v";
  21.         }
  22.  
  23.         assert::same([
  24.                 '0 => Nette',
  25.                 '1 => Framework',
  26.         ], $tmp);
  27. });
  28.  
  29.  
  30. test('stdClass', function () {
  31.         $arr = (object) ['Nette', 'Framework'];
  32.         $tmp = [];
  33.         foreach (new IteratorsCachingIterator($arr) as $k => $v) {
  34.                 $tmp[] = "$k => $v";
  35.         }
  36.  
  37.         assert::same([
  38.                 '0 => Nette',
  39.                 '1 => Framework',
  40.         ], $tmp);
  41. });
  42.  
  43.  
  44. test('IteratorAggregate', function () {
  45.         $arr = new ArrayObject(['Nette', 'Framework']);
  46.         $tmp = [];
  47.         foreach (new IteratorsCachingIterator($arr) as $k => $v) {
  48.                 $tmp[] = "$k => $v";
  49.         }
  50.  
  51.         assert::same([
  52.                 '0 => Nette',
  53.                 '1 => Framework',
  54.         ], $tmp);
  55. });
  56.  
  57. test('Iterator', function () {
  58.         $arr = new ArrayObject(['Nette', 'Framework']);
  59.         $tmp = [];
  60.         foreach (new IteratorsCachingIterator($arr->getIterator()) as $k => $v) {
  61.                 $tmp[] = "$k => $v";
  62.         }
  63.  
  64.         assert::same([
  65.                 '0 => Nette',
  66.                 '1 => Framework',
  67.         ], $tmp);
  68. });
  69.  
  70.  
  71. test('SimpleXMLElement', function () {
  72.         $arr = new SimpleXMLElement('<feed><item>Nette</item><item>Framework</item></feed>');
  73.         $tmp = [];
  74.         foreach (new IteratorsCachingIterator($arr) as $k => $v) {
  75.                 $tmp[] = "$k => $v";
  76.         }
  77.  
  78.         assert::same([
  79.                 'item => Nette',
  80.                 'item => Framework',
  81.         ], $tmp);
  82. });
  83.  
  84.  
  85. test('object', function () {
  86.         assert::exception(function () {
  87.                 $arr = dir('.');
  88.                 foreach (new IteratorsCachingIterator($arr) as $k => $v);
  89.         }, InvalidArgumentException::class, null);
  90. });
  91.  
  92.  
  93. class RecursiveIteratorAggregate implements IteratorAggregate
  94. {
  95.         public function getIterator(): Traversable
  96.         {
  97.                 return new ArrayObject(['Nette', 'Framework']);
  98.         }
  99. }
  100.  
  101.  
  102. test('recursive IteratorAggregate', function () {
  103.         $arr = new RecursiveIteratorAggregate;
  104.         $tmp = [];
  105.         foreach (new IteratorsCachingIterator($arr) as $k => $v) {
  106.                 $tmp[] = "$k => $v";
  107.         }
  108.  
  109.         assert::same([
  110.                 '0 => Nette',
  111.                 '1 => Framework',
  112.         ], $tmp);
  113. });
Parsed in 0.121 seconds