From f141c01b005e8d2965c7abb8a2c87226bad89ec3 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 10 Jun 2016 16:01:25 +0000 Subject: 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 --- test/test_forwardable.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'test/test_forwardable.rb') 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( -- cgit v1.2.3