diff options
Diffstat (limited to 'test/test_delegate.rb')
-rw-r--r-- | test/test_delegate.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/test_delegate.rb b/test/test_delegate.rb index 38e38ad781..9634681797 100644 --- a/test/test_delegate.rb +++ b/test/test_delegate.rb @@ -177,6 +177,25 @@ class TestDelegateClass < Test::Unit::TestCase assert_not_operator(s0, :eql?, "bar") end + def test_keyword_and_hash + foo = Object.new + def foo.bar(*args) + args + end + def foo.foo(*args, **kw) + [args, kw] + end + d = SimpleDelegator.new(foo) + assert_equal([[], {}], d.foo) + assert_equal([], d.bar) + assert_equal([[], {:a=>1}], d.foo(:a=>1)) + assert_equal([{:a=>1}], d.bar(:a=>1)) + assert_warn(/The last argument is used as the keyword parameter.* for `foo'/m) do + assert_equal([[], {:a=>1}], d.foo({:a=>1})) + end + assert_equal([{:a=>1}], d.bar({:a=>1})) + end + class Foo private def delegate_test_private |