Merge pull request #227 from daniellawrence/file_perms_apt_ppa
[puppet-modules/puppetlabs-apt.git] / spec / defines / force_spec.rb
1 require 'spec_helper'
2 describe 'apt::force', :type => :define do
3   let(:facts) { { :lsbdistid => 'Debian' } }
4   let :pre_condition do
5     'include apt::params'
6   end
7
8   let :title do
9     'my_package'
10   end
11
12   let :default_params do
13     {
14       :release => false,
15       :version => false
16     }
17   end
18
19   describe "when using default parameters" do
20     let :params do
21       default_params
22     end
23     it { should contain_exec("/usr/bin/apt-get -y  install #{title}").with(
24       :unless  => "/usr/bin/dpkg -s #{title} | grep -q 'Status: install'",
25       :timeout => '300'
26     ) }
27   end
28
29   describe "when specifying release parameter" do
30     let :params do
31       default_params.merge(:release => 'testing')
32     end
33     it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}").with(
34       :unless => "/usr/bin/test \$(/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -E 'Installed|Candidate' | /usr/bin/uniq -s 14 | /usr/bin/wc -l) -eq 1"
35     ) }
36   end
37
38   describe "when specifying version parameter" do
39     let :params do
40       default_params.merge(:version => '1')
41     end
42     it { should contain_exec("/usr/bin/apt-get -y  install #{title}=#{params[:version]}").with(
43       :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Version: #{params[:version]}'"
44     ) }
45   end
46
47   describe "when specifying release and version parameters" do
48     let :params do
49       default_params.merge(
50         :release => 'testing',
51         :version => '1'
52       )
53     end
54     it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}=1").with(
55       :unless => "/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -q 'Installed: #{params[:version]}'"
56     ) }
57   end
58 end