summaryrefslogtreecommitdiffstats
path: root/spec/shared_behaviours/file_server_terminus.rb
blob: 674651cbd0a2aa85365bc7505f31569391c5b16f (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
#!/usr/bin/env ruby
#
#  Created by Luke Kanies on 2007-10-18.
#  Copyright (c) 2007. All rights reserved.

describe "Puppet::Indirector::FileServerTerminus", :shared => true do
    # This only works if the shared behaviour is included before
    # the 'before' block in the including context.
    before do
        Puppet::Util::Cacher.expire
        FileTest.stubs(:exists?).returns true
        FileTest.stubs(:exists?).with(Puppet[:fileserverconfig]).returns(true)

        @path = Tempfile.new("file_server_testing")
        path = @path.path
        @path.close!
        @path = path

        Dir.mkdir(@path)
        File.open(File.join(@path, "myfile"), "w") { |f| f.print "my content" }

        # Use a real mount, so the integration is a bit deeper.
        @mount1 = Puppet::FileServing::Configuration::Mount::File.new("one")
        @mount1.path = @path

        @parser = stub 'parser', :changed? => false
        @parser.stubs(:parse).returns("one" => @mount1)

        Puppet::FileServing::Configuration::Parser.stubs(:new).returns(@parser)

        # Stub out the modules terminus
        @modules = mock 'modules terminus'

        @request = Puppet::Indirector::Request.new(:indirection, :method, "puppet://myhost/one/myfile")
    end

    it "should use the file server configuration to find files" do
        @modules.stubs(:find).returns(nil)
        @terminus.indirection.stubs(:terminus).with(:modules).returns(@modules)

        path = File.join(@path, "myfile")

        @terminus.find(@request).should be_instance_of(@test_class)
    end
end