3 describe 'apt::setting' do
4 let(:pre_condition) { 'class { "apt": }' }
5 let(:facts) { { :lsbdistid => 'Debian', :osfamily => 'Debian' } }
6 let(:title) { 'teddybear' }
8 let(:default_params) { { :setting_type => 'conf', :content => 'di' } }
10 describe 'when using the defaults' do
11 context 'without setting_type' do
13 expect { should compile }.to raise_error(Puppet::Error, /Must pass setting_type /)
17 context 'without source or content' do
18 let(:params) { { :setting_type => 'conf' } }
20 expect { should compile }.to raise_error(Puppet::Error, /needs either of /)
24 context 'with setting_type=conf' do
25 let(:params) { default_params }
26 it { should contain_file('/etc/apt/apt.conf.d/50teddybear') }
29 context 'with setting_type=pref' do
30 let(:params) { { :setting_type => 'pref', :content => 'di' } }
31 it { should contain_file('/etc/apt/preferences.d/50teddybear') }
34 context 'with setting_type=list' do
35 let(:params) { { :setting_type => 'list', :content => 'di' } }
36 it { should contain_file('/etc/apt/sources.list.d/teddybear.list') }
39 context 'with source' do
40 let(:params) { { :setting_type => 'conf', :source => 'puppet:///la/die/dah' } }
42 should contain_file('/etc/apt/apt.conf.d/50teddybear').with({
47 :source => "#{params[:source]}",
51 context 'with content' do
52 let(:params) { default_params }
53 it { should contain_file('/etc/apt/apt.conf.d/50teddybear').with({
58 :content => "#{params[:content]}",
63 describe 'when trying to pull one over' do
64 context 'with source and content' do
65 let(:params) { default_params.merge({ :source => 'la' }) }
67 expect { should compile }.to raise_error(Puppet::Error, /cannot have both /)
71 context 'with setting_type=ext' do
72 let(:params) { default_params.merge({ :setting_type => 'ext' }) }
74 expect { should compile }.to raise_error(Puppet::Error, /"ext" does not /)
78 context 'with ensure=banana' do
79 let(:params) { default_params.merge({ :ensure => 'banana' }) }
81 expect { should compile }.to raise_error(Puppet::Error, /"banana" does not /)
85 context 'with priority=1.2' do
86 let(:params) { default_params.merge({ :priority => 1.2 }) }
88 expect { should compile }.to raise_error(Puppet::Error, /be an integer /)
93 describe 'with priority=100' do
94 let(:params) { default_params.merge({ :priority => 100 }) }
95 it { should contain_file('/etc/apt/apt.conf.d/100teddybear') }
98 describe 'with ensure=absent' do
99 let(:params) { default_params.merge({ :ensure => 'absent' }) }
100 it { should contain_file('/etc/apt/apt.conf.d/50teddybear').with({
105 describe 'with file_perms' do
106 context "{'owner' => 'roosevelt'}" do
107 let(:params) { default_params.merge({ :file_perms => {'owner' => 'roosevelt'} }) }
108 it { should contain_file('/etc/apt/apt.conf.d/50teddybear').with({
109 :owner => 'roosevelt',
115 context "'group' => 'roosevelt'}" do
116 let(:params) { default_params.merge({ :file_perms => {'group' => 'roosevelt'} }) }
117 it { should contain_file('/etc/apt/apt.conf.d/50teddybear').with({
119 :group => 'roosevelt',
124 context "'owner' => 'roosevelt'}" do
125 let(:params) { default_params.merge({ :file_perms => {'mode' => '0600'} }) }
126 it { should contain_file('/etc/apt/apt.conf.d/50teddybear').with({