aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/core/exception/result_spec.rb
blob: 350c071f60bff353ee9eac1b68a1b108409b99cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require File.expand_path('../../../spec_helper', __FILE__)

describe "StopIteration" do
  it "is a subclass of IndexError" do
    StopIteration.superclass.should equal(IndexError)
  end
end

describe "StopIteration#result" do
  before :each do
    obj = Object.new
    def obj.each
      yield :yield_returned_1
      yield :yield_returned_2
      :method_returned
    end
    @enum = obj.to_enum
  end

  it "returns the method-returned-object from an Enumerator" do
    @enum.next
    @enum.next
    lambda { @enum.next }.should(
      raise_error(StopIteration) do |error|
        error.result.should equal(:method_returned)
      end
    )
  end
end