Merge remote-tracking branch 'upstream/master' into 1.7.x-merge
[puppet-modules/puppetlabs-apt.git] / spec / unit / facter / apt_has_updates_spec.rb
1 require 'spec_helper'
2
3 describe 'apt_has_updates fact' do
4   subject { Facter.fact(:apt_has_updates).value }
5   after(:each) { Facter.clear }
6
7   describe 'on non-Debian distro' do
8     before {
9       Facter.fact(:osfamily).expects(:value).returns 'RedHat'
10     }
11     it { should be_nil }
12   end
13
14   describe 'on Debian based distro missing update-notifier-common' do
15     before {
16       Facter.fact(:osfamily).expects(:value).returns 'Debian'
17       File.stubs(:executable?) # Stub all other calls
18       File.expects(:executable?).with('/usr/lib/update-notifier/apt-check').returns false
19     }
20     it { should be_nil }
21   end
22
23   describe 'on Debian based distro' do
24     before {
25       Facter.fact(:osfamily).expects(:value).returns 'Debian'
26       File.stubs(:executable?) # Stub all other calls
27       Facter::Util::Resolution.stubs(:exec) # Catch all other calls
28       File.expects(:executable?).with('/usr/lib/update-notifier/apt-check').returns true
29       Facter::Util::Resolution.expects(:exec).with('/usr/lib/update-notifier/apt-check 2>&1').returns "4;3"
30     }
31     it { should be true }
32   end
33 end
34