iterate not iterable connections #552

This commit is contained in:
Peter Gribanov
2019-03-25 19:31:56 +03:00
committed by Peter Gribanov
parent 111d100ee3
commit 4363345f7c
2 changed files with 10 additions and 6 deletions
+3 -1
View File
@@ -535,7 +535,9 @@ class Client implements ClientInterface, \IteratorAggregate
$connection = $this->getConnection();
if (!$connection instanceof \Traversable) {
throw new ClientException('The underlying connection is not traversable');
return new \ArrayIterator(array(
(string) $connection => new static($connection, $this->getOptions())
));
}
foreach ($connection as $node) {
+7 -5
View File
@@ -853,15 +853,17 @@ class ClientTest extends PredisTestCase
/**
* @group disconnected
* @expectedException \Predis\ClientException
* @expectedExceptionMessage The underlying connection is not traversable
*/
public function testGetIteratorWithNonTraversableConnectionThrowsException()
public function testGetIteratorWithNonTraversableConnectionNoException()
{
$connection = $this->getMock('Predis\Connection\NodeConnectionInterface');
$connection = $this->getMockConnection('tcp://127.0.0.1:6381');
$client = new Client($connection);
$client->getIterator();
$iterator = $client->getIterator();
$this->assertInstanceOf('\Predis\Client', $nodeClient = $iterator->current());
$this->assertSame($connection, $nodeClient->getConnection());
$this->assertSame('127.0.0.1:6381', $iterator->key());
}
// ******************************************************************** //