Bug #1219 » test_ostruct.patch
| test_ostruct-new.rb 2009-02-26 22:04:10.000000000 +0100 | ||
|---|---|---|
|
foo.bar.foo = foo
|
||
|
assert_equal('#<OpenStruct bar=#<OpenStruct foo=#<OpenStruct ...>>>', foo.inspect)
|
||
|
end
|
||
|
def test_frozen
|
||
|
o = OpenStruct::new :a => 42
|
||
|
o.freeze
|
||
|
assert_raise TypeError do
|
||
|
o.b = 1
|
||
|
end
|
||
|
assert_raise TypeError do
|
||
|
o.a = 1764
|
||
|
end
|
||
|
assert_equal 42, o.a
|
||
|
assert_equal nil, o.b
|
||
|
end
|
||
|
def test_really_frozen
|
||
|
o1 = OpenStruct::new :a => 42
|
||
|
o2 = o1.dup
|
||
|
class << o1; def frozen?; nil end end
|
||
|
o1.freeze
|
||
|
o2.b = 42
|
||
|
assert_equal 42, o2.b
|
||
|
assert_raise TypeError do
|
||
|
o1.b = 1
|
||
|
end
|
||
|
assert_raise TypeError do
|
||
|
o1.a = 1806
|
||
|
end
|
||
|
assert_equal 42, o1.a
|
||
|
OpenStruct.module_eval do def frozen?; nil end end
|
||
|
o2.freeze
|
||
|
assert_raise TypeError do
|
||
|
o2.b = 1
|
||
|
end
|
||
|
assert_equal 42, o2.b
|
||
|
end
|
||
|
end
|
||
- « Previous
- 1
- 2
- Next »