summaryrefslogtreecommitdiff
path: root/spec/unit/facter/pe_required_facts_spec.rb
blob: 85ff6ab9361880ea29d0593571283c48716c6a6e (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Puppet Enterprise requires the following facts to be set in order to operate.
# These facts are set using the file ???? and the two facts are
# `fact_stomp_port`, and `fact_stomp_server`.
#

require 'spec_helper'

describe "External facts in /etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt" do
  context "With Facter 1.6.17 which does not have external facts support" do
    before :each do
      Facter.stubs(:version).returns("1.6.17")
      Facter::Util::Root.stubs(:root?).returns(true)
      # Stub out the filesystem for stdlib
      Dir.stubs(:entries).with("/etc/puppetlabs/facter/facts.d").
        returns(['puppet_enterprise_installer.txt'])
      Dir.stubs(:entries).with("/etc/facter/facts.d").returns([])
      File.stubs(:readlines).with('/etc/puppetlabs/facter/facts.d/puppet_enterprise_installer.txt').
        returns([
          "fact_stomp_port=61613\n",
          "fact_stomp_server=puppetmaster.acme.com\n",
          "fact_is_puppetagent=true\n",
          "fact_is_puppetmaster=false\n",
          "fact_is_puppetca=false\n",
          "fact_is_puppetconsole=false\n",
      ])
      if Facter.collection.respond_to? :load
        Facter.collection.load(:facter_dot_d)
      else
        Facter.collection.loader.load(:facter_dot_d)
      end
    end

    it 'defines fact_stomp_port' do
      Facter.fact(:fact_stomp_port).value.should == '61613'
    end
    it 'defines fact_stomp_server' do
      Facter.fact(:fact_stomp_server).value.should == 'puppetmaster.acme.com'
    end
    it 'defines fact_is_puppetagent' do
      Facter.fact(:fact_is_puppetagent).value.should == 'true'
    end
    it 'defines fact_is_puppetmaster' do
      Facter.fact(:fact_is_puppetmaster).value.should == 'false'
    end
    it 'defines fact_is_puppetca' do
      Facter.fact(:fact_is_puppetca).value.should == 'false'
    end
    it 'defines fact_is_puppetconsole' do
      Facter.fact(:fact_is_puppetconsole).value.should == 'false'
    end
  end

  [ '1.7.1', '2.0.1' ].each do |v|
    context "With Facter #{v} which has external facts support" do
      before :each do
        Facter.stubs(:version).returns(v)
      end

      it 'does not call Facter::Util::DotD.new' do
        Facter::Util::DotD.expects(:new).never

        if Facter.collection.respond_to? :load
          Facter.collection.load(:facter_dot_d)
        else
          Facter.collection.loader.load(:facter_dot_d)
        end
      end
    end
  end
end