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 »