Update puppetlabs/stdlib module
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / unit / facter / package_provider_spec.rb
1 require 'spec_helper'
2 require 'puppet/type'
3 require 'puppet/type/package'
4
5 describe 'package_provider', :type => :fact do
6   before(:each) { Facter.clear }
7   after(:each) { Facter.clear }
8
9   ['4.2.2', '3.7.1 (Puppet Enterprise 3.2.1)'].each do |puppetversion|
10     describe "on puppet ''#{puppetversion}''" do
11       before :each do
12         allow(Facter).to receive(:value).and_return(puppetversion)
13       end
14
15       context 'when darwin' do
16         it 'returns pkgdmg' do
17           provider = Puppet::Type.type(:package).provider(:pkgdmg)
18           allow(Puppet::Type.type(:package)).to receive(:defaultprovider).and_return(provider)
19
20           expect(Facter.fact(:package_provider).value).to eq('pkgdmg')
21         end
22       end
23
24       context 'when centos 7' do
25         it 'returns yum' do
26           provider = Puppet::Type.type(:package).provider(:yum)
27           allow(Puppet::Type.type(:package)).to receive(:defaultprovider).and_return(provider)
28
29           expect(Facter.fact(:package_provider).value).to eq('yum')
30         end
31       end
32
33       context 'when ubuntu' do
34         it 'returns apt' do
35           provider = Puppet::Type.type(:package).provider(:apt)
36           allow(Puppet::Type.type(:package)).to receive(:defaultprovider).and_return(provider)
37
38           expect(Facter.fact(:package_provider).value).to eq('apt')
39         end
40       end
41     end
42   end
43 end