forked from jruby/jruby
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_object_1_9.rb
49 lines (39 loc) · 1.15 KB
/
test_object_1_9.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
require 'test/unit'
class TestObject19 < Test::Unit::TestCase
def test_tap
value = nil
1.tap { |v| value = v }
assert_equal 1, value
[].tap { |v| value = v }
assert_equal [], value
assert_equal 1, 1.tap { }
obj = Object.new
assert_equal obj, obj.tap { }
assert_equal "str", "str".tap { value = "foo" }
assert_equal "foo", value
assert_raises(LocalJumpError) do
"str".tap
end
end
# JRUBY-5141
def test_not_equal
o = Object.new
def o.==(rhs)
true # always true
end
assert_equal(true, (o == o)) # always true
assert_equal(true, (o == 1)) # always true
assert_equal(false, (o != o)) # always false
assert_equal(false, (o != 1)) # always false
end
def test_const_defined?
assert_equal(true, Object.const_defined?('Object', false))
assert_equal(false, Hash.const_defined?('Object', false))
assert_equal(true, Hash.const_defined?('Object', true))
end
def test_const_get
assert_equal(Object, Object.const_get('Object', false))
assert_raise(NameError) { Hash.const_get('Object', false) }
assert_equal(Object, Hash.const_get('Object', true))
end
end