3 describe 'apt_has_updates fact' do
4 subject { Facter.fact(:apt_has_updates).value }
5 after(:each) { Facter.clear }
7 describe 'on non-Debian distro' do
9 Facter.fact(:osfamily).expects(:value).at_least(1).returns 'RedHat'
11 it { is_expected.to be_nil }
14 describe 'on Debian based distro missing apt-get' do
16 Facter.fact(:osfamily).expects(:value).at_least(1).returns 'Debian'
17 File.stubs(:executable?) # Stub all other calls
18 File.expects(:executable?).with('/usr/bin/apt-get').returns false
20 it { is_expected.to be_nil }
23 describe 'on Debian based distro' do
25 Facter.fact(:osfamily).expects(:value).at_least(1).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/bin/apt-get').returns true
29 Facter::Util::Resolution.expects(:exec).with('/usr/bin/apt-get -s -o Debug::NoLocking=true upgrade 2>&1').returns ""+
30 "Inst tzdata [2015f-0+deb8u1] (2015g-0+deb8u1 Debian:stable-updates [all])\n"+
31 "Conf tzdata (2015g-0+deb8u1 Debian:stable-updates [all])\n"+
32 "Inst unhide.rb [13-1.1] (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n"+
33 "Conf unhide.rb (22-2~bpo8+1 Debian Backports:jessie-backports [all])\n"
35 it { is_expected.to be true }