summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/t/class.rb34
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