Cleaned up unit tests.
[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     it { should contain_exec("/usr/bin/apt-get -y  install #{title}").with(
21       :unless    => "/usr/bin/dpkg -s #{title} | grep -q 'Status: install'",
22       :logoutput => 'on_failure',
23       :timeout   => '300'
24     ) }
25   end
26
27   describe "when specifying release parameter" do
28     let :params do
29       default_params.merge(:release => 'testing')
30     end
31     it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}").with(
32       :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"
33     ) }
34   end
35
36   describe "when specifying version parameter" do
37     let :params do
38       default_params.merge(:version => '1')
39     end
40     it { should contain_exec("/usr/bin/apt-get -y  install #{title}=#{params[:version]}").with(
41       :unless => "/usr/bin/dpkg -s #{title} | grep -q 'Version: #{params[:version]}'"
42     ) }
43   end
44
45   describe "when specifying release and version parameters" do
46     let :params do
47       default_params.merge(
48         :release => 'testing',
49         :version => '1'
50       )
51     end
52     it { should contain_exec("/usr/bin/apt-get -y -t #{params[:release]} install #{title}=1").with(
53       :unless => "/usr/bin/apt-cache policy -t #{params[:release]} #{title} | /bin/grep -q 'Installed: #{params[:version]}'"
54     ) }
55   end
56 end