Files
predis/tests/Predis/HelpersTest.php
T
Daniele Alessandri 511fe0bbab Rewrite the logic used to handle Redis commands with clustering.
The reason for this change is to support the upcoming redis-cluster since
it has different behaviors compared to the client-side cluster implementation
provided by Predis. For example redis-cluster will not support key tags or
certain operations currently available with our client-side implementation.
2012-05-16 16:50:37 +02:00

83 lines
2.5 KiB
PHP

<?php
/*
* This file is part of the Predis package.
*
* (c) Daniele Alessandri <suppakilla@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Predis;
use \PHPUnit_Framework_TestCase as StandardTestCase;
/**
*
*/
class HelpersTest extends StandardTestCase
{
/**
* @group disconnected
*/
public function testConnectionIsCluster()
{
$single = $this->getMock('Predis\Connection\SingleConnectionInterface');
$cluster = $this->getMock('Predis\Connection\ClusterConnectionInterface');
$this->assertFalse(Helpers::isCluster($single));
$this->assertTrue(Helpers::isCluster($cluster));
}
/**
* @group disconnected
*/
public function testOnCommunicationException()
{
$this->setExpectedException('Predis\CommunicationException');
$connection = $this->getMock('Predis\Connection\SingleConnectionInterface');
$connection->expects($this->once())->method('isConnected')->will($this->returnValue(true));
$connection->expects($this->once())->method('disconnect');
$exception = $this->getMockForAbstractClass('Predis\CommunicationException', array($connection));
Helpers::onCommunicationException($exception);
}
/**
* @group disconnected
*/
public function testFilterArrayArguments()
{
$arguments = array('arg1', 'arg2', 'arg3', 'arg4');
$this->assertSame($arguments, Helpers::filterArrayArguments($arguments));
$this->assertSame($arguments, Helpers::filterArrayArguments(array($arguments)));
$arguments = array(array(), array());
$this->assertSame($arguments, Helpers::filterArrayArguments($arguments));
$arguments = array(new \stdClass());
$this->assertSame($arguments, Helpers::filterArrayArguments($arguments));
}
/**
* @group disconnected
*/
public function testFilterVariadicValues()
{
$arguments = array('key', 'value1', 'value2', 'value3');
$this->assertSame($arguments, Helpers::filterVariadicValues($arguments));
$this->assertSame($arguments, Helpers::filterVariadicValues(array('key', array('value1', 'value2', 'value3'))));
$arguments = array(array(), array());
$this->assertSame($arguments, Helpers::filterArrayArguments($arguments));
$arguments = array(new \stdClass());
$this->assertSame($arguments, Helpers::filterArrayArguments($arguments));
}
}