diff options
Diffstat (limited to 'spec/ruby/library/stringio/read_nonblock_spec.rb')
| -rw-r--r-- | spec/ruby/library/stringio/read_nonblock_spec.rb | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/spec/ruby/library/stringio/read_nonblock_spec.rb b/spec/ruby/library/stringio/read_nonblock_spec.rb index 84aefe8de7..38ae7541ca 100644 --- a/spec/ruby/library/stringio/read_nonblock_spec.rb +++ b/spec/ruby/library/stringio/read_nonblock_spec.rb @@ -1,14 +1,25 @@ -require File.expand_path('../../../spec_helper', __FILE__) +require_relative '../../spec_helper' require "stringio" -require File.expand_path('../shared/read', __FILE__) -require File.expand_path('../shared/sysread', __FILE__) +require_relative 'shared/read' +require_relative 'shared/sysread' describe "StringIO#read_nonblock when passed length, buffer" do it_behaves_like :stringio_read, :read_nonblock + + it "accepts :exception option" do + io = StringIO.new("example") + io.read_nonblock(3, buffer = +"", exception: true) + buffer.should == "exa" + end end describe "StringIO#read_nonblock when passed length" do it_behaves_like :stringio_read_length, :read_nonblock + + it "accepts :exception option" do + io = StringIO.new("example") + io.read_nonblock(3, exception: true).should == "exa" + end end describe "StringIO#read_nonblock when passed nil" do @@ -18,3 +29,25 @@ end describe "StringIO#read_nonblock when passed length" do it_behaves_like :stringio_sysread_length, :read_nonblock end + +describe "StringIO#read_nonblock" do + + it "accepts an exception option" do + stringio = StringIO.new('foo') + stringio.read_nonblock(3, exception: false).should == 'foo' + end + + context "when exception option is set to false" do + context "when the end is reached" do + it "returns nil" do + stringio = StringIO.new(+'') + stringio << "hello" + stringio.rewind + + stringio.read_nonblock(5).should == "hello" + stringio.read_nonblock(5, exception: false).should == nil + end + end + end + +end |
