123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- /*
- * This file is part of the Predis package.
- *
- * (c) Daniele Alessandri <suppakilla@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Predis\Commands;
- use \PHPUnit_Framework_TestCase as StandardTestCase;
- /**
- * @group realm-scripting
- */
- class ScriptedCommandTest extends StandardTestCase
- {
- const LUA_SCRIPT = 'return { KEYS[1], KEYS[2], ARGV[1], ARGV[2] }';
- /**
- * @group disconnected
- */
- public function testGetArguments()
- {
- $arguments = array('key1', 'key2', 'value1', 'value2');
- $command = $this->getMock('Predis\Commands\ScriptedCommand', array('getScript', 'getKeysCount'));
- $command->expects($this->once())
- ->method('getScript')
- ->will($this->returnValue(self::LUA_SCRIPT));
- $command->expects($this->once())
- ->method('getKeysCount')
- ->will($this->returnValue(2));
- $command->setArguments($arguments);
- $this->assertSame(array_merge(array(self::LUA_SCRIPT, 2), $arguments), $command->getArguments());
- }
- /**
- * @group disconnected
- */
- public function testGetArgumentsWithNegativeKeysCount()
- {
- $arguments = array('key1', 'key2', 'value1', 'value2');
- $command = $this->getMock('Predis\Commands\ScriptedCommand', array('getScript', 'getKeysCount'));
- $command->expects($this->once())
- ->method('getScript')
- ->will($this->returnValue(self::LUA_SCRIPT));
- $command->expects($this->once())
- ->method('getKeysCount')
- ->will($this->returnValue(-2));
- $command->setArguments($arguments);
- $this->assertSame(array_merge(array(self::LUA_SCRIPT, 2), $arguments), $command->getArguments());
- }
- /**
- * @group disconnected
- */
- public function testGetKeys()
- {
- $arguments = array('key1', 'key2', 'value1', 'value2');
- $command = $this->getMock('Predis\Commands\ScriptedCommand', array('getScript', 'getKeysCount'));
- $command->expects($this->once())
- ->method('getScript')
- ->will($this->returnValue(self::LUA_SCRIPT));
- $command->expects($this->exactly(2))
- ->method('getKeysCount')
- ->will($this->returnValue(2));
- $command->setArguments($arguments);
- $this->assertSame(array('key1', 'key2'), $command->getKeys());
- }
- /**
- * @group disconnected
- */
- public function testGetKeysWithNegativeKeysCount()
- {
- $arguments = array('key1', 'key2', 'value1', 'value2');
- $command = $this->getMock('Predis\Commands\ScriptedCommand', array('getScript', 'getKeysCount'));
- $command->expects($this->once())
- ->method('getScript')
- ->will($this->returnValue(self::LUA_SCRIPT));
- $command->expects($this->exactly(2))
- ->method('getKeysCount')
- ->will($this->returnValue(-2));
- $command->setArguments($arguments);
- $this->assertSame(array('key1', 'key2'), $command->getKeys());
- }
- /**
- * @group disconnected
- */
- public function testPrefixKeys()
- {
- $arguments = array('foo', 'hoge', 'bar', 'piyo');
- $expected = array('prefix:foo', 'prefix:hoge');
- $command = $this->getMock('Predis\Commands\ScriptedCommand', array('getScript', 'getKeysCount'));
- $command->expects($this->once())
- ->method('getScript')
- ->will($this->returnValue(self::LUA_SCRIPT));
- $command->expects($this->exactly(2))
- ->method('getKeysCount')
- ->will($this->returnValue(2));
- $command->setArguments($arguments);
- $command->prefixKeys('prefix:');
- $this->assertSame($expected, $command->getKeys());
- }
- /**
- * @group disconnected
- */
- public function testPrefixKeysWithNegativeKeysCount()
- {
- $arguments = array('foo', 'hoge', 'bar', 'piyo');
- $expected = array('prefix:foo', 'prefix:hoge');
- $command = $this->getMock('Predis\Commands\ScriptedCommand', array('getScript', 'getKeysCount'));
- $command->expects($this->once())
- ->method('getScript')
- ->will($this->returnValue(self::LUA_SCRIPT));
- $command->expects($this->exactly(2))
- ->method('getKeysCount')
- ->will($this->returnValue(-2));
- $command->setArguments($arguments);
- $command->prefixKeys('prefix:');
- $this->assertSame($expected, $command->getKeys());
- }
- /**
- * @group disconnected
- */
- public function testGetScriptHash()
- {
- $arguments = array('key1', 'key2', 'value1', 'value2');
- $command = $this->getMock('Predis\Commands\ScriptedCommand', array('getScript', 'getKeysCount'));
- $command->expects($this->once())
- ->method('getScript')
- ->will($this->returnValue(self::LUA_SCRIPT));
- $command->expects($this->once())
- ->method('getKeysCount')
- ->will($this->returnValue(2));
- $command->setArguments($arguments);
- $this->assertSame(sha1(self::LUA_SCRIPT), $command->getScriptHash());
- }
- }
|