summaryrefslogtreecommitdiff
path: root/test/psych
diff options
context:
space:
mode:
authortenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-03 21:50:47 +0000
committertenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-03 21:50:47 +0000
commiteb71e5cd67f4ce4da5ba331f93a8e36c65457b94 (patch)
tree1df66113ae7340e2b928839b3f09dbf8dcfb3d73 /test/psych
parentca926ad017a804817b9a2e5389196f9acf9d9b68 (diff)
* lib/yaml: Moved to ext/syck/lib, Syck only uses Syck constant.
* lib/yaml.rb: Added an engine manager for choosing YAML engine. * ext/syck/lib/syck/rubytypes.rb: squashed warnings when using Psych git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/psych')
-rw-r--r--test/psych/test_engine_manager.rb57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/psych/test_engine_manager.rb b/test/psych/test_engine_manager.rb
new file mode 100644
index 0000000000..8bd7d6c1da
--- /dev/null
+++ b/test/psych/test_engine_manager.rb
@@ -0,0 +1,57 @@
+require_relative '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