From 1fee86f650cbc83e1490368c60ac32f14128ad96 Mon Sep 17 00:00:00 2001 From: Mark Story Date: Sat, 17 Apr 2010 18:47:45 -0400 Subject: [PATCH] Adding tests for creating cache configs of different types in sequence. Demonstrates error explained in #596. --- cake/tests/cases/libs/cache/memcache.test.php | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/cake/tests/cases/libs/cache/memcache.test.php b/cake/tests/cases/libs/cache/memcache.test.php index 0a62804fb71..6090b7d3b1c 100644 --- a/cake/tests/cases/libs/cache/memcache.test.php +++ b/cake/tests/cases/libs/cache/memcache.test.php @@ -61,7 +61,11 @@ function skip() { function setUp() { $this->_cacheDisable = Configure::read('Cache.disable'); Configure::write('Cache.disable', false); - Cache::config('memcache', array('engine' => 'Memcache', 'prefix' => 'cake_')); + Cache::config('memcache', array( + 'engine' => 'Memcache', + 'prefix' => 'cake_', + 'duration' => 3600 + )); } /** * tearDown method @@ -222,5 +226,41 @@ function testDeleteCache() { $result = Cache::delete('delete_test'); $this->assertTrue($result); } + +/** + * test that configurations don't conflict, when a file engine is declared after a memcache one. + * + * @return void + */ + function testConfigurationConflict() { + Cache::config('long_memcache', array( + 'engine' => 'Memcache', + 'duration'=> '+2 seconds', + 'servers' => array('127.0.0.1:11211'), + )); + Cache::config('short_memcache', array( + 'engine' => 'Memcache', + 'duration'=> '+1 seconds', + 'servers' => array('127.0.0.1:11211'), + )); + Cache::config('some_file', array('engine' => 'File')); + + $this->assertTrue(Cache::write('duration_test', 'yay', 'long_memcache')); + $this->assertTrue(Cache::write('short_duration_test', 'boo', 'short_memcache')); + + $this->assertEqual(Cache::read('duration_test', 'long_memcache'), 'yay', 'Value was not read %s'); + $this->assertEqual(Cache::read('short_duration_test', 'short_memcache'), 'boo', 'Value was not read %s'); + + sleep(1); + $this->assertEqual(Cache::read('duration_test', 'long_memcache'), 'yay', 'Value was not read %s'); + + sleep(2); + $this->assertFalse(Cache::read('short_duration_test', 'short_memcache'), 'Cache was not invalidated %s'); + $this->assertFalse(Cache::read('duration_test', 'long_memcache'), 'Value did not expire %s'); + + Cache::delete('duration_test', 'long_memcache'); + Cache::delete('short_duration_test', 'short_memcache'); + } + } ?> \ No newline at end of file