Sha256: a37a43c84833cf317ad927ea2d3652ecbb53710b65826c053b5993452a446dc2
Contents?: true
Size: 1.38 KB
Versions: 52
Compression:
Stored size: 1.38 KB
Contents
describe :enum_each, :shared => true do it "yields each element of self to the given block" do acc = [] enumerator_class.new([1,2,3]).each {|e| acc << e } acc.should == [1,2,3] end it "calls #each on the object given in the constructor by default" do each = mock('each') each.should_receive(:each) enumerator_class.new(each).each {|e| e } end it "calls #each on the underlying object until it's exhausted" do each = mock('each') each.should_receive(:each).and_yield(1).and_yield(2).and_yield(3) acc = [] enumerator_class.new(each).each {|e| acc << e } acc.should == [1,2,3] end it "calls the method given in the constructor instead of #each" do each = mock('peach') each.should_receive(:peach) enumerator_class.new(each, :peach).each {|e| e } end it "calls the method given in the constructor until it's exhausted" do each = mock('each') each.should_receive(:each).and_yield(1).and_yield(2).and_yield(3) acc = [] enumerator_class.new(each).each {|e| acc << e } acc.should == [1,2,3] end it "raises a NoMethodError if the object doesn't respond to #each" do lambda do enumerator_class.new(Object.new).each {|e| e } end.should raise_error(NoMethodError) end it "returns an Enumerator if no block is given" do enumerator_class.new([1]).each.should be_an_instance_of(enumerator_class) end end
Version data entries
52 entries across 52 versions & 2 rubygems