1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
require "spec"
require "compress/zlib"
module Compress::Zlib
describe Writer do
it "should be able to write" do
message = "this is a test string !!!!\n"
io = IO::Memory.new
writer = Writer.new(io)
io.bytesize.should eq(0)
writer.flush
io.bytesize.should_not eq(0)
writer.print message
writer.close
io.rewind
reader = Reader.new(io)
reader.gets_to_end.should eq(message)
end
it "can be closed without sync" do
io = IO::Memory.new
writer = Writer.new(io)
writer.close
writer.closed?.should be_true
io.closed?.should be_false
expect_raises IO::Error, "Closed stream" do
writer.print "a"
end
end
it "can be closed with sync (1)" do
io = IO::Memory.new
writer = Writer.new(io, sync_close: true)
writer.close
writer.closed?.should be_true
io.closed?.should be_true
end
it "can be closed with sync (2)" do
io = IO::Memory.new
writer = Writer.new(io)
writer.sync_close = true
writer.close
writer.closed?.should be_true
io.closed?.should be_true
end
it "can be flushed" do
io = IO::Memory.new
writer = Writer.new(io)
writer.print "this"
io.to_slice.hexstring.should eq("789c")
writer.flush
io.to_slice.hexstring.size.should be > 4
writer.print " is a test string !!!!\n"
writer.close
io.rewind
reader = Reader.new(io)
reader.gets_to_end.should eq("this is a test string !!!!\n")
end
end
end
|