summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-01-09 17:46:16 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2010-01-09 17:46:16 -0800
commitd8a5a0a33345755bd5b60b4bb6dd535c2139d53b (patch)
treea2ef77701400f75f0a678e54816ab9db5ce8b7ea /test
parente41fa645ae0b1bdf105f6dda1c75ec0ecae86205 (diff)
downloadpsych-d8a5a0a33345755bd5b60b4bb6dd535c2139d53b.zip
adding init api
Diffstat (limited to 'test')
-rw-r--r--test/psych/test_emitter.rb41
-rw-r--r--test/psych/test_to_yaml_properties.rb25
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