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