From bd57bf9c5e9a0f0d140467cd752900336be07ceb Mon Sep 17 00:00:00 2001 From: Mark Story Date: Sun, 18 Jun 2017 22:37:49 -0400 Subject: [PATCH] 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 --- .../Cache/Engine/MemcachedEngineTest.php | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/TestCase/Cache/Engine/MemcachedEngineTest.php b/tests/TestCase/Cache/Engine/MemcachedEngineTest.php index bac8ad4125e..ffa769286bd 100644 --- a/tests/TestCase/Cache/Engine/MemcachedEngineTest.php +++ b/tests/TestCase/Cache/Engine/MemcachedEngineTest.php @@ -722,6 +722,26 @@ public function testIncrement() Cache::delete('test_increment', 'memcached'); } + /** + * 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 *