Sha256: 678cb0205c5f08fd703dd7641e57124a047dc6ab80a7c8f3b17a92da2ffbef38

Contents?: true

Size: 1.56 KB

Versions: 22

Compression:

Stored size: 1.56 KB

Contents

require File.dirname(__FILE__) + '/../spec_helper.rb'

describe MetricFu::MD5Tracker do
  before do
    @tmp_dir = File.join(File.dirname(__FILE__), 'tmp')
    FileUtils.mkdir_p(@tmp_dir, :verbose => false) unless File.directory?(@tmp_dir)
    @file1 = File.new(File.join(@tmp_dir, 'file1.txt'), 'w')
    @file2 = File.new(File.join(@tmp_dir, 'file2.txt'), 'w')
  end

  after do
    FileUtils.rm_rf(@tmp_dir, :verbose => false)
  end

  it "identical files should match" do
    @file1.puts("Hello World")
    @file1.close
    file1_md5 = MD5Tracker.track(@file1.path, @tmp_dir)

    @file2.puts("Hello World")
    @file2.close
    file2_md5 = MD5Tracker.track(@file2.path, @tmp_dir)

    file2_md5.should == file1_md5
  end

  it "different files should not match" do
    @file1.puts("Hello World")
    @file1.close
    file1_md5 = MD5Tracker.track(@file1.path, @tmp_dir)

    @file2.puts("Goodbye World")
    @file2.close
    file2_md5 = MD5Tracker.track(@file2.path, @tmp_dir)

    file2_md5.should_not == file1_md5
  end

  it "file_changed? should detect a change" do
      @file2.close

      @file1.puts("Hello World")
      @file1.close
      file1_md5 = MD5Tracker.track(@file1.path, @tmp_dir)

      @file1 = File.new(File.join(@tmp_dir, 'file1.txt'), 'w')
      @file1.puts("Goodbye World")
      @file1.close
      MD5Tracker.file_changed?(@file1.path, @tmp_dir).should be_true
  end

  it "should detect a new file" do
    @file2.close
    MD5Tracker.file_changed?(@file1.path, @tmp_dir).should be_true
    File.exist?(MD5Tracker.md5_file(@file1.path, @tmp_dir)).should be_true
  end
end

Version data entries

22 entries across 22 versions & 4 rubygems

Version Path
alexrothenberg-metric_fu-1.0.2 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.2 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3.1 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3.2 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3.3 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3.4 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3.5 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3.6 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3.7 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3.8 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.3 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.4.1 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.4.2 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.4.3 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.4.4 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.4.5 spec/base/md5_tracker_spec.rb
edouard-metric_fu-1.0.4 spec/base/md5_tracker_spec.rb
jscruggs-metric_fu-1.0.0 spec/base/md5_tracker_spec.rb
jscruggs-metric_fu-1.0.1 spec/base/md5_tracker_spec.rb
jscruggs-metric_fu-1.0.2 spec/base/md5_tracker_spec.rb