diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/yarp/dispatcher_test.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/yarp/dispatcher_test.rb b/test/yarp/dispatcher_test.rb new file mode 100644 index 0000000000..52be2ba32f --- /dev/null +++ b/test/yarp/dispatcher_test.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require_relative "test_helper" + +module YARP + class DispatcherTest < TestCase + def setup + @listener = Class.new do + attr_reader :events_received + + def initialize + @events_received = [] + end + + def call_node_enter(node) + @events_received << :call_node_enter + end + + def call_node_leave(node) + @events_received << :call_node_leave + end + end.new + end + + def test_dispatching_events + dispatcher = Dispatcher.new + dispatcher.register(@listener, :call_node_enter, :call_node_leave) + + root = YARP.parse(<<~RUBY).value + def foo + something(1, 2, 3) + end + RUBY + + dispatcher.dispatch(root) + + assert_equal([:call_node_enter, :call_node_leave], @listener.events_received) + end + end +end |
