diff options
Diffstat (limited to 'spec/ruby/core/dir/each_child_spec.rb')
| -rw-r--r-- | spec/ruby/core/dir/each_child_spec.rb | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/spec/ruby/core/dir/each_child_spec.rb b/spec/ruby/core/dir/each_child_spec.rb index 520186e79e..4d6575df39 100644 --- a/spec/ruby/core/dir/each_child_spec.rb +++ b/spec/ruby/core/dir/each_child_spec.rb @@ -36,12 +36,12 @@ describe "Dir.each_child" do end it "raises a SystemCallError if passed a nonexistent directory" do - -> { Dir.each_child(DirSpecs.nonexistent) {} }.should raise_error(SystemCallError) + -> { Dir.each_child(DirSpecs.nonexistent) {} }.should.raise(SystemCallError) end describe "when no block is given" do it "returns an Enumerator" do - Dir.each_child(DirSpecs.mock_dir).should be_an_instance_of(Enumerator) + Dir.each_child(DirSpecs.mock_dir).should.instance_of?(Enumerator) Dir.each_child(DirSpecs.mock_dir).to_a.sort.should == DirSpecs.expected_paths - %w[. ..] end @@ -86,11 +86,24 @@ describe "Dir#each_child" do @dir.each_child { |f| f }.should == @dir end + it "returns the same result when called repeatedly" do + @dir = Dir.open DirSpecs.mock_dir + + a = [] + @dir.each {|dir| a << dir} + + b = [] + @dir.each {|dir| b << dir} + + a.sort.should == b.sort + a.sort.should == DirSpecs.expected_paths + end + describe "when no block is given" do it "returns an Enumerator" do @dir = Dir.new(DirSpecs.mock_dir) - @dir.each_child.should be_an_instance_of(Enumerator) + @dir.each_child.should.instance_of?(Enumerator) @dir.each_child.to_a.sort.should == DirSpecs.expected_paths - %w|. ..| end |
