summaryrefslogtreecommitdiff
path: root/jni/ruby/test/psych/test_object_references.rb
diff options
context:
space:
mode:
authorJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-16 18:49:26 +0900
committerJari Vetoniemi <jari.vetoniemi@indooratlas.com>2020-03-30 00:39:06 +0900
commitfcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch)
tree64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/test/psych/test_object_references.rb
Fresh start
Diffstat (limited to 'jni/ruby/test/psych/test_object_references.rb')
-rw-r--r--jni/ruby/test/psych/test_object_references.rb71
1 files changed, 71 insertions, 0 deletions
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