diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_array.rb | 12 | ||||
-rw-r--r-- | test/ruby/test_enum.rb | 18 |
2 files changed, 20 insertions, 10 deletions
diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index 526fcabb1b..b648c404ed 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -1467,12 +1467,18 @@ class TestArray < Test::Unit::TestCase end array = [ [:key, :value], - [:ignore_me], - [:ignore, :me, :too], - :ignore_me, kvp, ] assert_equal({key: :value, obtained: :via_to_ary}, array.to_h) + + e = assert_raise(TypeError) { + [[:first_one, :ok], :not_ok].to_h + } + assert_equal "wrong element type Symbol at 1 (expected array)", e.message + e = assert_raise(ArgumentError) { + [[:first_one, :ok], [1, 2], [:not_ok]].to_h + } + assert_equal "wrong array length at 2 (expected 2, was 1)", e.message end def test_uniq diff --git a/test/ruby/test_enum.rb b/test/ruby/test_enum.rb index b86ae274d1..3ee6846b33 100644 --- a/test/ruby/test_enum.rb +++ b/test/ruby/test_enum.rb @@ -104,17 +104,11 @@ class TestEnumerable < Test::Unit::TestCase end def test_to_h - assert_equal({}, @obj.to_h) obj = Object.new def obj.each(*args) - yield args + yield *args yield [:key, :value] - yield [:ignore_me] - yield [:ignore, :me, :too] yield :other_key, :other_value - yield :ignore_me - yield :ignore, :me, :too - yield kvp = Object.new def kvp.to_ary [:obtained, :via_to_ary] @@ -128,6 +122,16 @@ class TestEnumerable < Test::Unit::TestCase :other_key => :other_value, :obtained => :via_to_ary, }, obj.to_h(:hello, :world)) + + e = assert_raise(TypeError) { + obj.to_h(:not_an_array) + } + assert_equal "wrong element type Symbol (expected array)", e.message + + e = assert_raise(ArgumentError) { + obj.to_h([1]) + } + assert_equal "element has wrong array length (expected 2, was 1)", e.message end def test_inject |