diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-01-09 17:46:16 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-01-09 17:46:16 -0800 |
commit | d8a5a0a33345755bd5b60b4bb6dd535c2139d53b (patch) | |
tree | a2ef77701400f75f0a678e54816ab9db5ce8b7ea /test | |
parent | e41fa645ae0b1bdf105f6dda1c75ec0ecae86205 (diff) | |
download | psych-d8a5a0a33345755bd5b60b4bb6dd535c2139d53b.zip |
adding init api
Diffstat (limited to 'test')
-rw-r--r-- | test/psych/test_emitter.rb | 41 | ||||
-rw-r--r-- | test/psych/test_to_yaml_properties.rb | 25 |
2 files changed, 58 insertions, 8 deletions
diff --git a/test/psych/test_emitter.rb b/test/psych/test_emitter.rb index d617353..c296e6f 100644 --- a/test/psych/test_emitter.rb +++ b/test/psych/test_emitter.rb @@ -6,15 +6,40 @@ require 'stringio' module Psych class TestEmitter < MiniTest::Unit::TestCase + def setup + @out = StringIO.new + @emitter = Psych::Emitter.new @out + end + def test_emit_utf_8 - out = StringIO.new - emitter = Psych::Emitter.new out - emitter.start_stream Psych::Nodes::Stream::UTF8 - emitter.start_document [], [], false - emitter.scalar '日本語', nil, nil, false, true, 1 - emitter.end_document true - emitter.end_stream - assert_match('日本語', out.string) + @emitter.start_stream Psych::Nodes::Stream::UTF8 + @emitter.start_document [], [], false + @emitter.scalar '日本語', nil, nil, false, true, 1 + @emitter.end_document true + @emitter.end_stream + assert_match('日本語', @out.string) + end + + def test_start_stream_arg_error + assert_raises(TypeError) do + @emitter.start_stream 'asdfasdf' + end + end + + def test_start_doc_arg_error + @emitter.start_stream Psych::Nodes::Stream::UTF8 + + [ + [nil, [], false], + [[nil, nil], [], false], + [[], 'foo', false], + [[], ['foo'], false], + [[], [nil,nil], false], + ].each do |args| + assert_raises(TypeError) do + @emitter.start_document *args + end + end end end end diff --git a/test/psych/test_to_yaml_properties.rb b/test/psych/test_to_yaml_properties.rb index ff35fcd..358c7f1 100644 --- a/test/psych/test_to_yaml_properties.rb +++ b/test/psych/test_to_yaml_properties.rb @@ -16,6 +16,31 @@ module Psych end end + class InitApi < Foo + def init_with coder + @a = coder['aa'] + @b = coder['bb'] + end + + def encode_with coder + coder['aa'] = @a + coder['bb'] = @b + end + end + + def test_dump_encode_with + foo = InitApi.new + assert_match(/aa/, Psych.dump(foo)) + end + + def test_dump_init_with + foo = InitApi.new + bar = Psych.load(Psych.dump(foo)) + assert_equal foo.a, bar.a + assert_equal foo.b, bar.b + assert_nil bar.c + end + def test_object_dump_yaml_properties foo = Psych.load(Psych.dump(Foo.new)) assert_equal 1, foo.a |