aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2015-12-19 08:00:20 +0100
committerKasper Timm Hansen <kaspth@gmail.com>2015-12-19 08:00:20 +0100
commit5b922d2a36a81c1b07818db1b5bbb2e2fc9931a7 (patch)
tree2f5577f835818ffd68d2ea25fa3b31178ba5cbb3 /activesupport/test
parentfb77aa33f79bbabcc9fbe4981e9828cc40aa2805 (diff)
parentd27d6c84fd1ca3e38eb40fe3a08e7a9219941aa5 (diff)
downloadrails-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.rb28
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