From 1c8eb7ff6b4687bf0eb6044c6a096bd074baed94 Mon Sep 17 00:00:00 2001 From: Daniele Alessandri Date: Sat, 25 Jul 2015 18:41:55 +0200 Subject: [PATCH] [tests] Share common test among connection classes. --- tests/PHPUnit/PredisConnectionTestCase.php | 42 +++++++++++++++- .../CompositeStreamConnectionTest.php | 29 +---------- .../PhpiredisSocketConnectionTest.php | 49 +------------------ .../PhpiredisStreamConnectionTest.php | 49 +------------------ .../Connection/StreamConnectionTest.php | 29 +---------- .../Connection/WebdisConnectionTest.php | 34 +++---------- 6 files changed, 55 insertions(+), 177 deletions(-) diff --git a/tests/PHPUnit/PredisConnectionTestCase.php b/tests/PHPUnit/PredisConnectionTestCase.php index 56818086..9df8a230 100644 --- a/tests/PHPUnit/PredisConnectionTestCase.php +++ b/tests/PHPUnit/PredisConnectionTestCase.php @@ -126,6 +126,26 @@ abstract class PredisConnectionTestCase extends PredisTestCase $this->assertEquals('PONG', $connection->executeCommand($cmdPing)); } + /** + * @group connected + */ + public function testExecutesMultipleCommandsOnServer() + { + $connection = $this->getConnection($profile, true); + + $cmdPing = $profile->createCommand('ping'); + $cmdEcho = $profile->createCommand('echo', array('echoed')); + $cmdGet = $profile->createCommand('get', array('foobar')); + $cmdRpush = $profile->createCommand('rpush', array('metavars', 'foo', 'hoge', 'lol')); + $cmdLrange = $profile->createCommand('lrange', array('metavars', 0, -1)); + + $this->assertEquals('PONG', $connection->executeCommand($cmdPing)); + $this->assertSame('echoed', $connection->executeCommand($cmdEcho)); + $this->assertNull($connection->executeCommand($cmdGet)); + $this->assertSame(3, $connection->executeCommand($cmdRpush)); + $this->assertSame(array('foo', 'hoge', 'lol'), $connection->executeCommand($cmdLrange)); + } + /** * @group connected */ @@ -369,5 +389,25 @@ abstract class PredisConnectionTestCase extends PredisTestCase * * @return StreamConnection */ - abstract protected function getConnection(&$profile = null, $initialize = false, array $parameters = array()); + protected function getConnection(&$profile = null, $initialize = false, array $parameters = array()) + { + $class = static::CONNECTION_CLASS; + + $parameters = $this->getParameters($parameters); + $profile = $this->getProfile(); + + $connection = new $class($parameters); + + if ($initialize) { + $connection->addConnectCommand( + $profile->createCommand('select', array($parameters->database)) + ); + + $connection->addConnectCommand( + $profile->createCommand('flushdb') + ); + } + + return $connection; + } } diff --git a/tests/Predis/Connection/CompositeStreamConnectionTest.php b/tests/Predis/Connection/CompositeStreamConnectionTest.php index 28dcbf0c..33c92c33 100644 --- a/tests/Predis/Connection/CompositeStreamConnectionTest.php +++ b/tests/Predis/Connection/CompositeStreamConnectionTest.php @@ -16,6 +16,8 @@ namespace Predis\Connection; */ class CompositeStreamConnectionTest extends PredisConnectionTestCase { + const CONNECTION_CLASS = 'Predis\Connection\CompositeStreamConnection'; + /** * @group disconnected */ @@ -212,31 +214,4 @@ class CompositeStreamConnectionTest extends PredisConnectionTestCase $connection->read(); } - - // ******************************************************************** // - // ---- HELPER METHODS ------------------------------------------------ // - // ******************************************************************** // - - /** - * {@inheritdoc} - */ - protected function getConnection(&$profile = null, $initialize = false, array $parameters = array()) - { - $parameters = $this->getParameters($parameters); - $profile = $this->getProfile(); - - $connection = new CompositeStreamConnection($parameters); - - if ($initialize) { - $connection->addConnectCommand( - $profile->createCommand('select', array($parameters->database)) - ); - - $connection->addConnectCommand( - $profile->createCommand('flushdb') - ); - } - - return $connection; - } } diff --git a/tests/Predis/Connection/PhpiredisSocketConnectionTest.php b/tests/Predis/Connection/PhpiredisSocketConnectionTest.php index 9c80041d..71cd3269 100644 --- a/tests/Predis/Connection/PhpiredisSocketConnectionTest.php +++ b/tests/Predis/Connection/PhpiredisSocketConnectionTest.php @@ -17,6 +17,8 @@ namespace Predis\Connection; */ class PhpiredisSocketConnectionTest extends PredisConnectionTestCase { + const CONNECTION_CLASS = 'Predis\Connection\PhpiredisSocketConnection'; + /** * @group disconnected */ @@ -100,26 +102,6 @@ class PhpiredisSocketConnectionTest extends PredisConnectionTestCase // ---- INTEGRATION TESTS --------------------------------------------- // // ******************************************************************** // - /** - * @group connected - */ - public function testExecutesCommandsOnServer() - { - $connection = $this->getConnection($profile, true); - - $cmdPing = $profile->createCommand('ping'); - $cmdEcho = $profile->createCommand('echo', array('echoed')); - $cmdGet = $profile->createCommand('get', array('foobar')); - $cmdRpush = $profile->createCommand('rpush', array('metavars', 'foo', 'hoge', 'lol')); - $cmdLrange = $profile->createCommand('lrange', array('metavars', 0, -1)); - - $this->assertEquals('PONG', $connection->executeCommand($cmdPing)); - $this->assertSame('echoed', $connection->executeCommand($cmdEcho)); - $this->assertNull($connection->executeCommand($cmdGet)); - $this->assertSame(3, $connection->executeCommand($cmdRpush)); - $this->assertSame(array('foo', 'hoge', 'lol'), $connection->executeCommand($cmdLrange)); - } - /** * @group connected * @expectedException \Predis\Connection\ConnectionException @@ -147,31 +129,4 @@ class PhpiredisSocketConnectionTest extends PredisConnectionTestCase $connection->read(); } - - // ******************************************************************** // - // ---- HELPER METHODS ------------------------------------------------ // - // ******************************************************************** // - - /** - * {@inheritdoc} - */ - protected function getConnection(&$profile = null, $initialize = false, array $parameters = array()) - { - $parameters = $this->getParameters($parameters); - $profile = $this->getProfile(); - - $connection = new PhpiredisSocketConnection($parameters); - - if ($initialize) { - $connection->addConnectCommand( - $profile->createCommand('select', array($parameters->database)) - ); - - $connection->addConnectCommand( - $profile->createCommand('flushdb') - ); - } - - return $connection; - } } diff --git a/tests/Predis/Connection/PhpiredisStreamConnectionTest.php b/tests/Predis/Connection/PhpiredisStreamConnectionTest.php index 7ed41f7c..2a2c8629 100644 --- a/tests/Predis/Connection/PhpiredisStreamConnectionTest.php +++ b/tests/Predis/Connection/PhpiredisStreamConnectionTest.php @@ -17,6 +17,8 @@ namespace Predis\Connection; */ class PhpiredisStreamConnectionTest extends PredisConnectionTestCase { + const CONNECTION_CLASS = 'Predis\Connection\PhpiredisStreamConnection'; + /** * @group disconnected */ @@ -115,26 +117,6 @@ class PhpiredisStreamConnectionTest extends PredisConnectionTestCase $this->assertTrue($connection->isConnected()); } - /** - * @group connected - */ - public function testExecutesCommandsOnServer() - { - $connection = $this->getConnection($profile, true); - - $cmdPing = $profile->createCommand('ping'); - $cmdEcho = $profile->createCommand('echo', array('echoed')); - $cmdGet = $profile->createCommand('get', array('foobar')); - $cmdRpush = $profile->createCommand('rpush', array('metavars', 'foo', 'hoge', 'lol')); - $cmdLrange = $profile->createCommand('lrange', array('metavars', 0, -1)); - - $this->assertEquals('PONG', $connection->executeCommand($cmdPing)); - $this->assertSame('echoed', $connection->executeCommand($cmdEcho)); - $this->assertNull($connection->executeCommand($cmdGet)); - $this->assertSame(3, $connection->executeCommand($cmdRpush)); - $this->assertSame(array('foo', 'hoge', 'lol'), $connection->executeCommand($cmdLrange)); - } - /** * @group connected */ @@ -235,31 +217,4 @@ class PhpiredisStreamConnectionTest extends PredisConnectionTestCase $connection->read(); } - - // ******************************************************************** // - // ---- HELPER METHODS ------------------------------------------------ // - // ******************************************************************** // - - /** - * {@inheritdoc} - */ - protected function getConnection(&$profile = null, $initialize = false, array $parameters = array()) - { - $parameters = $this->getParameters($parameters); - $profile = $this->getProfile(); - - $connection = new PhpiredisStreamConnection($parameters); - - if ($initialize) { - $connection->addConnectCommand( - $profile->createCommand('select', array($parameters->database)) - ); - - $connection->addConnectCommand( - $profile->createCommand('flushdb') - ); - } - - return $connection; - } } diff --git a/tests/Predis/Connection/StreamConnectionTest.php b/tests/Predis/Connection/StreamConnectionTest.php index c1f0753e..7de62615 100644 --- a/tests/Predis/Connection/StreamConnectionTest.php +++ b/tests/Predis/Connection/StreamConnectionTest.php @@ -16,6 +16,8 @@ namespace Predis\Connection; */ class StreamConnectionTest extends PredisConnectionTestCase { + const CONNECTION_CLASS = 'Predis\Connection\StreamConnection'; + /** * @group disconnected */ @@ -212,31 +214,4 @@ class StreamConnectionTest extends PredisConnectionTestCase $connection->read(); } - - // ******************************************************************** // - // ---- HELPER METHODS ------------------------------------------------ // - // ******************************************************************** // - - /** - * {@inheritdoc} - */ - protected function getConnection(&$profile = null, $initialize = false, array $parameters = array()) - { - $parameters = $this->getParameters($parameters); - $profile = $this->getProfile(); - - $connection = new StreamConnection($parameters); - - if ($initialize) { - $connection->addConnectCommand( - $profile->createCommand('select', array($parameters->database)) - ); - - $connection->addConnectCommand( - $profile->createCommand('flushdb') - ); - } - - return $connection; - } } diff --git a/tests/Predis/Connection/WebdisConnectionTest.php b/tests/Predis/Connection/WebdisConnectionTest.php index 200083a3..4bc0332f 100644 --- a/tests/Predis/Connection/WebdisConnectionTest.php +++ b/tests/Predis/Connection/WebdisConnectionTest.php @@ -11,7 +11,6 @@ namespace Predis\Connection; -use Predis\Profile; use PredisTestCase; /** @@ -24,6 +23,8 @@ use PredisTestCase; */ class WebdisConnectionTest extends PredisTestCase { + const CONNECTION_CLASS = 'Predis\Connection\WebdisConnection'; + /** * @group disconnected */ @@ -140,26 +141,6 @@ class WebdisConnectionTest extends PredisTestCase // ---- INTEGRATION TESTS --------------------------------------------- // // ******************************************************************** // - /** - * @group connected - */ - public function testExecutesCommandsOnServer() - { - $connection = $this->getConnection($profile); - - $cmdPing = $profile->createCommand('ping'); - $cmdEcho = $profile->createCommand('echo', array('echoed')); - $cmdGet = $profile->createCommand('get', array('foobar')); - $cmdRpush = $profile->createCommand('rpush', array('metavars', 'foo', 'hoge', 'lol')); - $cmdLrange = $profile->createCommand('lrange', array('metavars', 0, -1)); - - $this->assertEquals('PONG', $connection->executeCommand($cmdPing)); - $this->assertSame('echoed', $connection->executeCommand($cmdEcho)); - $this->assertNull($connection->executeCommand($cmdGet)); - $this->assertSame(3, $connection->executeCommand($cmdRpush)); - $this->assertSame(array('foo', 'hoge', 'lol'), $connection->executeCommand($cmdLrange)); - } - /** * @medium * @group disconnected @@ -192,19 +173,16 @@ class WebdisConnectionTest extends PredisTestCase } /** - * Returns a new instance of a connection instance. - * - * @param mixed $profile Redis profile. - * @param array $parameters Additional connection parameters. - * - * @return WebdisConnection + * {@inheritdoc} */ protected function getConnection(&$profile = null, array $parameters = array()) { + $class = static::CONNECTION_CLASS; + $parameters = $this->getParameters($parameters); $profile = $this->getProfile(); - $connection = new WebdisConnection($parameters); + $connection = new $class($parameters); $connection->executeCommand($profile->createCommand('flushdb')); return $connection;