mirror of https://github.com/rails/rails
oops, forgot to commit the tests! 💣
This commit is contained in:
parent
7422f44364
commit
ea482d366a
|
@ -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
|
Loading…
Reference in New Issue