summaryrefslogtreecommitdiffstats
path: root/spec/unit/file_collection.rb
blob: 81bcc2d2d8701fe61b2ab89e6e548b9ce5b8c3d4 (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
53
#!/usr/bin/env ruby

require File.dirname(__FILE__) + '/../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/%s" % letter)
            hash
        end

        indexes.each do |letter, index|
            @collection.index("/path/to/file/%s" % 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