2014-01-21 05:31:06 +08:00
|
|
|
require 'test_helper'
|
|
|
|
require 'zip/filesystem'
|
|
|
|
|
2014-07-15 23:23:48 +08:00
|
|
|
class ZipFsDirIteratorTest < MiniTest::Test
|
2017-06-29 10:57:12 +08:00
|
|
|
FILENAME_ARRAY = %w[f1 f2 f3 f4 f5 f6]
|
2014-01-21 05:31:06 +08:00
|
|
|
|
|
|
|
def setup
|
|
|
|
@dirIt = ::Zip::FileSystem::ZipFsDirIterator.new(FILENAME_ARRAY)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_close
|
|
|
|
@dirIt.close
|
2015-03-21 16:27:44 +08:00
|
|
|
assert_raises(IOError, 'closed directory') do
|
2014-01-21 05:31:06 +08:00
|
|
|
@dirIt.each { |e| p e }
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2015-03-21 16:27:44 +08:00
|
|
|
assert_raises(IOError, 'closed directory') do
|
2014-01-21 05:31:06 +08:00
|
|
|
@dirIt.read
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2015-03-21 16:27:44 +08:00
|
|
|
assert_raises(IOError, 'closed directory') do
|
2014-01-21 05:31:06 +08:00
|
|
|
@dirIt.rewind
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2015-03-21 16:27:44 +08:00
|
|
|
assert_raises(IOError, 'closed directory') do
|
2014-01-21 05:31:06 +08:00
|
|
|
@dirIt.seek(0)
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2015-03-21 16:27:44 +08:00
|
|
|
assert_raises(IOError, 'closed directory') do
|
2014-01-21 05:31:06 +08:00
|
|
|
@dirIt.tell
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2014-01-21 05:31:06 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_each
|
|
|
|
# Tested through Enumerable.entries
|
|
|
|
assert_equal(FILENAME_ARRAY, @dirIt.entries)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_read
|
2015-03-21 16:10:37 +08:00
|
|
|
FILENAME_ARRAY.size.times do |i|
|
2014-01-21 05:31:06 +08:00
|
|
|
assert_equal(FILENAME_ARRAY[i], @dirIt.read)
|
2015-03-21 16:10:37 +08:00
|
|
|
end
|
2014-01-21 05:31:06 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_rewind
|
|
|
|
@dirIt.read
|
|
|
|
@dirIt.read
|
|
|
|
assert_equal(FILENAME_ARRAY[2], @dirIt.read)
|
|
|
|
@dirIt.rewind
|
|
|
|
assert_equal(FILENAME_ARRAY[0], @dirIt.read)
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_tell_seek
|
|
|
|
@dirIt.read
|
|
|
|
@dirIt.read
|
|
|
|
pos = @dirIt.tell
|
|
|
|
valAtPos = @dirIt.read
|
|
|
|
@dirIt.read
|
|
|
|
@dirIt.seek(pos)
|
|
|
|
assert_equal(valAtPos, @dirIt.read)
|
|
|
|
end
|
|
|
|
end
|