1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
<?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\Connection;
use Predis\Command\RawCommand;
use Predis\Response\Error as ErrorResponse;
/**
*
*/
class StreamConnectionTest extends PredisConnectionTestCase
{
const CONNECTION_CLASS = 'Predis\Connection\StreamConnection';
/**
* @group disconnected
*/
public function testThrowsExceptionOnInitializationCommandFailure()
{
$this->expectException('\Predis\Connection\ConnectionException');
$this->expectExceptionMessage('`SELECT` failed: ERR invalid DB index [tcp://127.0.0.1:6379]');
$cmdSelect = RawCommand::create('SELECT', '1000');
$connection = $this->getMockBuilder(static::CONNECTION_CLASS)
->setMethods(array('executeCommand', 'createResource'))
->setConstructorArgs(array(new Parameters()))
->getMock();
$connection->method('executeCommand')
->with($cmdSelect)
->will($this->returnValue(
new ErrorResponse('ERR invalid DB index')
));
$connection->method('createResource');
$connection->addConnectCommand($cmdSelect);
$connection->connect();
}
// ******************************************************************** //
// ---- INTEGRATION TESTS --------------------------------------------- //
// ******************************************************************** //
/**
* @group connected
* @requires PHP 5.4
*/
public function testPersistentParameterWithFalseLikeValues()
{
$connection1 = $this->createConnectionWithParams(array('persistent' => 0));
$this->assertNonPersistentConnection($connection1);
$connection2 = $this->createConnectionWithParams(array('persistent' => false));
$this->assertNonPersistentConnection($connection2);
$connection3 = $this->createConnectionWithParams(array('persistent' => '0'));
$this->assertNonPersistentConnection($connection3);
$connection4 = $this->createConnectionWithParams(array('persistent' => 'false'));
$this->assertNonPersistentConnection($connection4);
}
/**
* @group connected
* @requires PHP 5.4
*/
public function testPersistentParameterWithTrueLikeValues()
{
$connection1 = $this->createConnectionWithParams(array('persistent' => 1));
$this->assertPersistentConnection($connection1);
$connection2 = $this->createConnectionWithParams(array('persistent' => true));
$this->assertPersistentConnection($connection2);
$connection3 = $this->createConnectionWithParams(array('persistent' => '1'));
$this->assertPersistentConnection($connection3);
$connection4 = $this->createConnectionWithParams(array('persistent' => 'true'));
$this->assertPersistentConnection($connection4);
$connection1->disconnect();
}
/**
* @group connected
* @requires PHP 5.4
*/
public function testPersistentConnectionsToSameNodeShareResource()
{
$connection1 = $this->createConnectionWithParams(array('persistent' => true));
$connection2 = $this->createConnectionWithParams(array('persistent' => true));
$this->assertPersistentConnection($connection1);
$this->assertPersistentConnection($connection2);
$this->assertSame($connection1->getResource(), $connection2->getResource());
$connection1->disconnect();
}
/**
* @group connected
* @requires PHP 5.4
*/
public function testPersistentConnectionsToSameNodeDoNotShareResourceUsingDifferentPersistentID()
{
$connection1 = $this->createConnectionWithParams(array('persistent' => 'conn1'));
$connection2 = $this->createConnectionWithParams(array('persistent' => 'conn2'));
$this->assertPersistentConnection($connection1);
$this->assertPersistentConnection($connection2);
$this->assertNotSame($connection1->getResource(), $connection2->getResource());
}
}
|