/**
* @group disconnected
*/
public function testConnectPicksRandomConnection()
{
$connect1 = false;
$connect2 = false;
$connection1 = $this->getMockConnection('tcp://127.0.0.1:6379');
$connection1->expects($this->any())->method('connect')->will($this->returnCallback(function () use(&$connect1) {
$connect1 = true;
}));
$connection1->expects($this->any())->method('isConnected')->will($this->returnCallback(function () use(&$connect1) {
return $connect1;
}));
$connection2 = $this->getMockConnection('tcp://127.0.0.1:6380');
$connection2->expects($this->any())->method('connect')->will($this->returnCallback(function () use(&$connect2) {
$connect2 = true;
}));
$connection2->expects($this->any())->method('isConnected')->will($this->returnCallback(function () use(&$connect2) {
return $connect2;
}));
$cluster = new RedisCluster(new Connection\Factory());
$cluster->add($connection1);
$cluster->add($connection2);
$cluster->connect();
$this->assertTrue($cluster->isConnected());
if ($connect1) {
$this->assertTrue($connect1);
$this->assertFalse($connect2);
} else {
$this->assertFalse($connect1);
$this->assertTrue($connect2);
}
}