From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/ruby/test/psych/test_object_references.rb | 71 +++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 jni/ruby/test/psych/test_object_references.rb (limited to 'jni/ruby/test/psych/test_object_references.rb') diff --git a/jni/ruby/test/psych/test_object_references.rb b/jni/ruby/test/psych/test_object_references.rb new file mode 100644 index 0000000..273b466 --- /dev/null +++ b/jni/ruby/test/psych/test_object_references.rb @@ -0,0 +1,71 @@ +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 test_struct_has_references + assert_reference_trip Struct.new(:foo).new(1) + 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 -- cgit v1.2.3