Commit 9f212b9e authored by Carson McDonald's avatar Carson McDonald

More singleton tests

parent 14bff248
...@@ -260,25 +260,40 @@ assert('Class#inherited') do ...@@ -260,25 +260,40 @@ assert('Class#inherited') do
end end
assert('singleton tests') do assert('singleton tests') do
module FooMod
def run_foo_mod
100
end
end
bar = String.new bar = String.new
baz = class << bar baz = class << bar
extend FooMod
def self.run_baz def self.run_baz
200 200
end end
end end
assert_false baz.singleton_methods.include? :run_foo_mod
assert_false baz.singleton_methods.include? :run_baz 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 assert_raise(NoMethodError, 'should raise NoMethodError') do
baz.run_baz baz.run_baz
end end
assert_raise(NoMethodError, 'should raise NoMethodError') do
bar.run_foo_mod
end
assert_raise(NoMethodError, 'should raise NoMethodError') do assert_raise(NoMethodError, 'should raise NoMethodError') do
bar.run_baz bar.run_baz
end end
baz = class << bar baz = class << bar
extend FooMod
def self.run_baz def self.run_baz
300 300
end end
...@@ -286,9 +301,44 @@ assert('singleton tests') do ...@@ -286,9 +301,44 @@ assert('singleton tests') do
end end
assert_true baz.singleton_methods.include? :run_baz 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_equal 300, baz.run_baz
assert_raise(NoMethodError, 'should raise NoMethodError') do
bar.run_foo_mod
end
assert_raise(NoMethodError, 'should raise NoMethodError') do assert_raise(NoMethodError, 'should raise NoMethodError') do
bar.run_baz bar.run_baz
end 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 end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment