Skip to content

Commit

Permalink
Add specs for IO#autoclose? and IO#autoclose=
Browse files Browse the repository at this point in the history
The actual behaviour is still untested.
  • Loading branch information
herwinw committed Sep 10, 2023
1 parent ee83ee6 commit 644c0c1
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions core/io/autoclose_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
require_relative '../../spec_helper'
require_relative 'fixtures/classes'

describe "IO#autoclose" do
before :each do
@io = IOSpecs.io_fixture "lines.txt"
end

after :each do
@io.close unless @io.closed?
end

it "can be set to true" do
@io.autoclose = true
@io.should.autoclose?
end

it "can be set to false" do
@io.autoclose = false
@io.should_not.autoclose?
end

it "can be set to any truthy value" do
@io.autoclose = 42
@io.should.autoclose?
end

it "can be set multple times" do
@io.autoclose = true
@io.should.autoclose?

@io.autoclose = false
@io.should_not.autoclose?

@io.autoclose = true
@io.should.autoclose?
end
end

describe "IO#autoclose" do
before :each do
@name = tmp("io_autoclose.txt")
end

after :each do
rm_r @name
end

it "cannot be queried on a closed IO object" do
io = new_io(@name, "w:utf-8")
io.close
-> { io.autoclose? }.should raise_error(IOError, /closed stream/)
end

it "cannot be set on a closed IO object" do
io = new_io(@name, "w:utf-8")
io.close
-> { io.autoclose = false }.should raise_error(IOError, /closed stream/)
end
end

0 comments on commit 644c0c1

Please sign in to comment.