diff options
Diffstat (limited to 'spec/rubyspec/core/kernel/throw_spec.rb')
-rw-r--r-- | spec/rubyspec/core/kernel/throw_spec.rb | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/spec/rubyspec/core/kernel/throw_spec.rb b/spec/rubyspec/core/kernel/throw_spec.rb deleted file mode 100644 index 3f8d272d6d..0000000000 --- a/spec/rubyspec/core/kernel/throw_spec.rb +++ /dev/null @@ -1,80 +0,0 @@ -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes', __FILE__) - -describe "Kernel.throw" do - it "transfers control to the end of the active catch block waiting for symbol" do - catch(:blah) do - :value - throw :blah - fail("throw didn't transfer the control") - end.should be_nil - end - - it "transfers control to the innermost catch block waiting for the same sympol" do - one = two = three = 0 - catch :duplicate do - catch :duplicate do - catch :duplicate do - one = 1 - throw :duplicate - end - two = 2 - throw :duplicate - end - three = 3 - throw :duplicate - end - [one, two, three].should == [1, 2, 3] - end - - it "sets the return value of the catch block to nil by default" do - res = catch :blah do - throw :blah - end - res.should == nil - end - - it "sets the return value of the catch block to a value specified as second parameter" do - res = catch :blah do - throw :blah, :return_value - end - res.should == :return_value - end - - it "raises an ArgumentError if there is no catch block for the symbol" do - lambda { throw :blah }.should raise_error(ArgumentError) - end - - it "raises an UncaughtThrowError if there is no catch block for the symbol" do - lambda { throw :blah }.should raise_error(UncaughtThrowError) - end - - it "raises ArgumentError if 3 or more arguments provided" do - lambda { - catch :blah do - throw :blah, :return_value, 2 - end - }.should raise_error(ArgumentError) - - lambda { - catch :blah do - throw :blah, :return_value, 2, 3, 4, 5 - end - }.should raise_error(ArgumentError) - end - - it "can throw an object" do - lambda { - obj = Object.new - catch obj do - throw obj - end - }.should_not raise_error(NameError) - end -end - -describe "Kernel#throw" do - it "is a private method" do - Kernel.should have_private_instance_method(:throw) - end -end |