aboutsummaryrefslogtreecommitdiffstats
path: root/test/psych
diff options
context:
space:
mode:
Diffstat (limited to 'test/psych')
-rw-r--r--test/psych/test_psych.rb37
-rw-r--r--test/psych/test_stream.rb16
2 files changed, 53 insertions, 0 deletions
diff --git a/test/psych/test_psych.rb b/test/psych/test_psych.rb
index 2812fd1bd8..8f9a10013d 100644
--- a/test/psych/test_psych.rb
+++ b/test/psych/test_psych.rb
@@ -144,12 +144,49 @@ class TestPsych < Psych::TestCase
}
end
+ def test_load_file_default_return_value
+ Tempfile.create(['empty', 'yml']) {|t|
+ assert_equal false, Psych.load_file(t.path)
+ }
+ end
+
def test_load_file_with_fallback
Tempfile.create(['empty', 'yml']) {|t|
+ assert_equal 42, Psych.load_file(t.path, fallback: 42)
+ }
+ end
+
+ def test_load_file_with_fallback_nil_or_false
+ Tempfile.create(['empty', 'yml']) {|t|
+ assert_nil Psych.load_file(t.path, fallback: nil)
+ assert_equal false, Psych.load_file(t.path, fallback: false)
+ }
+ end
+
+ def test_load_file_with_fallback_hash
+ Tempfile.create(['empty', 'yml']) {|t|
assert_equal Hash.new, Psych.load_file(t.path, fallback: Hash.new)
}
end
+ def test_load_file_with_fallback_for_nil
+ Tempfile.create(['nil', 'yml']) {|t|
+ t.binmode
+ t.write('--- null')
+ t.close
+ assert_nil Psych.load_file(t.path, fallback: 42)
+ }
+ end
+
+ def test_load_file_with_fallback_for_false
+ Tempfile.create(['false', 'yml']) {|t|
+ t.binmode
+ t.write('--- false')
+ t.close
+ assert_equal false, Psych.load_file(t.path, fallback: 42)
+ }
+ end
+
def test_parse_file
Tempfile.create(['yikes', 'yml']) {|t|
t.binmode
diff --git a/test/psych/test_stream.rb b/test/psych/test_stream.rb
index 3bd557cb68..9b71c6d996 100644
--- a/test/psych/test_stream.rb
+++ b/test/psych/test_stream.rb
@@ -3,6 +3,22 @@ require_relative 'helper'
module Psych
class TestStream < TestCase
+ [
+ [Psych::Nodes::Alias, :alias?],
+ [Psych::Nodes::Document, :document?],
+ [Psych::Nodes::Mapping, :mapping?],
+ [Psych::Nodes::Scalar, :scalar?],
+ [Psych::Nodes::Sequence, :sequence?],
+ [Psych::Nodes::Stream, :stream?],
+ ].each do |klass, block|
+ define_method :"test_predicate_#{block}" do
+ rb = Psych.parse_stream("---\n- foo: bar\n- &a !!str Anchored\n- *a")
+ nodes = rb.grep(klass)
+ assert_operator nodes.length, :>, 0
+ assert_equal nodes, rb.find_all(&block)
+ end
+ end
+
def test_parse_partial
rb = Psych.parse("--- foo\n...\n--- `").to_ruby
assert_equal 'foo', rb