1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/psych/handlers/test_recorder.rb
tenderlove 0f9307914b * ext/psych/lib/psych/handlers/recorder.rb: added a class for
recording YAML parse and emit events.

* ext/psych/lib/psych/handler.rb: adding a list of events so that
  handler classes can more easily be meta-programmed.

* test/psych/handlers/test_recorder.rb: tests for the change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-10-29 01:23:54 +00:00

25 lines
579 B
Ruby

require 'psych/helper'
require 'psych/handlers/recorder'
module Psych
module Handlers
class TestRecorder < TestCase
def test_replay
yaml = "--- foo\n...\n"
output = StringIO.new
recorder = Psych::Handlers::Recorder.new
parser = Psych::Parser.new recorder
parser.parse yaml
assert_equal 5, recorder.events.length
emitter = Psych::Emitter.new output
recorder.events.each do |m, args|
emitter.send m, *args
end
assert_equal yaml, output.string
end
end
end
end