Sha256: 9c230b726ad4d96b40dc050e6395bfecc204924ebd209f565238ebf5324ae3d2

Contents?: true

Size: 1.91 KB

Versions: 2

Compression:

Stored size: 1.91 KB

Contents

require 'spec_helper'

describe "Tag Specs" do

  before(:each) do

    @sandbox = Sandbox.new

    # make the bag
    @bag_path = File.join @sandbox.to_s, 'the_bag'
    @bag = BagIt::Bag.new @bag_path

    # add some files
    File.open('/dev/urandom') do |rio|

      10.times do |n|
        @bag.add_file("file-#{n}") { |io| io.write rio.read(16) }
        @bag.add_tag_file("tag-#{n}") { |io| io.write rio.read(16)}
      end

    end

  end

  after(:each) do
    @sandbox.cleanup!
  end
  describe "#add_tag_file" do
    it "should allow addition of tag files via io" do
      @bag.add_tag_file("foo") { |io| io.puts 'all alone' }
      File.join(@bag_path, "foo").should exist_on_fs
    end
    it "should allow addition of bag files within directories using io" do
      @bag.add_tag_file("fedora/foo") { |io| io.puts 'all alone' }
      File.join(@bag_path, "fedora","foo").should exist_on_fs
    end
    it "should allow addition of deep tag files" do
      @bag.add_tag_file("fedora/foo/newfoo/deep") {|io| io.puts "woah that's deep"}
      File.join(@bag_path,"fedora","foo","newfoo","deep").should exist_on_fs
    end
    it "should not allow overwriting of tag files" do
      lambda { @bag.add_tag_file("tag-0") { |io| io.puts 'overwrite!' } }.should raise_error
    end
    it "should allow addition of tag files via copy" do
      src_path = File.join @sandbox.to_s, 'somefile'
      File.open(src_path, 'w') { |io| io.puts "something" }
      @bag.add_tag_file("foo", src_path) { |io| io.puts 'all alone' }
      File.join(@bag_path, "foo").should exist_on_fs
    end
  end
  describe "#remove_tag_file" do
    it "should raise an error when removing non existant files" do
      lambda { @bag.remove_tag_file("file-x") }.should raise_error
    end
  end
  describe "#delete_tag_file" do
    it "should raise an error when deleting non existant tag files" do
      lambda { @bag.delete_tag_file("file-x") }.should raise_error
  end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bagit-0.3.2 spec/tag_spec.rb
bagit-0.3.2.pre spec/tag_spec.rb