Selaa lähdekoodia

[tests] Cover SET modifiers EX, PX, NX|XX (Redis >= 2.6.12).

Daniele Alessandri 9 vuotta sitten
vanhempi
commit
d0012e67ff
1 muutettua tiedostoa jossa 67 lisäystä ja 0 poistoa
  1. 67 0
      tests/Predis/Command/StringSetTest.php

+ 67 - 0
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'));
+    }
 }