summaryrefslogtreecommitdiffstats
path: root/spec/unit/file_collection_spec.rb
blob: 51876362940795d2b5fa5c9f7980289384f4ee6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env rspec
require 'spec_helper'

require 'puppet/file_collection'

describe Puppet::FileCollection do
  before do
    @collection = Puppet::FileCollection.new
  end

  it "should be able to convert a file name into an index" do
    @collection.index("/my/file").should be_instance_of(Fixnum)
  end

  it "should be able to convert an index into a file name" do
    index = @collection.index("/path/to/file")
    @collection.path(index).should == "/path/to/file"
  end

  it "should always give the same file name for a given index" do
    index = @collection.index("/path/to/file")
    @collection.path(index).should == @collection.path(index)
  end

  it "should always give the same index for a given file name" do
    @collection.index("/my/file").should == @collection.index("/my/file")
  end

  it "should always correctly relate a file name and its index even when multiple files are in the collection" do
    indexes = %w{a b c d e f}.inject({}) do |hash, letter|
      hash[letter] = @collection.index("/path/to/file/#{letter}")
      hash
    end

    indexes.each do |letter, index|
      @collection.index("/path/to/file/#{letter}").should == indexes[letter]
      @collection.path(index).should == @collection.path(index)
    end
  end

  it "should return nil as the file name when an unknown index is provided" do
    @collection.path(50).should be_nil
  end

  it "should provide a global collection" do
    Puppet::FileCollection.collection.should be_instance_of(Puppet::FileCollection)
  end

  it "should reuse the global collection" do
    Puppet::FileCollection.collection.should equal(Puppet::FileCollection.collection)
  end
end