summaryrefslogtreecommitdiffhomepage
path: root/test/t/class.rb
diff options
context:
space:
mode:
authorCarson McDonald <[email protected]>2013-12-27 18:32:11 -0500
committerCarson McDonald <[email protected]>2013-12-27 18:32:11 -0500
commit9f212b9e819b25e666125d07583fb27b599cf150 (patch)
tree3c0692730530fda9de53fccd9d0cf94a2dd8f5aa /test/t/class.rb
parent14bff248c37fd54d0b4afc0f58e12cbc67978f8e (diff)
downloadmruby-9f212b9e819b25e666125d07583fb27b599cf150.tar.gz
mruby-9f212b9e819b25e666125d07583fb27b599cf150.zip
More singleton tests
Diffstat (limited to 'test/t/class.rb')
-rw-r--r--test/t/class.rb50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/t/class.rb b/test/t/class.rb
index 680cd253c..74616e9c8 100644
--- a/test/t/class.rb
+++ b/test/t/class.rb
@@ -260,25 +260,40 @@ assert('Class#inherited') do
end
assert('singleton tests') do
+ module FooMod
+ def run_foo_mod
+ 100
+ end
+ end
+
bar = String.new
baz = class << bar
+ extend FooMod
def self.run_baz
200
end
end
+ assert_false baz.singleton_methods.include? :run_foo_mod
assert_false baz.singleton_methods.include? :run_baz
assert_raise(NoMethodError, 'should raise NoMethodError') do
+ baz.run_foo_mod
+ end
+ assert_raise(NoMethodError, 'should raise NoMethodError') do
baz.run_baz
end
assert_raise(NoMethodError, 'should raise NoMethodError') do
+ bar.run_foo_mod
+ end
+ assert_raise(NoMethodError, 'should raise NoMethodError') do
bar.run_baz
end
baz = class << bar
+ extend FooMod
def self.run_baz
300
end
@@ -286,9 +301,44 @@ assert('singleton tests') do
end
assert_true baz.singleton_methods.include? :run_baz
+ assert_true baz.singleton_methods.include? :run_foo_mod
+ assert_equal 100, baz.run_foo_mod
assert_equal 300, baz.run_baz
assert_raise(NoMethodError, 'should raise NoMethodError') do
+ bar.run_foo_mod
+ end
+ assert_raise(NoMethodError, 'should raise NoMethodError') do
bar.run_baz
end
+
+ fv = false
+ class << fv
+ def self.run_false
+ 5
+ end
+ end
+
+ nv = nil
+ class << nv
+ def self.run_nil
+ 6
+ end
+ end
+
+ tv = true
+ class << tv
+ def self.run_nil
+ 7
+ end
+ end
+
+ assert_raise(TypeError, 'should raise TypeError') do
+ num = 1.0
+ class << num
+ def self.run_nil
+ 7
+ end
+ end
+ end
end