Cleaned up unit tests.
[puppet-modules/puppetlabs-apt.git] / spec / defines / hold_spec.rb
1 require 'spec_helper'
2 describe 'apt::hold' do
3   let :facts do {
4     :osfamily   => 'Debian',
5     :lsbdistid  => 'Debian',
6     :lsbrelease => 'wheezy',
7   } end
8
9   let :title do
10     'vim'
11   end
12
13   let :default_params do {
14     :version => '1.1.1',
15   } end
16
17   describe 'default params' do
18     let :params do default_params end
19
20     it 'creates an apt preferences file' do
21       should contain_apt__pin("hold_#{title}").with({
22         :ensure   => 'present',
23         :packages => title,
24         :version  => params[:version],
25         :priority => 1001,
26       })
27     end
28   end
29
30   describe 'ensure => absent' do
31     let :params do default_params.merge({:ensure => 'absent',}) end
32
33     it 'creates an apt preferences file' do
34
35       should contain_apt__pin("hold_#{title}").with({
36         :ensure   => params[:ensure],
37       })
38     end
39   end
40
41   describe 'priority => 990' do
42     let :params do default_params.merge({:priority => 990,}) end
43
44     it 'creates an apt preferences file' do
45       should contain_apt__pin("hold_#{title}").with({
46         :ensure   => 'present',
47         :packages => title,
48         :version  => params[:version],
49         :priority => params[:priority],
50       })
51     end
52   end
53
54   describe 'package => foo' do
55     let :params do default_params.merge({:package => 'foo'}) end
56
57     it 'creates an apt preferences file' do
58       should contain_apt__pin("hold_foo").with({
59         :ensure   => 'present',
60         :packages => 'foo',
61         :version  => params[:version],
62         :priority => 1001,
63       })
64     end
65   end
66
67
68   describe 'validation' do
69     context 'version => {}' do
70       let :params do { :version => {}, } end
71       it 'should fail' do
72         expect { subject }.to raise_error(/is not a string/)
73       end
74     end
75
76     context 'ensure => bananana' do
77       let :params do default_params.merge({:ensure => 'bananana',}) end
78       it 'should fail' do
79         expect { subject }.to raise_error(/does not match/)
80       end
81     end
82
83     context 'package => []' do
84       let :params do default_params.merge({:package => [],}) end
85       it 'should fail' do
86         expect { subject }.to raise_error(/is not a string/)
87       end
88     end
89
90     context 'priority => bananana' do
91       let :params do default_params.merge({:priority => 'bananana',}) end
92       it 'should fail' do
93         expect { subject }.to raise_error(/must be an integer/)
94       end
95     end
96   end
97 end