summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator')
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/AppendIteratorTest.php29
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/ChunkedIteratorTest.php52
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/FilterIteratorTest.php28
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/MapIteratorTest.php28
-rw-r--r--vendor/guzzle/guzzle/tests/Guzzle/Tests/Iterator/MethodProxyIteratorTest.php28
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)));
+ }
+}