1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/psych/test_array.rb
hsbt 0b396d5880 Merge psych-3.0.0.beta3 from ruby/psych.
* Rely on encoding tags to determine if string should be dumped as binary.
    8949a47b8c
  * Specify "frozen_string_literal: true".
  * Support to binary release for mingw32 platform.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-07-14 06:15:58 +00:00

64 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require_relative 'helper'
module Psych
class TestArray < TestCase
class X < Array
end
class Y < Array
attr_accessor :val
end
def setup
super
@list = [{ :a => 'b' }, 'foo']
end
def test_enumerator
x = [1, 2, 3, 4]
y = Psych.load Psych.dump x.to_enum
assert_equal x, y
end
def test_another_subclass_with_attributes
y = Y.new.tap {|o| o.val = 1}
y << "foo" << "bar"
y = Psych.load Psych.dump y
assert_equal %w{foo bar}, y
assert_equal Y, y.class
assert_equal 1, y.val
end
def test_subclass
yaml = Psych.dump X.new
assert_match X.name, yaml
list = X.new
list << 1
assert_equal X, list.class
assert_equal 1, list.first
end
def test_subclass_with_attributes
y = Psych.load Psych.dump Y.new.tap {|o| o.val = 1}
assert_equal Y, y.class
assert_equal 1, y.val
end
def test_backwards_with_syck
x = Psych.load "--- !seq:#{X.name} []\n\n"
assert_equal X, x.class
end
def test_self_referential
@list << @list
assert_cycle(@list)
end
def test_cycle
assert_cycle(@list)
end
end
end