aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_integer.rb
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2018-10-07 13:02:46 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-07-16 17:49:53 +0900
commit301d194ee3b49e6b078eccb999dd538e9bfa8c7c (patch)
tree8488af78fa5c0f0dab79905a577e365acef7ca01 /test/ruby/test_integer.rb
parenteee709595cecdbc35d7bca9e779c36523c4659c5 (diff)
downloadruby-301d194ee3b49e6b078eccb999dd538e9bfa8c7c.tar.gz
Add Integer.try_convert [Feature #15211]
Diffstat (limited to 'test/ruby/test_integer.rb')
-rw-r--r--test/ruby/test_integer.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/ruby/test_integer.rb b/test/ruby/test_integer.rb
index 2755987276..1cd256a1cf 100644
--- a/test/ruby/test_integer.rb
+++ b/test/ruby/test_integer.rb
@@ -660,4 +660,21 @@ class TestInteger < Test::Unit::TestCase
def o.fdiv(x); 1; end
assert_equal(1.0, 1.fdiv(o))
end
+
+ def test_try_convert
+ assert_equal(1, Integer.try_convert(1))
+ assert_equal(1, Integer.try_convert(1.0))
+ assert_nil Integer.try_convert("1")
+ o = Object.new
+ assert_nil Integer.try_convert(o)
+ def o.to_i; 1; end
+ assert_nil Integer.try_convert(o)
+ o = Object.new
+ def o.to_int; 1; end
+ assert_equal(1, Integer.try_convert(o))
+
+ o = Object.new
+ def o.to_int; Object.new; end
+ assert_raise_with_message(TypeError, /can't convert Object to Integer/) {Integer.try_convert(o)}
+ end
end