diff options
author | Kasper Timm Hansen <kaspth@gmail.com> | 2015-12-19 08:00:20 +0100 |
---|---|---|
committer | Kasper Timm Hansen <kaspth@gmail.com> | 2015-12-19 08:00:20 +0100 |
commit | 5b922d2a36a81c1b07818db1b5bbb2e2fc9931a7 (patch) | |
tree | 2f5577f835818ffd68d2ea25fa3b31178ba5cbb3 /activesupport/test | |
parent | fb77aa33f79bbabcc9fbe4981e9828cc40aa2805 (diff) | |
parent | d27d6c84fd1ca3e38eb40fe3a08e7a9219941aa5 (diff) | |
download | rails-5b922d2a36a81c1b07818db1b5bbb2e2fc9931a7.tar.gz rails-5b922d2a36a81c1b07818db1b5bbb2e2fc9931a7.tar.bz2 rails-5b922d2a36a81c1b07818db1b5bbb2e2fc9931a7.zip |
Merge pull request #22479 from RobinClowers/fix-cache-notification-order
Fix cache fetch miss notification order
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/caching_test.rb | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index 7bef73136c..465b943173 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -493,28 +493,32 @@ module CacheStoreBehavior def test_cache_hit_instrumentation key = "test_key" - subscribe_executed = false - ActiveSupport::Notifications.subscribe "cache_read.active_support" do |name, start, finish, id, payload| - subscribe_executed = true - assert_equal :fetch, payload[:super_operation] - assert payload[:hit] + @events = [] + ActiveSupport::Notifications.subscribe "cache_read.active_support" do |*args| + @events << ActiveSupport::Notifications::Event.new(*args) end assert @cache.write(key, "1", :raw => true) assert @cache.fetch(key) {} - assert subscribe_executed + assert_equal 1, @events.length + assert_equal 'cache_read.active_support', @events[0].name + assert_equal :fetch, @events[0].payload[:super_operation] + assert @events[0].payload[:hit] ensure ActiveSupport::Notifications.unsubscribe "cache_read.active_support" end def test_cache_miss_instrumentation - subscribe_executed = false - ActiveSupport::Notifications.subscribe "cache_read.active_support" do |name, start, finish, id, payload| - subscribe_executed = true - assert_equal :fetch, payload[:super_operation] - assert_not payload[:hit] + @events = [] + ActiveSupport::Notifications.subscribe /^cache_(.*)\.active_support$/ do |*args| + @events << ActiveSupport::Notifications::Event.new(*args) end assert_not @cache.fetch("bad_key") {} - assert subscribe_executed + assert_equal 3, @events.length + assert_equal 'cache_read.active_support', @events[0].name + assert_equal 'cache_generate.active_support', @events[1].name + assert_equal 'cache_write.active_support', @events[2].name + assert_equal :fetch, @events[0].payload[:super_operation] + assert_not @events[0].payload[:hit] ensure ActiveSupport::Notifications.unsubscribe "cache_read.active_support" end |