summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlexander Momchilov <alexander.momchilov@shopify.com>2022-07-27 10:19:37 -0400
committerAlexander Momchilov <alexander.momchilov@shopify.com>2022-07-27 15:23:33 -0400
commitb9ab19094f1534c38b724a2ef76c30eb9cf5262f (patch)
treeb4f34cb8cf1ebf59c6c513a84e5bb1eefab4dd5a /test
parentd9f7289190d424981555dec9f2c019f6a270f205 (diff)
downloadpsych-b9ab19094f1534c38b724a2ef76c30eb9cf5262f.tar.gz
Don't hardcode expected alias names
Diffstat (limited to 'test')
-rw-r--r--test/psych/test_array.rb19
-rw-r--r--test/psych/test_hash.rb18
-rw-r--r--test/psych/test_object.rb13
3 files changed, 28 insertions, 22 deletions
diff --git a/test/psych/test_array.rb b/test/psych/test_array.rb
index a6be0ba..6a9931a 100644
--- a/test/psych/test_array.rb
+++ b/test/psych/test_array.rb
@@ -57,17 +57,20 @@ module Psych
assert_cycle(@list)
end
- def test_recursive_array_uses_alias
+ def test_recursive_array
@list << @list
- expected = <<~eoyaml
- --- &1
- - :a: b
- - foo
- - *1
- eoyaml
+ loaded = Psych.load(Psych.dump(@list), aliases: true)
+
+ assert_same loaded, loaded.last
+ end
+
+ def test_recursive_array_uses_alias
+ @list << @list
- assert_equal expected, Psych.dump(@list)
+ assert_raise(BadAlias) do
+ Psych.load(Psych.dump(@list), aliases: false)
+ end
end
def test_cycle
diff --git a/test/psych/test_hash.rb b/test/psych/test_hash.rb
index 43e4b8b..0555f6e 100644
--- a/test/psych/test_hash.rb
+++ b/test/psych/test_hash.rb
@@ -112,16 +112,22 @@ eoyml
assert_equal({"foo"=>{"hello"=>"world"}, "bar"=>{"hello"=>"world"}}, hash)
end
- def test_recursive_hash_uses_alias
+ def test_recursive_hash
h = { }
h["recursive_reference"] = h
- expected = <<~eoyaml
- --- &1
- recursive_reference: *1
- eoyaml
+ loaded = Psych.load(Psych.dump(h), aliases: true)
+
+ assert_same loaded, loaded.fetch("recursive_reference")
+ end
+
+ def test_recursive_hash_uses_alias
+ h = { }
+ h["recursive_reference"] = h
- assert_equal(expected, Psych.dump(h))
+ assert_raise(BadAlias) do
+ Psych.load(Psych.dump(h), aliases: false)
+ end
end
def test_key_deduplication
diff --git a/test/psych/test_object.rb b/test/psych/test_object.rb
index 648a3ca..227a1d1 100644
--- a/test/psych/test_object.rb
+++ b/test/psych/test_object.rb
@@ -36,22 +36,19 @@ module Psych
def test_cyclic_references
foo = Foo.new(nil)
foo.parent = foo
- loaded = Psych.unsafe_load Psych.dump foo
+ loaded = Psych.load(Psych.dump(foo), permitted_classes: [Foo], aliases: true)
assert_instance_of(Foo, loaded)
- assert_equal loaded, loaded.parent
+ assert_same loaded, loaded.parent
end
def test_cyclic_reference_uses_alias
foo = Foo.new(nil)
foo.parent = foo
- expected = <<~eoyaml
- --- &1 !ruby/object:Psych::Foo
- parent: *1
- eoyaml
-
- assert_equal expected, Psych.dump(foo)
+ assert_raise(BadAlias) do
+ Psych.load(Psych.dump(foo), permitted_classes: [Foo], aliases: false)
+ end
end
end
end