diff options
Diffstat (limited to 'vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator')
5 files changed, 165 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/AppendIteratorTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/AppendIteratorTest.php new file mode 100644 index 0000000..8d6ae84 --- /dev/null +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/AppendIteratorTest.php @@ -0,0 +1,29 @@ +<?php + +namespace Guzzle\Tests\Iterator; + +use Guzzle\Iterator\AppendIterator; + +/** + * @covers Guzzle\Iterator\AppendIterator + */ +class AppendIteratorTest extends \PHPUnit_Framework_TestCase +{ + public function testTraversesIteratorsInOrder() + { + $a = new \ArrayIterator(array( + 'a' => 1, + 'b' => 2 + )); + $b = new \ArrayIterator(array()); + $c = new \ArrayIterator(array( + 'c' => 3, + 'd' => 4 + )); + $i = new AppendIterator(); + $i->append($a); + $i->append($b); + $i->append($c); + $this->assertEquals(array(1, 2, 3, 4), iterator_to_array($i, false)); + } +} diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/ChunkedIteratorTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/ChunkedIteratorTest.php new file mode 100644 index 0000000..ec4c129 --- /dev/null +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/ChunkedIteratorTest.php @@ -0,0 +1,52 @@ +<?php + +namespace Guzzle\Tests\Iterator; + +use Guzzle\Iterator\ChunkedIterator; + +/** + * @covers Guzzle\Iterator\ChunkedIterator + */ +class ChunkedIteratorTest extends \PHPUnit_Framework_TestCase +{ + public function testChunksIterator() + { + $chunked = new ChunkedIterator(new \ArrayIterator(range(0, 100)), 10); + $chunks = iterator_to_array($chunked, false); + $this->assertEquals(11, count($chunks)); + foreach ($chunks as $j => $chunk) { + $this->assertEquals(range($j * 10, min(100, $j * 10 + 9)), $chunk); + } + } + + public function testChunksIteratorWithOddValues() + { + $chunked = new ChunkedIterator(new \ArrayIterator(array(1, 2, 3, 4, 5)), 2); + $chunks = iterator_to_array($chunked, false); + $this->assertEquals(3, count($chunks)); + $this->assertEquals(array(1, 2), $chunks[0]); + $this->assertEquals(array(3, 4), $chunks[1]); + $this->assertEquals(array(5), $chunks[2]); + } + + public function testMustNotTerminateWithTraversable() + { + $traversable = simplexml_load_string('<root><foo/><foo/><foo/></root>')->foo; + $chunked = new ChunkedIterator($traversable, 2); + $actual = iterator_to_array($chunked, false); + $this->assertCount(2, $actual); + } + + public function testSizeOfZeroMakesIteratorInvalid() { + $chunked = new ChunkedIterator(new \ArrayIterator(range(1, 5)), 0); + $chunked->rewind(); + $this->assertFalse($chunked->valid()); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testSizeLowerZeroThrowsException() { + new ChunkedIterator(new \ArrayIterator(range(1, 5)), -1); + } +} diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/FilterIteratorTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/FilterIteratorTest.php new file mode 100644 index 0000000..73b4f69 --- /dev/null +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/FilterIteratorTest.php @@ -0,0 +1,28 @@ +<?php + +namespace Guzzle\Tests\Iterator; + +use Guzzle\Iterator\FilterIterator; + +/** + * @covers Guzzle\Iterator\FilterIterator + */ +class FilterIteratorTest extends \PHPUnit_Framework_TestCase +{ + public function testFiltersValues() + { + $i = new FilterIterator(new \ArrayIterator(range(0, 100)), function ($value) { + return $value % 2; + }); + + $this->assertEquals(range(1, 99, 2), iterator_to_array($i, false)); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testValidatesCallable() + { + $i = new FilterIterator(new \ArrayIterator(), new \stdClass()); + } +} diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/MapIteratorTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/MapIteratorTest.php new file mode 100644 index 0000000..4de4a6b --- /dev/null +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/MapIteratorTest.php @@ -0,0 +1,28 @@ +<?php + +namespace Guzzle\Tests\Iterator; + +use Guzzle\Iterator\MapIterator; + +/** + * @covers Guzzle\Iterator\MapIterator + */ +class MapIteratorTest extends \PHPUnit_Framework_TestCase +{ + public function testFiltersValues() + { + $i = new MapIterator(new \ArrayIterator(range(0, 100)), function ($value) { + return $value * 10; + }); + + $this->assertEquals(range(0, 1000, 10), iterator_to_array($i, false)); + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testValidatesCallable() + { + $i = new MapIterator(new \ArrayIterator(), new \stdClass()); + } +} diff --git a/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/MethodProxyIteratorTest.php b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/MethodProxyIteratorTest.php new file mode 100644 index 0000000..5bcf06f --- /dev/null +++ b/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/MethodProxyIteratorTest.php @@ -0,0 +1,28 @@ +<?php + +namespace Guzzle\Tests\Iterator; + +use Guzzle\Iterator\MethodProxyIterator; +use Guzzle\Iterator\ChunkedIterator; + +/** + * @covers Guzzle\Iterator\MethodProxyIterator + */ +class MethodProxyIteratorTest extends \PHPUnit_Framework_TestCase +{ + public function testProxiesMagicCallsToInnermostIterator() + { + $i = new \ArrayIterator(); + $proxy = new MethodProxyIterator(new MethodProxyIterator(new MethodProxyIterator($i))); + $proxy->append('a'); + $proxy->append('b'); + $this->assertEquals(array('a', 'b'), $i->getArrayCopy()); + $this->assertEquals(array('a', 'b'), $proxy->getArrayCopy()); + } + + public function testUsesInnerIterator() + { + $i = new MethodProxyIterator(new ChunkedIterator(new \ArrayIterator(array(1, 2, 3, 4, 5)), 2)); + $this->assertEquals(3, count(iterator_to_array($i, false))); + } +} |