diff --git a/tests/unit/CachingIteratorAggregateTest.php b/tests/unit/CachingIteratorAggregateTest.php index fb7920b..5f690d9 100644 --- a/tests/unit/CachingIteratorAggregateTest.php +++ b/tests/unit/CachingIteratorAggregateTest.php @@ -9,6 +9,7 @@ namespace tests\loophp\iterators; +use Generator; use loophp\iterators\CachingIteratorAggregate; use PHPUnit\Framework\TestCase; @@ -20,16 +21,38 @@ final class CachingIteratorAggregateTest extends TestCase { public function testWithAGenerator(): void { - $input = static function () { + $input = static function (): Generator { + yield true => true; + + yield false => false; + + yield ['a'] => ['a']; + yield from range('a', 'c'); }; $iterator = (new CachingIteratorAggregate($input())); - foreach ($iterator as $key => $value); + $a = $b = []; + + foreach ($iterator as $key => $value) { + $a[] = [$key, $value]; + } + + foreach ($iterator as $key => $value) { + $b[] = [$key, $value]; + } - foreach ($iterator as $key => $value); + $expected = [ + [true, true], + [false, false], + [['a'], ['a']], + [0, 'a'], + [1, 'b'], + [2, 'c'], + ]; - $this->expectNotToPerformAssertions(); + self::assertEquals($expected, $a); + self::assertTrue($a === $b); } }