From e59de6046cf01852e1b16e7a6a39de94aefa7e72 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Fri, 1 Feb 2008 01:43:47 +0000 Subject: [PATCH] Add a handful of cache store tests git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8764 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/lib/active_support/cache.rb | 2 ++ activesupport/test/caching_test.rb | 26 +++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/activesupport/lib/active_support/cache.rb b/activesupport/lib/active_support/cache.rb index f9cfed43b8..64394afec4 100644 --- a/activesupport/lib/active_support/cache.rb +++ b/activesupport/lib/active_support/cache.rb @@ -1,3 +1,5 @@ +require 'benchmark' + module ActiveSupport module Cache def self.lookup_store(*store_option) diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index 4694cb11d1..a038f29f53 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -25,3 +25,29 @@ class CacheStoreSettingTest < Test::Unit::TestCase assert_equal "/path/to/cache/directory", store.cache_path end end + +uses_mocha 'high-level cache store tests' do + class CacheStoreTest < Test::Unit::TestCase + def setup + @cache = ActiveSupport::Cache.lookup_store(:memory_store) + end + + def test_fetch_without_cache_miss + @cache.stubs(:read).with('foo', {}).returns('bar') + @cache.expects(:write).never + assert_equal 'bar', @cache.fetch('foo') { 'baz' } + end + + def test_fetch_with_cache_miss + @cache.stubs(:read).with('foo', {}).returns(nil) + @cache.expects(:write).with('foo', 'baz', {}) + assert_equal 'baz', @cache.fetch('foo') { 'baz' } + end + + def test_fetch_with_forced_cache_miss + @cache.expects(:read).never + @cache.expects(:write).with('foo', 'bar', :force => true) + @cache.fetch('foo', :force => true) { 'bar' } + end + end +end