Note that exim contains tracker-specific configuration
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / unit / facter / pe_version_spec.rb
1 require 'spec_helper'
2
3 describe 'PE Version specs' do
4   before :each do
5     # Explicitly load the pe_version.rb file which contains generated facts
6     # that cannot be automatically loaded.  Puppet 2.x implements
7     # Facter.collection.load while Facter 1.x markes Facter.collection.load as
8     # a private method.
9     if Facter.collection.respond_to? :load
10       Facter.collection.load(:pe_version)
11     else
12       Facter.collection.loader.load(:pe_version)
13     end
14   end
15
16   context 'when puppetversion is nil' do
17     before :each do
18       allow(Facter.fact(:puppetversion)).to receive(:value).and_return(nil)
19     end
20
21     it 'puppetversion is nil' do
22       expect(Facter.fact(:puppetversion).value).to be_nil
23     end
24
25     it 'pe_version is nil' do
26       expect(Facter.fact(:pe_version).value).to be_nil
27     end
28   end
29
30   context 'when PE is installed' do
31     ['2.6.1', '2.10.300'].each do |version|
32       puppetversion = "2.7.19 (Puppet Enterprise #{version})"
33       context "puppetversion => #{puppetversion}" do
34         before :each do
35           allow(Facter.fact(:puppetversion)).to receive(:value).and_return(puppetversion)
36         end
37
38         (major, minor, patch) = version.split('.')
39
40         it 'returns true' do
41           expect(Facter.fact(:is_pe).value).to eq(true)
42         end
43
44         it "Should have a version of #{version}" do
45           expect(Facter.fact(:pe_version).value).to eq(version)
46         end
47
48         it "Should have a major version of #{major}" do
49           expect(Facter.fact(:pe_major_version).value).to eq(major)
50         end
51
52         it "Should have a minor version of #{minor}" do
53           expect(Facter.fact(:pe_minor_version).value).to eq(minor)
54         end
55
56         it "Should have a patch version of #{patch}" do
57           expect(Facter.fact(:pe_patch_version).value).to eq(patch)
58         end
59       end
60     end
61   end
62
63   context 'when PE is not installed' do
64     before :each do
65       allow(Facter.fact(:puppetversion)).to receive(:value).and_return('2.7.19')
66     end
67
68     it 'is_pe is false' do
69       expect(Facter.fact(:is_pe).value).to eq(false)
70     end
71
72     it 'pe_version is nil' do
73       expect(Facter.fact(:pe_version).value).to be_nil
74     end
75
76     it 'pe_major_version is nil' do
77       expect(Facter.fact(:pe_major_version).value).to be_nil
78     end
79
80     it 'pe_minor_version is nil' do
81       expect(Facter.fact(:pe_minor_version).value).to be_nil
82     end
83
84     it 'has a patch version' do
85       expect(Facter.fact(:pe_patch_version).value).to be_nil
86     end
87   end
88 end