summaryrefslogtreecommitdiff
path: root/test/test_delegate.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_delegate.rb')
-rw-r--r--test/test_delegate.rb19
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