test/zip_reader_test.rb in iostreams-0.20.1 vs test/zip_reader_test.rb in iostreams-0.20.2
- old
+ new
@@ -1,27 +1,54 @@
require_relative 'test_helper'
+require_relative 'minimal_file_reader'
require 'zip'
class ZipReaderTest < Minitest::Test
describe IOStreams::Zip::Reader do
let :file_name do
File.join(File.dirname(__FILE__), 'files', 'text.zip')
end
+ let :multiple_zip_file_name do
+ File.join(File.dirname(__FILE__), 'files', 'multiple_files.zip')
+ end
+
+ let :contents_test_txt do
+ File.read(File.join(File.dirname(__FILE__), 'files', 'text.txt'))
+ end
+
+ let :contents_test_json do
+ File.read(File.join(File.dirname(__FILE__), 'files', 'test.json'))
+ end
+
let :decompressed do
Zip::File.open(file_name) { |zip_file| zip_file.first.get_input_stream.read }
end
describe '.open' do
- it 'file' do
+ it 'reads the first file' do
result = IOStreams::Zip::Reader.open(file_name) do |io|
io.read
end
assert_equal decompressed, result
end
- it 'stream' do
- result = File.open(file_name) do |file|
+ it 'reads entry within zip file' do
+ result = IOStreams::Zip::Reader.open(multiple_zip_file_name, entry_file_name: 'text.txt') do |io|
+ io.read
+ end
+ assert_equal contents_test_txt, result
+ end
+
+ it 'reads another entry within zip file' do
+ result = IOStreams::Zip::Reader.open(multiple_zip_file_name, entry_file_name: 'test.json') do |io|
+ io.read
+ end
+ assert_equal contents_test_json, result
+ end
+
+ it 'reads from a stream' do
+ result = MinimalFileReader.open(file_name) do |file|
IOStreams::Zip::Reader.open(file) do |io|
io.read
end
end
assert_equal decompressed, result