Commit Graph

26 Commits

Author SHA1 Message Date
Daniele Alessandri 93163bdfb3 Make it possible to serialize and unserialize connection instances. 2012-01-14 14:53:47 +01:00
Daniele Alessandri 371ac91777 [tests] Rewrite the whole test suite to allow more granular testing.
Fix also a few bugs found while rewriting the test suite.

In order to be able to run integration tests, the test suite requires
a version of Redis >= 2.4.0.

The units have been splitted into several different groups using
PHPUnit @group annotation to allow developers to enable, disable
and combine certain types of tests. The available groups are:

  - disconnected: can run without a Redis server online
  - connected: active connection to a Redis server is required
  - commands: test dedicated to a specific Redis command
  - slow: performs operations that can slow down execution;

A list of the available groups can be obtained by running

  phpunit --list-groups

Groups of tests can be disabled or enabled via the XML configuration
file or the standard command-line test runner. Please note that due
to a bug in PHPUnit, older versions ignore the --group option when
the group is excluded in the XML configuration file. Please refer to
http://github.com/sebastianbergmann/phpunit/issues/320 for details

Integration tests in the @connected group check if the command being
tested is defined in the selected server profile (see the value of
the TEST_SERVER_VERSION constant in phpunit.xml). If the command is
not defined in the target server profile, the integration test is
automatically marked as skipped.

We also provide an helper script in the bin directory that can be
used to automatically generate a file with the scheleton of a test
case for a Redis command by specifying the name of the class in the
Predis\Commands namespace. For example, to generate a test case for
SET (represented by the Predis\Commands\StringSet class):

  ./bin/generate-command-test.php --class=StringSet

The realm of a command is automatically inferred from the name of the
class, but it can be set using the --realm option.
2011-12-10 15:26:00 +01:00
Daniele Alessandri 64119bb4a0 Do not use different methods to initialize socket for the PhpiredisConnection. 2011-12-01 08:43:34 +01:00
Daniele Alessandri 7bdc2e6195 Rename a few protected/private field names. 2011-11-25 14:17:18 +01:00
Daniele Alessandri 0fee0c6d97 Remove the underscore prefix for names of private/protected fields. 2011-11-25 14:17:11 +01:00
Daniele Alessandri 29f26b0f9b [phpdoc] Apply a few fixes to the documentation. 2011-10-22 11:41:58 +02:00
Daniele Alessandri 4e6ed3f26d [phpdoc] Add API documentation.
This is a starting point to add a documentation of the whole set of APIs and
classes of Predis. The next step will be to actually improve and extend it.
2011-10-21 12:54:24 +02:00
Daniele Alessandri 9608a97469 Add a license header to PHP files. 2011-10-18 16:41:46 +02:00
Daniele Alessandri 20d872a306 Apply some coding style changes. 2011-10-18 15:51:55 +02:00
Daniele Alessandri cc2349c785 Change how error messages for server-side errors are handled. 2011-05-14 10:34:22 +02:00
Daniele Alessandri 984fd06c77 Fix check for unsupported parameters in Predis\Network\PhpiredisConnection. 2011-05-07 09:29:50 +02:00
Daniele Alessandri 4ea8489110 Differentiate communication exceptions between connection and protocol exceptions. 2011-04-05 15:59:21 +02:00
Daniele Alessandri 7146a32f6d Fix the phpiredis-based connection class. 2011-04-04 11:57:47 +02:00
Daniele Alessandri 503cc86f7d Move method to the base Predis\Network\ConnectionBase class. 2011-04-04 10:37:53 +02:00
Daniele Alessandri 3f720ad867 Add the new Predis\IConnectionParameters interface. 2011-03-31 15:12:52 +02:00
Daniele Alessandri ceca866158 Remove Predis\Network\IConnectionSingle::setProtocolOption() for now. 2011-03-20 10:47:30 +01:00
Daniele Alessandri 82759cd6ec Change how parameters are handled internally. 2011-03-10 16:30:00 +01:00
Daniele Alessandri 995de40734 Fix Predis\Network\PhpiredisConnection. 2011-03-06 16:20:37 +01:00
Daniele Alessandri 190b687789 Change how network resources are handled internally and also exposed to subclasses. 2011-03-06 14:45:59 +01:00
Daniele Alessandri 7bef3abf91 Change the code for the initialization of the phpiredis reader resource. 2011-03-06 09:55:22 +01:00
Daniele Alessandri 30bc53ee75 Rename method ICommand::getCommandId() to ICommand::getId(). 2011-03-04 19:37:10 +01:00
Daniele Alessandri 0d5fb3319d Move Predis\Command and Predis\ICommand to the Predis\Commands namespace. 2011-03-04 19:21:41 +01:00
Daniele Alessandri 21c959a451 Fix namespacing issues with Predis\ClientException. 2011-03-04 11:58:07 +01:00
Daniele Alessandri 33ffca23a0 Check if the socket extension is loaded. 2011-03-02 15:16:49 +01:00
Daniele Alessandri 6fada0c35c Add some notes. 2011-03-02 15:00:52 +01:00
Daniele Alessandri 99129fbf91 Implement a new Predis\Network\PhpiredisConnection class that internally uses phpiredis. 2011-03-02 12:28:42 +01:00