1require 'psych/helper' 2 3module Psych 4 class TestSet < TestCase 5 def setup 6 super 7 @set = Psych::Set.new 8 @set['foo'] = 'bar' 9 @set['bar'] = 'baz' 10 end 11 12 def test_dump 13 assert_match(/!set/, Psych.dump(@set)) 14 end 15 16 def test_roundtrip 17 assert_cycle(@set) 18 end 19 20 ### 21 # FIXME: Syck should also support !!set as shorthand 22 def test_load_from_yaml 23 loaded = Psych.load(<<-eoyml) 24--- !set 25foo: bar 26bar: baz 27 eoyml 28 assert_equal(@set, loaded) 29 end 30 31 def test_loaded_class 32 assert_instance_of(Psych::Set, Psych.load(Psych.dump(@set))) 33 end 34 35 def test_set_shorthand 36 loaded = Psych.load(<<-eoyml) 37--- !!set 38foo: bar 39bar: baz 40 eoyml 41 assert_instance_of(Psych::Set, loaded) 42 end 43 44 def test_set_self_reference 45 @set['self'] = @set 46 assert_cycle(@set) 47 end 48 end 49end 50