aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/notifications
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-03-23 11:47:27 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2012-03-23 11:47:42 -0700
commitea482d366addd86ea3a5255e6e764733b9a17fa8 (patch)
tree7a84f6851b0adb3ebea8de0cc50094e77e6d6951 /activesupport/test/notifications
parent7422f44364f9cade4002fae2df4bb40da945202d (diff)
downloadrails-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.rb67
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