Commit Graph

23 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 d9b95d0bc7 Remove useless backslash in the FQN of server profiles. 2011-12-01 16:33:14 +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 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 b5affe739c Promote 2.4 as the default Redis server profile. 2011-10-15 10:31:38 +02:00
Daniele Alessandri c107d937fa Apply minor code styling change, nothing that really matters. 2011-10-02 23:19:08 +02:00
Daniele Alessandri 68dba4cb12 Ensure that commands are registered in server profiles using lowercase aliases. 2011-10-02 23:16:04 +02:00
Jurian Sluiman c33d053531 Add support for mixed case commands
Commands in Redis are most time written in uppercase, Predis supports
only lowercase commands. This change converts all commands into lower-
case, so MiXeDcAsE and UPPERCASE commands can be created as well.
2011-09-28 17:47:56 +02:00
Daniele Alessandri fb3088b4d3 Redis 2.4 has now its server profile (but it's not the default one yet). The development profile is now Redis 2.6. 2011-05-31 22:01:15 +02:00
Daniele Alessandri b5ebf48318 Make command processors accept only instances of Predis\Commands\ICommand. 2011-05-04 13:06:57 +02:00
Daniele Alessandri 09b5d7ac61 Change Predis\Commands\Preprocessors to Predis\Command\Processors. 2011-05-04 11:23:31 +02:00
Daniele Alessandri 944a478272 Remove Predis\Commands\Command::setArguments(). 2011-04-09 09:35:28 +02:00
Daniele Alessandri 33f6419700 Invoke preprocessors after checking if a command is defined by the current profile. 2011-04-05 21:38:49 +02:00
Daniele Alessandri 07b4238ce7 Add an abstraction to optionally preprocess command arguments. 2011-04-05 11:56:36 +02:00
Daniele Alessandri ac471eeff3 Rename and simplify Predis\Profiles\ServerProfile::registerProfile(). 2011-04-04 15:31:01 +02:00
Daniele Alessandri da2cd3ee7e Simplify Predis\Profiles\ServerProfile::defineCommand(). 2011-04-04 15:03:14 +02:00
Daniele Alessandri f8844ef8b8 Rename IServerProfile::registerCommand() to IServerProfile::defineCommand(). 2011-03-05 10:52:38 +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 fda4f32f06 Rename server profile classes to comply with how underscores are interpreted in the PSR-0 standard. 2011-02-27 13:37:03 +01:00
Jordi Boggiano 30f908cd85 Convert monolithic one-file-lib to a proper PSR-0 file tree 2011-02-21 14:17:57 +01:00