From b08c96887538cf53670bb882e79996582375e6c9 Mon Sep 17 00:00:00 2001 From: Lourens Naude Date: Sat, 17 Jan 2009 18:05:48 -0600 Subject: Decouple the local cache strategy from MemCacheStore for reuse with other remote stores [#1653 state:resolved] Signed-off-by: Joshua Peek --- activesupport/test/caching_test.rb | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'activesupport/test/caching_test.rb') diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index 5d220f4403..e8e0b41d4d 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -161,7 +161,7 @@ uses_memcached 'memcached backed store' do include CacheStoreBehavior def test_store_objects_should_be_immutable - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 'bar') @cache.read('foo').gsub!(/.*/, 'baz') assert_equal 'bar', @cache.read('foo') @@ -169,7 +169,7 @@ uses_memcached 'memcached backed store' do end def test_write_should_return_true_on_success - with_local_cache do + @cache.with_local_cache do result = @cache.write('foo', 'bar') assert_equal 'bar', @cache.read('foo') # make sure 'foo' was written assert result @@ -177,7 +177,7 @@ uses_memcached 'memcached backed store' do end def test_local_writes_are_persistent_on_the_remote_cache - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 'bar') end @@ -185,7 +185,7 @@ uses_memcached 'memcached backed store' do end def test_clear_also_clears_local_cache - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 'bar') @cache.clear assert_nil @cache.read('foo') @@ -193,7 +193,7 @@ uses_memcached 'memcached backed store' do end def test_local_cache_of_read_and_write - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 'bar') @data.flush_all # Clear remote cache assert_equal 'bar', @cache.read('foo') @@ -201,7 +201,7 @@ uses_memcached 'memcached backed store' do end def test_local_cache_of_delete - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 'bar') @cache.delete('foo') @data.flush_all # Clear remote cache @@ -210,7 +210,7 @@ uses_memcached 'memcached backed store' do end def test_local_cache_of_exist - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 'bar') @cache.instance_variable_set(:@data, nil) @data.flush_all # Clear remote cache @@ -219,7 +219,7 @@ uses_memcached 'memcached backed store' do end def test_local_cache_of_increment - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 1, :raw => true) @cache.increment('foo') @data.flush_all # Clear remote cache @@ -228,7 +228,7 @@ uses_memcached 'memcached backed store' do end def test_local_cache_of_decrement - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 1, :raw => true) @cache.decrement('foo') @data.flush_all # Clear remote cache @@ -237,20 +237,22 @@ uses_memcached 'memcached backed store' do end def test_exist_with_nulls_cached_locally - with_local_cache do + @cache.with_local_cache do @cache.write('foo', 'bar') @cache.delete('foo') assert !@cache.exist?('foo') end end - private - def with_local_cache - Thread.current[ActiveSupport::Cache::MemCacheStore::THREAD_LOCAL_KEY] = ActiveSupport::Cache::MemoryStore.new - yield - ensure - Thread.current[ActiveSupport::Cache::MemCacheStore::THREAD_LOCAL_KEY] = nil - end + def test_middleware + app = lambda { |env| + result = @cache.write('foo', 'bar') + assert_equal 'bar', @cache.read('foo') # make sure 'foo' was written + assert result + } + app = @cache.middleware.new(app) + app.call({}) + end end class CompressedMemCacheStore < ActiveSupport::TestCase -- cgit v1.2.3