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
|
# frozen_string_literal: true
require_relative '../test_helper'
require 'zip/filesystem'
class DirectoryIteratorTest < Minitest::Test
FILENAME_ARRAY = %w[f1 f2 f3 f4 f5 f6].freeze
def setup
@dir_iter = ::Zip::FileSystem::DirectoryIterator.new(FILENAME_ARRAY)
end
def test_close
@dir_iter.close
assert_raises(IOError, 'closed directory') do
@dir_iter.each { |e| p e }
end
assert_raises(IOError, 'closed directory') do
@dir_iter.read
end
assert_raises(IOError, 'closed directory') do
@dir_iter.rewind
end
assert_raises(IOError, 'closed directory') do
@dir_iter.seek(0)
end
assert_raises(IOError, 'closed directory') do
@dir_iter.tell
end
end
def test_each
# Tested through Enumerable.entries
assert_equal(FILENAME_ARRAY, @dir_iter.entries)
end
def test_read
FILENAME_ARRAY.size.times do |i|
assert_equal(FILENAME_ARRAY[i], @dir_iter.read)
end
end
def test_rewind
@dir_iter.read
@dir_iter.read
assert_equal(FILENAME_ARRAY[2], @dir_iter.read)
@dir_iter.rewind
assert_equal(FILENAME_ARRAY[0], @dir_iter.read)
end
def test_tell_seek
@dir_iter.read
@dir_iter.read
pos = @dir_iter.tell
value = @dir_iter.read
@dir_iter.read
@dir_iter.seek(pos)
assert_equal(value, @dir_iter.read)
end
end
|