Sha256: 7a20e471b7c766bc928dc057b313a300fd34d69a2759f74e92c105999cd4cc0c

Contents?: true

Size: 1.35 KB

Versions: 1

Compression:

Stored size: 1.35 KB

Contents

$:.unshift File.dirname(__FILE__)

require 'spec'
require 'cotta_file_behaviors'
require 'physical_system_stub'

module BuildMaster
describe PhysicalSystem, 'with cotta file' do
  it_should_behave_like 'CottaFileBehaviors'

  def create_system
    @system = PhysicalSystemStub.new
  end

  before do
    create_system unless @system
  end
  
  it 'copying binary files properly' do
    logo_gif = Cotta.parent_of(__FILE__).file('logo.gif')
    content = logo_gif.read_binary {|io| io.read}
    target = CottaFile.new(@system, Pathname.new('dir/logo.gif'))
    target.parent.mkdirs
    target.write_binary do |io|
      io.write content
    end
    expected_stat = logo_gif.stat
    actual_stat = target.stat
    actual_stat.size.should == expected_stat.size
  end

  it 'zip and unzip' do
    logo_gif = Cotta.parent_of(__FILE__).file('logo.gif')
    content = logo_gif.read_binary {|io| io.read}
    dir = CottaDir.new(@system, Pathname.new('dir'))
    target_dir = dir.dir('target')
    target_dir.file(logo_gif.name).write_binary {|io| io.write content}
    zip_file = target_dir.archive.zip
    extract_dir = dir.dir('extract')
    file_to_unzip = zip_file.copy_to(extract_dir.file(zip_file.name))
    extracted_dir = file_to_unzip.unzip.extract

    extracted_dir.file('logo.gif').stat.size.should == logo_gif.stat.size
  end

end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
BuildMaster-1.1.9 test/buildmaster/cotta/tc_cotta_file_physical.rb