summaryrefslogtreecommitdiffstats
path: root/spec/unit/operatingsystemrelease_spec.rb
blob: 739a20a8de5132c93de47c72e5c7c1ccf6c39b86 (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
#!/usr/bin/env ruby

require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')

require 'facter'

describe "Operating System Release fact" do

    before do
        Facter.clear
    end

    after do
        Facter.clear
    end

    test_cases = {
        "CentOS"    => "/etc/redhat-release",
        "RedHat"    => "/etc/redhat-release",
        "Fedora"    => "/etc/fedora-release",
        "MeeGo"     => "/etc/meego-release",
        "OEL"       => "/etc/enterprise-release",
        "oel"       => "/etc/enterprise-release",
        "OVS"       => "/etc/ovs-release",
        "ovs"       => "/etc/ovs-release",
    }

    test_cases.each do |system, file|
        describe "with operatingsystem reported as #{system.inspect}" do
            it "should read the #{file.inspect} file" do
                Facter.fact(:operatingsystem).stubs(:value).returns(system)

                File.expects(:open).with(file, "r").at_least(1)

                Facter.fact(:operatingsystemrelease).value
            end
        end
    end

    it "for VMWareESX it should run the vmware -v command" do
        Facter.fact(:kernel).stubs(:value).returns("VMkernel")
        Facter.fact(:kernelrelease).stubs(:value).returns("4.1.0")
        Facter.fact(:operatingsystem).stubs(:value).returns("VMwareESX")

        Facter::Util::Resolution.stubs(:exec).with('vmware -v').returns('foo')

        Facter.fact(:operatingsystemrelease).value
    end
end