Browse Source

Add tests for Memcached to ensure its counters have TTLs

Because memcached doesn't allow cache keys to be incremented/decremented
without a default value (unless you use the binary protocol), we don't
need an explict TTL set as the key will have a TTL set when it is
initially written.

Refs #10786
Mark Story 8 years ago
parent
commit
bd57bf9c5e
1 changed files with 20 additions and 0 deletions
  1. 20 0
      tests/TestCase/Cache/Engine/MemcachedEngineTest.php

+ 20 - 0
tests/TestCase/Cache/Engine/MemcachedEngineTest.php

@@ -723,6 +723,26 @@ class MemcachedEngineTest extends TestCase
     }
 
     /**
+     * Test that increment and decrement set ttls.
+     *
+     * @return void
+     */
+    public function testIncrementDecrementExpiring()
+    {
+        $this->_configCache(['duration' => 1]);
+        Cache::write('test_increment', 1, 'memcached');
+        Cache::write('test_decrement', 1, 'memcached');
+
+        $this->assertSame(2, Cache::increment('test_increment', 1, 'memcached'));
+        $this->assertSame(0, Cache::decrement('test_decrement', 1, 'memcached'));
+
+        sleep(1);
+
+        $this->assertFalse(Cache::read('test_increment', 'memcached'));
+        $this->assertFalse(Cache::read('test_decrement', 'memcached'));
+    }
+
+    /**
      * test incrementing compressed keys
      *
      * @return void