diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-06-10 16:01:25 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-06-10 16:01:25 +0000 |
commit | f141c01b005e8d2965c7abb8a2c87226bad89ec3 (patch) | |
tree | 5c16f5556eefb714902d887ed008f1a908d6b023 /test | |
parent | 745705e3630256e23081ccc66613d6fb43971692 (diff) | |
download | ruby-f141c01b005e8d2965c7abb8a2c87226bad89ec3.tar.gz |
test_forwardable.rb: operators
* test/test_forwardable.rb: add tests for operators.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/test_forwardable.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/test_forwardable.rb b/test/test_forwardable.rb index f678ca4fc7..b948fddac0 100644 --- a/test/test_forwardable.rb +++ b/test/test_forwardable.rb @@ -253,6 +253,35 @@ class TestForwardable < Test::Unit::TestCase } end + def test_aref + obj = Object.new.extend SingleForwardable + obj.instance_variable_set("@h", {foo: 42}) + obj.def_delegator("@h", :[]) + assert_equal(42, obj[:foo]) + end + + def test_aset + obj = Object.new.extend SingleForwardable + obj.instance_variable_set("@h", h = {foo: 0}) + obj.def_delegator("@h", :[]=) + obj[:foo] = 42 + assert_equal(42, h[:foo]) + end + + def test_binop + obj = Object.new.extend SingleForwardable + obj.instance_variable_set("@h", 40) + obj.def_delegator("@h", :+) + assert_equal(42, obj+2) + end + + def test_uniop + obj = Object.new.extend SingleForwardable + obj.instance_variable_set("@h", -42) + obj.def_delegator("@h", :-@) + assert_equal(42, -obj) + end + private def forwardable_class( |