summaryrefslogtreecommitdiff
path: root/test/ruby/test_enum.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_enum.rb')
-rw-r--r--test/ruby/test_enum.rb18
1 files changed, 11 insertions, 7 deletions
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