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
|
require 'test_helper'
class BasicZipFileTest < MiniTest::Unit::TestCase
include AssertEntry
def setup
@zip_file = ::Zip::File.new(TestZipFile::TEST_ZIP2.zip_name)
@testEntryNameIndex=0
end
def test_entries
assert_equal(TestZipFile::TEST_ZIP2.entry_names.sort,
@zip_file.entries.entries.sort.map { |e| e.name })
end
def test_each
count = 0
visited = {}
@zip_file.each {
|entry|
assert(TestZipFile::TEST_ZIP2.entry_names.include?(entry.name))
assert(!visited.include?(entry.name))
visited[entry.name] = nil
count = count.succ
}
assert_equal(TestZipFile::TEST_ZIP2.entry_names.length, count)
end
def test_foreach
count = 0
visited = {}
::Zip::File.foreach(TestZipFile::TEST_ZIP2.zip_name) {
|entry|
assert(TestZipFile::TEST_ZIP2.entry_names.include?(entry.name))
assert(!visited.include?(entry.name))
visited[entry.name] = nil
count = count.succ
}
assert_equal(TestZipFile::TEST_ZIP2.entry_names.length, count)
end
def test_get_input_stream
count = 0
visited = {}
@zip_file.each do |entry|
assert_entry(entry.name, @zip_file.get_input_stream(entry), entry.name)
assert(!visited.include?(entry.name))
visited[entry.name] = nil
count = count.succ
end
assert_equal(TestZipFile::TEST_ZIP2.entry_names.length, count)
end
def test_get_input_streamBlock
fileAndEntryName = @zip_file.entries.first.name
@zip_file.get_input_stream(fileAndEntryName) {
|zis|
assert_entryContentsForStream(fileAndEntryName,
zis,
fileAndEntryName)
}
end
end
|