Commit Graph

19 Commits

Author SHA1 Message Date
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 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 04b8a8f75c Update comment to reflect old changes. 2011-10-02 11:55:23 +02:00
Daniele Alessandri 05b111d6d2 Update comment. 2011-06-29 12:05:00 +02:00
Daniele Alessandri fc51f23ca7 Return cURL errors on HTTP response codes >= 400.
By default the cURL extension does not trigger any error when fetching a
response with an HTTP code >= 400. Changing this behaviour is also useful to
intercept the 403 error generated when executing Redis commands disallowed
on Webdis by using ACLs.
2011-06-08 23:07:23 +02:00
Daniele Alessandri b85bc00880 Add support for the 'connection_timeout' parameter with WebdisConnection. 2011-06-08 22:40:35 +02:00
Daniele Alessandri 86256f2819 Minor reorganization, nothing worth mentioning. 2011-06-08 21:56:11 +02:00
Daniele Alessandri bc040fae6f Change handling of unsupported methods in Predis\Network\WebdisConnection. 2011-06-08 21:53:54 +02:00
Daniele Alessandri e7d2717ee1 Switch from pecl_http to the cURL extension to make requests against Webdis.
The cURL extension is easily found already packaged for various Linux
distributions, it provides everything needed and it seems to have a lower
overhead compared to pecl_http.
2011-06-08 21:43:23 +02:00
Daniele Alessandri 0de4af07dd Fix wrong serialization for commands that do not have arguments. 2011-06-06 12:49:38 +02:00
Daniele Alessandri ff7812282e Slightly change how HTTP options are initialized and handled. 2011-06-06 12:18:37 +02:00
Daniele Alessandri e5a85dfce8 Add support for HTTP basic access authentication.
With Webdis it is possible to define some access control rules to allow or
disallow certain commands and one of the possible configurations is based on
plain old HTTP authentication.
2011-06-05 22:24:03 +02:00
Daniele Alessandri 4b3ba03a3e Disallow certain commands that are disabled or do not make sense with Webdis. 2011-06-05 21:43:55 +02:00
Daniele Alessandri 776501b31a Use a faster approach to serialize the POST data for HTTP requests to Webdis. 2011-06-05 21:01:15 +02:00
Daniele Alessandri 2c8d256bdc Reimport Predis\Network\WebdisConnection with updates.
I could have rebased the previous branch with master, but since it was only a
single file and its history was basically meaningless I preferred to start
from scratch.
2011-06-05 18:46:16 +02:00