mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 d85bf93776
			
		
	
	
		d85bf93776
		
	
	
	
	
		
			
			git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			786 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			786 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require_relative 'helper'
 | |
| 
 | |
| module Psych
 | |
|   class Tagged
 | |
|     yaml_tag '!foo'
 | |
| 
 | |
|     attr_accessor :baz
 | |
| 
 | |
|     def initialize
 | |
|       @baz = 'bar'
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   class Foo
 | |
|     attr_accessor :parent
 | |
| 
 | |
|     def initialize parent
 | |
|       @parent = parent
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   class TestObject < TestCase
 | |
|     def test_dump_with_tag
 | |
|       tag = Tagged.new
 | |
|       assert_match('foo', Psych.dump(tag))
 | |
|     end
 | |
| 
 | |
|     def test_tag_round_trip
 | |
|       tag   = Tagged.new
 | |
|       tag2  = Psych.load(Psych.dump(tag))
 | |
|       assert_equal tag.baz, tag2.baz
 | |
|       assert_instance_of(Tagged, tag2)
 | |
|     end
 | |
| 
 | |
|     def test_cyclic_references
 | |
|       foo = Foo.new(nil)
 | |
|       foo.parent = foo
 | |
|       loaded = Psych.load Psych.dump foo
 | |
| 
 | |
|       assert_instance_of(Foo, loaded)
 | |
|       assert_equal loaded, loaded.parent
 | |
|     end
 | |
|   end
 | |
| end
 |