diff options
| -rw-r--r-- | test/t/class.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/t/class.rb b/test/t/class.rb index d6c0f1c9a..680cd253c 100644 --- a/test/t/class.rb +++ b/test/t/class.rb @@ -258,3 +258,37 @@ assert('Class#inherited') do assert_equal(Baz, Foo.subclass_name) end + +assert('singleton tests') do + bar = String.new + + baz = class << bar + def self.run_baz + 200 + end + end + + assert_false baz.singleton_methods.include? :run_baz + + assert_raise(NoMethodError, 'should raise NoMethodError') do + baz.run_baz + end + + assert_raise(NoMethodError, 'should raise NoMethodError') do + bar.run_baz + end + + baz = class << bar + def self.run_baz + 300 + end + self + end + + assert_true baz.singleton_methods.include? :run_baz + assert_equal 300, baz.run_baz + + assert_raise(NoMethodError, 'should raise NoMethodError') do + bar.run_baz + end +end |
