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/test_engine_manager.rb
naruse e29d58970b Use ::Syck explicitly.
lib/rubygems/requirement.rb defines YAML::Syck.
So explicitly specify the top level one.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-27 05:21:33 +00:00

57 lines
1.2 KiB
Ruby

require 'psych/helper'
require 'yaml'
module Psych
class TestEngineManager < TestCase
def teardown
YAML::ENGINE.yamler = 'syck'
end
def test_bad_engine
assert_raises(ArgumentError) do
YAML::ENGINE.yamler = 'foooo'
end
end
def test_set_psych
YAML::ENGINE.yamler = 'psych'
assert_equal Psych, YAML
assert_equal 'psych', YAML::ENGINE.yamler
end
def test_set_syck
YAML::ENGINE.yamler = 'syck'
assert_equal ::Syck, YAML
assert_equal 'syck', YAML::ENGINE.yamler
end
A = Struct.new(:name)
def test_dump_types
YAML::ENGINE.yamler = 'psych'
assert_to_yaml ::Object.new
assert_to_yaml Time.now
assert_to_yaml Date.today
assert_to_yaml('a' => 'b')
assert_to_yaml A.new('foo')
assert_to_yaml %w{a b}
assert_to_yaml Exception.new('foo')
assert_to_yaml "hello!"
assert_to_yaml :fooo
assert_to_yaml(1..10)
assert_to_yaml(/hello!~/)
assert_to_yaml 1
assert_to_yaml 1.2
assert_to_yaml Rational(1, 2)
assert_to_yaml Complex(1, 2)
assert_to_yaml true
assert_to_yaml false
assert_to_yaml nil
end
def assert_to_yaml obj
assert obj.to_yaml, "#{obj.class} to_yaml works"
end
end
end