mirror of
https://github.com/predis/predis.git
synced 2026-08-25 16:49:36 +00:00
469f3cc68b
To specify a server profile you can just set the "prefix" option in the client options array passed to the constructor of Predis\Client.
99 lines
2.8 KiB
PHP
99 lines
2.8 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\Iterator;
|
|
|
|
use \PHPUnit_Framework_TestCase as StandardTestCase;
|
|
|
|
use Predis\Client;
|
|
|
|
/**
|
|
* @group realm-iterators
|
|
*/
|
|
class MultiBulkResponseTupleTest extends StandardTestCase
|
|
{
|
|
/**
|
|
* @group connected
|
|
*/
|
|
public function testIterableMultibulk()
|
|
{
|
|
$client = $this->getClient();
|
|
$client->zadd('metavars', 1, 'foo', 2, 'hoge', 3, 'lol');
|
|
|
|
$this->assertInstanceOf('OuterIterator', $iterator = $client->zrange('metavars', 0, -1, 'withscores'));
|
|
$this->assertInstanceOf('Predis\Iterator\MultiBulkResponseTuple', $iterator);
|
|
$this->assertInstanceOf('Predis\Iterator\MultiBulkResponseSimple', $iterator->getInnerIterator());
|
|
$this->assertTrue($iterator->valid());
|
|
$this->assertSame(3, $iterator->count());
|
|
|
|
$this->assertSame(array('foo', '1'), $iterator->current());
|
|
$this->assertSame(1, $iterator->next());
|
|
$this->assertTrue($iterator->valid());
|
|
|
|
$this->assertSame(array('hoge', '2'), $iterator->current());
|
|
$this->assertSame(2, $iterator->next());
|
|
$this->assertTrue($iterator->valid());
|
|
|
|
$this->assertSame(array('lol', '3'), $iterator->current());
|
|
$this->assertSame(3, $iterator->next());
|
|
$this->assertFalse($iterator->valid());
|
|
|
|
$this->assertTrue($client->ping());
|
|
}
|
|
|
|
/**
|
|
* @group connected
|
|
*/
|
|
public function testGarbageCollectorDropsUnderlyingConnection()
|
|
{
|
|
$client = $this->getClient();
|
|
$client->zadd('metavars', 1, 'foo', 2, 'hoge', 3, 'lol');
|
|
|
|
$iterator = $client->zrange('metavars', 0, -1, 'withscores');
|
|
|
|
unset($iterator);
|
|
|
|
$this->assertFalse($client->isConnected());
|
|
$this->assertTrue($client->ping());
|
|
}
|
|
|
|
// ******************************************************************** //
|
|
// ---- HELPER METHODS ------------------------------------------------ //
|
|
// ******************************************************************** //
|
|
|
|
/**
|
|
* Returns a new client instance.
|
|
*
|
|
* @return Client
|
|
*/
|
|
protected function getClient()
|
|
{
|
|
$parameters = array(
|
|
'host' => REDIS_SERVER_HOST,
|
|
'port' => REDIS_SERVER_PORT,
|
|
'iterable_multibulk' => true,
|
|
'read_write_timeout' => 2,
|
|
);
|
|
|
|
$options = array(
|
|
'profile' => REDIS_SERVER_VERSION,
|
|
);
|
|
|
|
$client = new Client($parameters, $options);
|
|
$client->connect();
|
|
$client->select(REDIS_SERVER_DBNUM);
|
|
$client->flushdb();
|
|
|
|
return $client;
|
|
}
|
|
|
|
}
|