mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require_relative 'helper'
 | 
						|
 | 
						|
module Psych
 | 
						|
  class TestObjectReferences < TestCase
 | 
						|
    def test_range_has_references
 | 
						|
      assert_reference_trip 1..2
 | 
						|
    end
 | 
						|
 | 
						|
    def test_module_has_references
 | 
						|
      assert_reference_trip Psych
 | 
						|
    end
 | 
						|
 | 
						|
    def test_class_has_references
 | 
						|
      assert_reference_trip TestObjectReferences
 | 
						|
    end
 | 
						|
 | 
						|
    def test_rational_has_references
 | 
						|
      assert_reference_trip Rational('1.2')
 | 
						|
    end
 | 
						|
 | 
						|
    def test_complex_has_references
 | 
						|
      assert_reference_trip Complex(1, 2)
 | 
						|
    end
 | 
						|
 | 
						|
    def test_datetime_has_references
 | 
						|
      assert_reference_trip DateTime.now
 | 
						|
    end
 | 
						|
 | 
						|
    def assert_reference_trip obj
 | 
						|
      yml = Psych.dump([obj, obj])
 | 
						|
      assert_match(/\*-?\d+/, yml)
 | 
						|
      data = Psych.load yml
 | 
						|
      assert_equal data.first.object_id, data.last.object_id
 | 
						|
    end
 | 
						|
 | 
						|
    def test_float_references
 | 
						|
      data = Psych.load <<-eoyml
 | 
						|
---\s
 | 
						|
- &name 1.2
 | 
						|
- *name
 | 
						|
      eoyml
 | 
						|
      assert_equal data.first, data.last
 | 
						|
      assert_equal data.first.object_id, data.last.object_id
 | 
						|
    end
 | 
						|
 | 
						|
    def test_binary_references
 | 
						|
      data = Psych.load <<-eoyml
 | 
						|
---
 | 
						|
- &name !binary |-
 | 
						|
  aGVsbG8gd29ybGQh
 | 
						|
- *name
 | 
						|
      eoyml
 | 
						|
      assert_equal data.first, data.last
 | 
						|
      assert_equal data.first.object_id, data.last.object_id
 | 
						|
    end
 | 
						|
 | 
						|
    def test_regexp_references
 | 
						|
      data = Psych.load <<-eoyml
 | 
						|
---\s
 | 
						|
- &name !ruby/regexp /pattern/i
 | 
						|
- *name
 | 
						|
      eoyml
 | 
						|
      assert_equal data.first, data.last
 | 
						|
      assert_equal data.first.object_id, data.last.object_id
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |