module LocalCacheBehavior def test_local_writes_are_persistent_on_the_remote_cache retval = @cache.with_local_cache do @cache.write('foo', 'bar') end assert retval assert_equal 'bar', @cache.read('foo') end def test_clear_also_clears_local_cache @cache.with_local_cache do @cache.write('foo', 'bar') @cache.clear assert_nil @cache.read('foo') end assert_nil @cache.read('foo') end def test_local_cache_of_write @cache.with_local_cache do @cache.write('foo', 'bar') @peek.delete('foo') assert_equal 'bar', @cache.read('foo') end end def test_local_cache_of_read @cache.write('foo', 'bar') @cache.with_local_cache do assert_equal 'bar', @cache.read('foo') end end def test_local_cache_of_write_nil @cache.with_local_cache do assert @cache.write('foo', nil) assert_nil @cache.read('foo') @peek.write('foo', 'bar') assert_nil @cache.read('foo') end end def test_local_cache_of_delete @cache.with_local_cache do @cache.write('foo', 'bar') @cache.delete('foo') assert_nil @cache.read('foo') end end def test_local_cache_of_exist @cache.with_local_cache do @cache.write('foo', 'bar') @peek.delete('foo') assert @cache.exist?('foo') end end def test_local_cache_of_increment @cache.with_local_cache do @cache.write('foo', 1, :raw => true) @peek.write('foo', 2, :raw => true) @cache.increment('foo') assert_equal 3, @cache.read('foo') end end def test_local_cache_of_decrement @cache.with_local_cache do @cache.write('foo', 1, :raw => true) @peek.write('foo', 3, :raw => true) @cache.decrement('foo') assert_equal 2, @cache.read('foo') end 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 [200, {}, []] } app = @cache.middleware.new(app) app.call({}) end end