summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorCarson McDonald <[email protected]>2013-12-25 12:16:53 -0500
committerCarson McDonald <[email protected]>2013-12-25 12:16:53 -0500
commit66747603d508bd4b07290c4899bed1382a883f5b (patch)
treef5f827dc7b86aedca2fb5220a3459c23560995c6 /test
parentc70e2f70998c9c078265c6800b630a20388e0251 (diff)
downloadmruby-66747603d508bd4b07290c4899bed1382a883f5b.tar.gz
mruby-66747603d508bd4b07290c4899bed1382a883f5b.zip
Add more testing for singletons
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