3 require 'puppet/type/package'
5 describe 'package_provider', :type => :fact do
6 before(:each) { Facter.clear }
7 after(:each) { Facter.clear }
9 ['4.2.2', '3.7.1 (Puppet Enterprise 3.2.1)'].each do |puppetversion|
10 describe "on puppet ''#{puppetversion}''" do
12 allow(Facter).to receive(:value).and_return(puppetversion)
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)
20 expect(Facter.fact(:package_provider).value).to eq('pkgdmg')
24 context 'when centos 7' do
26 provider = Puppet::Type.type(:package).provider(:yum)
27 allow(Puppet::Type.type(:package)).to receive(:defaultprovider).and_return(provider)
29 expect(Facter.fact(:package_provider).value).to eq('yum')
33 context 'when ubuntu' do
35 provider = Puppet::Type.type(:package).provider(:apt)
36 allow(Puppet::Type.type(:package)).to receive(:defaultprovider).and_return(provider)
38 expect(Facter.fact(:package_provider).value).to eq('apt')