mirror of
https://github.com/predis/predis.git
synced 2026-08-22 18:51:28 +00:00
b253bdc41e
We now have a base test case class for Predis (namely PredisTestCase) grouping various commonly used utility methods shared by all of the tests in the suite, greatly improving reusability.
183 lines
5.0 KiB
PHP
183 lines
5.0 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\Command;
|
|
|
|
use PredisTestCase;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class CommandTest extends PredisTestCase
|
|
{
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testImplementsCorrectInterface()
|
|
{
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
|
|
$this->assertInstanceOf('Predis\Command\CommandInterface', $command);
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testGetEmptyArguments()
|
|
{
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
|
|
$this->assertEmpty($command->getArguments());
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testSetRawArguments()
|
|
{
|
|
$arguments = array('1st', '2nd', '3rd');
|
|
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
$command->setRawArguments($arguments);
|
|
|
|
$this->assertEquals($arguments, $command->getArguments());
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*
|
|
* @todo We cannot set an expectation for Command::filterArguments when we
|
|
* invoke Command::setArguments() because it is protected. I wonder
|
|
* how we can do that.
|
|
*/
|
|
public function testSetArguments()
|
|
{
|
|
$arguments = array('1st', '2nd', '3rd');
|
|
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
$command->setArguments($arguments);
|
|
|
|
$this->assertEquals($arguments, $command->getArguments());
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testGetArgumentAtIndex()
|
|
{
|
|
$arguments = array('1st', '2nd', '3rd');
|
|
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
$command->setArguments($arguments);
|
|
|
|
$this->assertEquals($arguments[0], $command->getArgument(0));
|
|
$this->assertEquals($arguments[2], $command->getArgument(2));
|
|
$this->assertNull($command->getArgument(10));
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testParseResponse()
|
|
{
|
|
$response = 'response-buffer';
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
|
|
$this->assertEquals($response, $command->parseResponse($response));
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testSetAndGetHash()
|
|
{
|
|
$hash = "key-hash";
|
|
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
$command->setRawArguments(array('key'));
|
|
|
|
$this->assertNull($command->getHash());
|
|
|
|
$command->setHash($hash);
|
|
$this->assertSame($hash, $command->getHash());
|
|
|
|
$command->setArguments(array('key'));
|
|
$this->assertNull($command->getHash());
|
|
|
|
$command->setHash($hash);
|
|
$command->setRawArguments(array('key'));
|
|
$this->assertNull($command->getHash());
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testToString()
|
|
{
|
|
$expected = 'SET key value';
|
|
$arguments = array('key', 'value');
|
|
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
$command->expects($this->once())->method('getId')->will($this->returnValue('SET'));
|
|
|
|
$command->setRawArguments($arguments);
|
|
|
|
$this->assertEquals($expected, (string) $command);
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testToStringWithLongArguments()
|
|
{
|
|
$expected = 'SET key abcdefghijklmnopqrstuvwxyz012345[...]';
|
|
$arguments = array('key', 'abcdefghijklmnopqrstuvwxyz0123456789');
|
|
|
|
$command = $this->getMockForAbstractClass('Predis\Command\Command');
|
|
$command->expects($this->once())->method('getId')->will($this->returnValue('SET'));
|
|
|
|
$command->setRawArguments($arguments);
|
|
|
|
$this->assertEquals($expected, (string) $command);
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testNormalizeArguments()
|
|
{
|
|
$arguments = array('arg1', 'arg2', 'arg3', 'arg4');
|
|
|
|
$this->assertSame($arguments, Command::normalizeArguments($arguments));
|
|
$this->assertSame($arguments, Command::normalizeArguments(array($arguments)));
|
|
|
|
$arguments = array(array(), array());
|
|
$this->assertSame($arguments, Command::normalizeArguments($arguments));
|
|
|
|
$arguments = array(new \stdClass());
|
|
$this->assertSame($arguments, Command::normalizeArguments($arguments));
|
|
}
|
|
|
|
/**
|
|
* @group disconnected
|
|
*/
|
|
public function testNormalizeVariadic()
|
|
{
|
|
$arguments = array('key', 'value1', 'value2', 'value3');
|
|
|
|
$this->assertSame($arguments, Command::normalizeVariadic($arguments));
|
|
$this->assertSame($arguments, Command::normalizeVariadic(array('key', array('value1', 'value2', 'value3'))));
|
|
|
|
$arguments = array(new \stdClass());
|
|
$this->assertSame($arguments, Command::normalizeVariadic($arguments));
|
|
}
|
|
}
|