37 lines
922 B
Ruby
37 lines
922 B
Ruby
require 'test_helper'
|
|
require 'fileutils'
|
|
require_relative '../../samples/example_recursive'
|
|
|
|
class ExampleRecursiveTest < MiniTest::Test
|
|
DIRECTORY_TO_ZIP = 'test/data/globTest'
|
|
OUTPUT_DIRECTORY = 'test/data/example_recursive.zip'
|
|
TEMP_DIRECTORY = 'test/data/tmp'
|
|
|
|
def setup
|
|
@generator = ::ZipFileGenerator.new(DIRECTORY_TO_ZIP, OUTPUT_DIRECTORY)
|
|
end
|
|
|
|
def teardown
|
|
FileUtils.rm_rf TEMP_DIRECTORY
|
|
FileUtils.rm_f OUTPUT_DIRECTORY
|
|
end
|
|
|
|
def test_write
|
|
@generator.write
|
|
unzip
|
|
assert_equal Dir.entries(DIRECTORY_TO_ZIP).sort, Dir.entries(TEMP_DIRECTORY).sort
|
|
end
|
|
|
|
private
|
|
|
|
def unzip(file = OUTPUT_DIRECTORY)
|
|
Zip::File.open(file) do |zip_file|
|
|
zip_file.each do |f|
|
|
file_path = File.join(TEMP_DIRECTORY, f.name)
|
|
FileUtils.mkdir_p(File.dirname(file_path))
|
|
|
|
zip_file.extract(f, file_path) unless File.exist?(file_path)
|
|
end
|
|
end
|
|
end
|
|
end |