Refactor systemd facts (#12)
[puppet_systemd.git] / spec / unit / facter / systemd_spec.rb
1 require "spec_helper"
2
3 describe Facter::Util::Fact do
4   before {
5     Facter.clear
6   }
7
8   describe "systemd" do
9     context 'returns true when systemd present' do
10       before do
11         Facter.fact(:kernel).stubs(:value).returns(:linux)
12       end
13       let(:facts) { {:kernel => :linux} }
14       it do
15         Facter::Util::Resolution.expects(:exec).with('ps -p 1 -o comm=').returns('systemd')
16         expect(Facter.value(:systemd)).to eq(true)
17       end
18     end
19       context 'returns false when systemd not present' do
20         before do
21           Facter.fact(:kernel).stubs(:value).returns(:linux)
22         end
23         let(:facts) { {:kernel => :linux} }
24         it do
25           Facter::Util::Resolution.expects(:exec).with('ps -p 1 -o comm=').returns('init')
26           expect(Facter.value(:systemd)).to eq(false)
27         end
28     end
29
30     context 'returns nil when kernel is not linux' do
31       before do
32         Facter.fact(:kernel).stubs(:value).returns(:windows)
33       end
34       let(:facts) { {:kernel => :windows} }
35       it do
36         Facter::Util::Resolution.expects(:exec).with('ps -p 1 -o comm=').never
37         expect(Facter.value(:systemd)).to be_nil
38       end
39     end
40   end
41 end