[tests] Improve code-reuse in tests for the Predis\Connection namespace.

This commit is contained in:
Daniele Alessandri
2015-07-25 20:33:00 +02:00
parent 4f30ac6370
commit c7cae66a97
7 changed files with 314 additions and 496 deletions
@@ -19,85 +19,6 @@ class PhpiredisSocketConnectionTest extends PredisConnectionTestCase
{
const CONNECTION_CLASS = 'Predis\Connection\PhpiredisSocketConnection';
/**
* @group disconnected
*/
public function testConstructorDoesNotOpenConnection()
{
$connection = new PhpiredisSocketConnection($this->getParameters());
$this->assertFalse($connection->isConnected());
}
/**
* @group disconnected
*/
public function testSupportsSchemeTCP()
{
$parameters = $this->getParameters(array('scheme' => 'tcp'));
$connection = new PhpiredisSocketConnection($parameters);
$this->assertInstanceOf('Predis\Connection\NodeConnectionInterface', $connection);
}
/**
* @group disconnected
*/
public function testSupportsSchemeRedis()
{
$parameters = $this->getParameters(array('scheme' => 'redis'));
$connection = new PhpiredisSocketConnection($parameters);
$this->assertInstanceOf('Predis\Connection\NodeConnectionInterface', $connection);
}
/**
* @group disconnected
*/
public function testSupportsSchemeUnix()
{
$parameters = $this->getParameters(array('scheme' => 'unix'));
$connection = new PhpiredisSocketConnection($parameters);
$this->assertInstanceOf('Predis\Connection\NodeConnectionInterface', $connection);
}
/**
* @group disconnected
* @expectedException \InvalidArgumentException
* @expectedExceptionMessage Invalid scheme: 'udp'.
*/
public function testThrowsExceptionOnInvalidScheme()
{
$parameters = $this->getParameters(array('scheme' => 'udp'));
new PhpiredisSocketConnection($parameters);
}
/**
* @group disconnected
*/
public function testExposesParameters()
{
$parameters = $this->getParameters();
$connection = new PhpiredisSocketConnection($parameters);
$this->assertSame($parameters, $connection->getParameters());
}
/**
* @group disconnected
*/
public function testCanBeSerialized()
{
$parameters = $this->getParameters(array('alias' => 'redis', 'read_write_timeout' => 10));
$connection = new PhpiredisSocketConnection($parameters);
$unserialized = unserialize(serialize($connection));
$this->assertInstanceOf('Predis\Connection\PhpiredisSocketConnection', $unserialized);
$this->assertEquals($parameters, $unserialized->getParameters());
}
// ******************************************************************** //
// ---- INTEGRATION TESTS --------------------------------------------- //
// ******************************************************************** //
@@ -109,22 +30,21 @@ class PhpiredisSocketConnectionTest extends PredisConnectionTestCase
*/
public function testThrowsExceptionOnUnresolvableHostname()
{
$parameters = $this->getParameters(array('host' => 'bogus.tld'));
$connection = new PhpiredisSocketConnection($parameters);
$connection = $this->createConnectionWithParams(array('host' => 'bogus.tld'));
$connection->connect();
}
/**
* @medium
* @group connected
* @expectedException \Predis\Protocol\ProtocolException
* @expectedExceptionMessage Protocol error, got "P" as reply type byte
*/
public function testThrowsExceptionOnProtocolDesynchronizationErrors()
{
$connection = $this->getConnection($profile);
$connection = $this->createConnection();
$socket = $connection->getResource();
$connection->writeRequest($profile->createCommand('ping'));
$connection->writeRequest($this->getCurrentProfile()->createCommand('ping'));
socket_read($socket, 1);
$connection->read();