diff options
Diffstat (limited to 'spec/ruby/core/enumerator/chain/rewind_spec.rb')
-rw-r--r-- | spec/ruby/core/enumerator/chain/rewind_spec.rb | 96 |
1 files changed, 47 insertions, 49 deletions
diff --git a/spec/ruby/core/enumerator/chain/rewind_spec.rb b/spec/ruby/core/enumerator/chain/rewind_spec.rb index 951b364f07..5f51ce2cf1 100644 --- a/spec/ruby/core/enumerator/chain/rewind_spec.rb +++ b/spec/ruby/core/enumerator/chain/rewind_spec.rb @@ -1,53 +1,51 @@ require_relative '../../../spec_helper' -ruby_version_is "2.6" do - describe "Enumerator::Chain#rewind" do - before(:each) do - @obj = mock('obj') - @obj.should_receive(:each).any_number_of_times.and_yield - @second = mock('obj') - @second.should_receive(:each).any_number_of_times.and_yield - @enum = Enumerator::Chain.new(@obj, @second) - end - - it "returns self" do - @enum.rewind.should equal @enum - end - - it "does nothing if receiver has not been iterated" do - @obj.should_not_receive(:rewind) - @obj.respond_to?(:rewind).should == true # sanity check - @enum.rewind - end - - it "does nothing on objects that don't respond_to rewind" do - @obj.respond_to?(:rewind).should == false # sanity check - @enum.each {} - @enum.rewind - end - - it "calls_rewind its objects" do - @obj.should_receive(:rewind) - @enum.each {} - @enum.rewind - end - - it "calls_rewind in reverse order" do - @obj.should_not_receive(:rewind) - @second.should_receive(:rewind).and_raise(RuntimeError) - @enum.each {} - -> { @enum.rewind }.should raise_error(RuntimeError) - end - - it "calls rewind only for objects that have actually been iterated on" do - @obj = mock('obj') - @obj.should_receive(:each).any_number_of_times.and_raise(RuntimeError) - @enum = Enumerator::Chain.new(@obj, @second) - - @obj.should_receive(:rewind) - @second.should_not_receive(:rewind) - -> { @enum.each {} }.should raise_error(RuntimeError) - @enum.rewind - end +describe "Enumerator::Chain#rewind" do + before(:each) do + @obj = mock('obj') + @obj.should_receive(:each).any_number_of_times.and_yield + @second = mock('obj') + @second.should_receive(:each).any_number_of_times.and_yield + @enum = Enumerator::Chain.new(@obj, @second) + end + + it "returns self" do + @enum.rewind.should equal @enum + end + + it "does nothing if receiver has not been iterated" do + @obj.should_not_receive(:rewind) + @obj.respond_to?(:rewind).should == true # sanity check + @enum.rewind + end + + it "does nothing on objects that don't respond_to rewind" do + @obj.respond_to?(:rewind).should == false # sanity check + @enum.each {} + @enum.rewind + end + + it "calls_rewind its objects" do + @obj.should_receive(:rewind) + @enum.each {} + @enum.rewind + end + + it "calls_rewind in reverse order" do + @obj.should_not_receive(:rewind) + @second.should_receive(:rewind).and_raise(RuntimeError) + @enum.each {} + -> { @enum.rewind }.should raise_error(RuntimeError) + end + + it "calls rewind only for objects that have actually been iterated on" do + @obj = mock('obj') + @obj.should_receive(:each).any_number_of_times.and_raise(RuntimeError) + @enum = Enumerator::Chain.new(@obj, @second) + + @obj.should_receive(:rewind) + @second.should_not_receive(:rewind) + -> { @enum.each {} }.should raise_error(RuntimeError) + @enum.rewind end end |