aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/core/exception/result_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/exception/result_spec.rb')
-rw-r--r--spec/ruby/core/exception/result_spec.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/ruby/core/exception/result_spec.rb b/spec/ruby/core/exception/result_spec.rb
new file mode 100644
index 0000000000..350c071f60
--- /dev/null
+++ b/spec/ruby/core/exception/result_spec.rb
@@ -0,0 +1,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