c5d3fd91af03f3c159c1c25316943860e68e9e3c
[puppet-modules/puppetlabs-apt.git] / spec / defines / pin_spec.rb
1 require 'spec_helper'
2 describe 'apt::pin', :type => :define do
3   let(:title) { 'my_pin' }
4
5   let :default_params do
6     {
7       :ensure   => 'present',
8       :packages => '*',
9       :priority => '0'
10     }
11   end
12
13   [ {},
14     {
15       :packages  => 'apache',
16       :priority  => '1'
17     },
18     {
19       :ensure    => 'absent',
20       :packages  => 'apache',
21       :priority  => '1'
22     }
23   ].each do |param_set|
24     describe "when #{param_set == {} ? "using default" : "specifying"} define parameters" do
25       let :param_hash do
26         default_params.merge(param_set)
27       end
28
29       let :params do
30         param_set
31       end
32
33       it { should include_class("apt::params") }
34
35       it { should contain_file("#{title}.pref").with({
36           'ensure'  => param_hash[:ensure],
37           'path'    => "/etc/apt/preferences.d/#{title}",
38           'owner'   => 'root',
39           'group'   => 'root',
40           'mode'    => '0644',
41           'content' => "# #{title}\nPackage: #{param_hash[:packages]}\nPin: release a=#{title}\nPin-Priority: #{param_hash[:priority]}",
42         })
43       }
44     end
45   end
46 end