Commit Graph

87 Commits

Author SHA1 Message Date
Daniele Alessandri 477056b862 For some reason, class and tests for BITCOUNT were missing... 2012-05-17 16:52:21 +02:00
Daniele Alessandri 3aff21f8cc New commands: BITOP, BITCOUNT (Redis v2.6-dev). 2012-05-17 16:34:50 +02:00
Daniele Alessandri b67dab9ab1 Fix Predis\Commands\ServerEvalSHA::getScriptHash().
"Predis\Commands\ServerEvalSHA::getScriptHash()" was calculating the hash
while it just needs to return the first argument of the command.
2012-04-28 01:25:17 +02:00
Daniele Alessandri 5af2b628f1 Scripting abstraction can use negatives to calculate number of keys.
With a negative number Predis will count from the end of the arguments list
to calculate the actual number of keys that will be interpreted as elements
for `KEYS` by the underlying `EVAL` command.
2012-04-25 11:20:57 +02:00
Daniele Alessandri effefcee34 New command: TIME (Redis v2.6-dev). 2012-03-07 12:30:39 +01:00
Daniele Alessandri 8cd8d4e580 Fix broken scripted commands when all arguments are considered keys. 2011-12-21 23:14:46 +01:00
Daniele Alessandri 4e0c09a3cf Fix E_STRICT error messages. 2011-12-11 16:57: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 da25d6b6ff Fix wrong method visibility. 2011-12-01 23:25:31 +01:00
Daniele Alessandri cad5d16eae Handle key prefixing in a completely different way.
When we will have PHP 5.4 going mainstream and Predis will drop support for
PHP 5.3, we will be able to rely in traits to semplify code and reuse more.
2011-12-01 22:52:11 +01:00
Daniele Alessandri 367ca6e31e Fix mistype in the ServerEval class. 2011-12-01 14:50:34 +01:00
Daniele Alessandri 1ae30d62db Returns the SHA1 hash of a Lua script from instances of ServerEval. 2011-12-01 08:49:42 +01:00
Daniele Alessandri b7c715a03f Rename helper method used to fetch the key tag from a key.
The name "getKeyHashablePart" was too generic for this method after all.
2011-11-28 10:10:28 +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 5d04cf540d New commands: INCRBYFLOAT, HINCRBYFLOAT (Redis v2.6-dev). 2011-11-18 16:10:39 +01:00
Daniele Alessandri 51b998720e New commands: PSETEX, PEXPIRE, PEXPIREAT, PTTL (Redis v2.6-dev). 2011-11-18 15:58:36 +01:00
Daniele Alessandri 4e0709ad3d New command: SCRIPT (Redis v2.6-dev).
See http://redis.io/commands/script.
2011-11-18 13:55:03 +01:00
Daniele Alessandri f75974b5d8 New command: SLOWLOG (Redis 2.2).
See http://redis.io/commands/slowlog.
2011-11-18 12:42:14 +01:00
Daniele Alessandri 5680cd40b5 Support the different replies of CONFIG GET|SET|RESETSTAT. 2011-11-18 12:42:09 +01:00
Daniele Alessandri 29f26b0f9b [phpdoc] Apply a few fixes to the documentation. 2011-10-22 11:41:58 +02:00
Gun.io Whitespace Robot b9ca78ac43 Remove whitespace [Gun.io WhitespaceBot] 2011-10-21 10:50:42 -04: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 b4d5b19b30 Fix a few oversights. 2011-10-18 16:19:12 +02:00
Daniele Alessandri 20d872a306 Apply some coding style changes. 2011-10-18 15:51:55 +02:00
Daniele Alessandri f19c6335d1 Fix parsing of replies to INFO for Redis 2.4.
The new string format for INFO replies has been postponed to a future version
of Redis, so we just moved the INFO class that handles them to the development
server profile.
2011-10-15 10:21:34 +02:00
Daniele Alessandri 3733e790eb Reuse code. 2011-08-21 11:55:08 +02:00
Daniele Alessandri 962037321a Make ZADD and ZREM variadic commands for Redis 2.4. 2011-05-31 21:28:37 +02:00
Daniele Alessandri 42521f2558 Do not use new classes for variadic RPUSH, LPUSH, SADD, SREM and HDEL in the 2.4 profile. 2011-05-31 21:26:04 +02:00
Daniele Alessandri 8efe76ad60 Make Predis\Commands\ServerEvalSHA inherited from Predis\Commands\ServerEval. 2011-05-13 21:36:25 +02:00
Daniele Alessandri 2010774b68 New command: EVALSHA (Redis v2.4-dev). 2011-05-13 21:23:02 +02:00
Daniele Alessandri 909b06e805 Add support for transparent key prefixing to EVAL and the Predis\Commands\ScriptedCommand class. 2011-05-13 20:22:06 +02:00
Daniele Alessandri 13ac03e134 Merge branch 'redis_scripting' 2011-05-13 20:06:34 +02:00
Daniele Alessandri 0e0cd865e7 Change the default value for the number of arguments used to populate KEYS. 2011-05-13 19:55:24 +02:00
Daniele Alessandri 5f0799ab65 Predis\Commands\Command::filterArguments() is protected. 2011-05-05 17:30:05 +02:00
Daniele Alessandri 9b4a915a52 Dynamically check for the presence of the WITHSCORE modifier with the ZRANGE family of commands. 2011-05-04 22:44:37 +02:00
Daniele Alessandri b47a3f9ab8 Implement Predis\Commands\Command::setRawArguments(). 2011-05-04 18:52:26 +02:00
Daniele Alessandri 5a80876c64 Handle key prefixing in a more consistent way, and make it a first-class citizen in Predis. 2011-05-04 18:06:40 +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 812d37b2d4 Fix typo. 2011-05-04 00:13:53 +02:00
Daniele Alessandri 859ee35c68 Expose two methods to retrieve the standard prefixing strategies used for commands accepting single or multiple keys. 2011-05-03 21:59:43 +02:00
Daniele Alessandri ca22208ce8 Define a default value for the number of values used to populate KEYS. 2011-05-03 18:00:30 +02:00
Daniele Alessandri a386263d84 Add an helper method to get the actual keys from the whole argument list. 2011-05-03 17:37:39 +02:00
Daniele Alessandri 2bdfed5071 Add an abstraction for a virtual command that leverages Redis scripting with the new EVAL command. 2011-05-03 15:14:51 +02:00
Daniele Alessandri bd027341be New command: EVAL (Redis v2.4-dev). 2011-05-03 15:07:56 +02:00
Daniele Alessandri b2575bd667 Reorganize some Redis commands classes. 2011-04-25 12:39:21 +02:00
Daniele Alessandri dac0104267 Move the reducer function in Predis\Commands\Command::__toString() to a protected method. 2011-04-25 09:48:39 +02:00
Daniele Alessandri 4ef8948b5e Move the key-tag extractor method to Predis\Helpers. 2011-04-24 11:04:17 +02:00
Daniele Alessandri b4a90df812 Reuse code. 2011-04-24 09:59:01 +02:00