diff --git a/tests/Predis/Command/StringSetTest.php b/tests/Predis/Command/StringSetTest.php index 3d2ba51d..348728ec 100644 --- a/tests/Predis/Command/StringSetTest.php +++ b/tests/Predis/Command/StringSetTest.php @@ -47,6 +47,20 @@ class StringSetTest extends PredisCommandTestCase $this->assertSame($expected, $command->getArguments()); } + /** + * @group disconnected + */ + public function testFilterArgumentsRedisWithModifiers() + { + $arguments = array('foo', 'bar', 'EX', '10', 'NX'); + $expected = array('foo', 'bar', 'EX', '10', 'NX'); + + $command = $this->getCommand(); + $command->setArguments($arguments); + + $this->assertSame($expected, $command->getArguments()); + } + /** * @group disconnected */ @@ -66,4 +80,57 @@ class StringSetTest extends PredisCommandTestCase $this->assertSame(1, $redis->exists('foo')); $this->assertSame('bar', $redis->get('foo')); } + + /** + * @group connected + * @requiresRedisVersion >= 2.6.12 + */ + public function testSetStringValueWithModifierEX() + { + $redis = $this->getClient(); + + $this->assertEquals('OK', $redis->set('foo', 'bar', 'ex', 1)); + $this->assertSame(1, $redis->ttl('foo')); + } + + /** + * @group connected + * @requiresRedisVersion >= 2.6.12 + */ + public function testSetStringValueWithModifierPX() + { + $redis = $this->getClient(); + + $this->assertEquals('OK', $redis->set('foo', 'bar', 'px', 1000)); + + $pttl = $redis->pttl('foo'); + $this->assertGreaterThan(0, $pttl); + $this->assertLessThanOrEqual(1000, $pttl); + } + + /** + * @group connected + * @requiresRedisVersion >= 2.6.12 + */ + public function testSetStringValueWithModifierNX() + { + $redis = $this->getClient(); + + $this->assertEquals('OK', $redis->set('foo', 'bar', 'NX')); + $this->assertNull($redis->set('foo', 'bar', 'NX')); + } + + /** + * @group connected + * @requiresRedisVersion >= 2.6.12 + */ + public function testSetStringValueWithModifierXX() + { + $redis = $this->getClient(); + + $this->assertEquals('OK', $redis->set('foo', 'bar')); + + $this->assertEquals('OK', $redis->set('foo', 'barbar', 'XX')); + $this->assertNull($redis->set('foofoo', 'barbar', 'XX')); + } }