diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-03-23 11:47:27 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-03-23 11:47:42 -0700 |
commit | ea482d366addd86ea3a5255e6e764733b9a17fa8 (patch) | |
tree | 7a84f6851b0adb3ebea8de0cc50094e77e6d6951 /activesupport/test/notifications | |
parent | 7422f44364f9cade4002fae2df4bb40da945202d (diff) | |
download | rails-ea482d366addd86ea3a5255e6e764733b9a17fa8.tar.gz rails-ea482d366addd86ea3a5255e6e764733b9a17fa8.tar.bz2 rails-ea482d366addd86ea3a5255e6e764733b9a17fa8.zip |
oops, forgot to commit the tests! :bomb:
Diffstat (limited to 'activesupport/test/notifications')
-rw-r--r-- | activesupport/test/notifications/evented_notification_test.rb | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/activesupport/test/notifications/evented_notification_test.rb b/activesupport/test/notifications/evented_notification_test.rb new file mode 100644 index 0000000000..f77a0eb3fa --- /dev/null +++ b/activesupport/test/notifications/evented_notification_test.rb @@ -0,0 +1,67 @@ +require 'abstract_unit' + +module ActiveSupport + module Notifications + class EventedTest < ActiveSupport::TestCase + class Listener + attr_reader :events + + def initialize + @events = [] + end + + def start(name, id, payload) + @events << [:start, name, id, payload] + end + + def finish(name, id, payload) + @events << [:finish, name, id, payload] + end + end + + def test_evented_listener + notifier = Fanout.new + listener = Listener.new + notifier.subscribe 'hi', listener + notifier.start 'hi', 1, {} + notifier.start 'hi', 2, {} + notifier.finish 'hi', 2, {} + notifier.finish 'hi', 1, {} + + assert_equal 4, listener.events.length + assert_equal [ + [:start, 'hi', 1, {}], + [:start, 'hi', 2, {}], + [:finish, 'hi', 2, {}], + [:finish, 'hi', 1, {}], + ], listener.events + end + + def test_evented_listener_no_events + notifier = Fanout.new + listener = Listener.new + notifier.subscribe 'hi', listener + notifier.start 'world', 1, {} + assert_equal 0, listener.events.length + end + + def test_listen_to_everything + notifier = Fanout.new + listener = Listener.new + notifier.subscribe nil, listener + notifier.start 'hello', 1, {} + notifier.start 'world', 1, {} + notifier.finish 'world', 1, {} + notifier.finish 'hello', 1, {} + + assert_equal 4, listener.events.length + assert_equal [ + [:start, 'hello', 1, {}], + [:start, 'world', 1, {}], + [:finish, 'world', 1, {}], + [:finish, 'hello', 1, {}], + ], listener.events + end + end + end +end |