diff options
author | Lourens Naude <lourens@methodmissing.com> | 2009-01-17 18:05:48 -0600 |
---|---|---|
committer | Joshua Peek <josh@joshpeek.com> | 2009-01-17 18:05:48 -0600 |
commit | b08c96887538cf53670bb882e79996582375e6c9 (patch) | |
tree | a124364059632725b7e40bf58dfb35afdf995dd6 /activesupport/test/caching_test.rb | |
parent | 29e7a0242853a5e102b6846b87723fc26a1ffb08 (diff) | |
download | rails-b08c96887538cf53670bb882e79996582375e6c9.tar.gz rails-b08c96887538cf53670bb882e79996582375e6c9.tar.bz2 rails-b08c96887538cf53670bb882e79996582375e6c9.zip |
Decouple the local cache strategy from MemCacheStore for reuse with other remote stores [#1653 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
Diffstat (limited to 'activesupport/test/caching_test.rb')
-rw-r--r-- | activesupport/test/caching_test.rb | 36 |
1 files changed, 19 insertions, 17 deletions
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 |