New command: TIME (Redis v2.6-dev).

This commit is contained in:
Daniele Alessandri
2012-03-07 12:30:39 +01:00
parent 86bf223ec0
commit effefcee34
4 changed files with 119 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
<?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\Commands;
/**
* @link http://redis.io/commands/time
* @author Daniele Alessandri <suppakilla@gmail.com>
*/
class ServerTime extends Command
{
/**
* {@inheritdoc}
*/
public function getId()
{
return 'TIME';
}
/**
* {@inheritdoc}
*/
protected function canBeHashed()
{
return false;
}
/**
* {@inheritdoc}
*/
public function parseResponse($data)
{
return $data instanceof \Iterator ? iterator_to_array($data) : $data;
}
}
@@ -51,6 +51,7 @@ class ServerVersionNext extends ServerVersion24
/* remote server control commands */
'info' => 'Predis\Commands\ServerInfoV26x',
'time' => 'Predis\Commands\ServerTime',
));
}
}
+74
View File
@@ -0,0 +1,74 @@
<?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\Commands;
use \PHPUnit_Framework_TestCase as StandardTestCase;
/**
* @group commands
* @group realm-server
*/
class ServerTimeTest extends CommandTestCase
{
/**
* {@inheritdoc}
*/
protected function getExpectedCommand()
{
return 'Predis\Commands\ServerTime';
}
/**
* {@inheritdoc}
*/
protected function getExpectedId()
{
return 'TIME';
}
/**
* @group disconnected
*/
public function testFilterArguments()
{
$arguments = array();
$expected = array();
$command = $this->getCommand();
$command->setArguments($arguments);
$this->assertSame($expected, $command->getArguments());
}
/**
* @group disconnected
*/
public function testParseResponse()
{
$expected = array(1331114908, 453990);
$command = $this->getCommand();
$this->assertSame($expected, $command->parseResponse($expected));
}
/**
* @group connected
*/
public function testReturnsServerTime()
{
$redis = $this->getClient();
$this->assertInternalType('array', $time = $redis->time());
$this->assertInternalType('string', $time[0]);
$this->assertInternalType('string', $time[1]);
}
}
@@ -168,6 +168,7 @@ class ServerVersionNextTest extends ServerVersionTestCase
127 => 'eval',
128 => 'evalsha',
129 => 'script',
130 => 'time',
);
}
}