1 # frozen_string_literal: true
2 require_relative 'helper'
4 class ObjectWithInstanceVariables
5 attr_accessor :var1, :var2
8 class SubStringWithInstanceVariables < String
13 class TestAliasAndAnchor < TestCase
14 def test_mri_compatibility
17 - &id001 !ruby/object {}
22 result = Psych.unsafe_load yaml
23 result.each {|el| assert_same(result[0], el) }
26 def test_mri_compatibility_object_with_ivars
29 - &id001 !ruby/object:ObjectWithInstanceVariables
36 result = Psych.unsafe_load yaml
38 assert_same(result[0], el)
39 assert_equal('test1', el.var1)
40 assert_equal('test2', el.var2)
44 def test_mri_compatibility_substring_with_ivars
47 - &id001 !str:SubStringWithInstanceVariables
53 result = Psych.unsafe_load yaml
55 assert_same(result[0], el)
56 assert_equal('test', el.var1)
60 def test_anchor_alias_round_trip
64 yaml = Psych.dump original
65 result = Psych.unsafe_load yaml
66 result.each {|el| assert_same(result[0], el) }
69 def test_anchor_alias_round_trip_object_with_ivars
70 o = ObjectWithInstanceVariables.new
75 yaml = Psych.dump original
76 result = Psych.unsafe_load yaml
78 assert_same(result[0], el)
79 assert_equal('test1', el.var1)
80 assert_equal('test2', el.var2)
84 def test_anchor_alias_round_trip_substring_with_ivars
85 o = SubStringWithInstanceVariables.new
89 yaml = Psych.dump original
90 result = Psych.unsafe_load yaml
92 assert_same(result[0], el)
93 assert_equal('test', el.var1)