Merge pull request #53 from nanliu/tb/14321
[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       :release  => nil
11     }
12   end
13
14   [ {},
15     {
16       :packages  => 'apache',
17       :priority  => '1'
18     },
19     {
20       :ensure    => 'absent',
21       :packages  => 'apache',
22       :priority  => '1'
23     },
24     {
25       :packages  => 'apache',
26       :priority  => '1',
27       :release   => 'my_newpin'
28     }
29   ].each do |param_set|
30     describe "when #{param_set == {} ? "using default" : "specifying"} define parameters" do
31       let :param_hash do
32         default_params.merge(param_set)
33       end
34
35       let :params do
36         param_set
37       end
38
39       it { should include_class("apt::params") }
40
41       it { should contain_file("#{title}.pref").with({
42           'ensure'  => param_hash[:ensure],
43           'path'    => "/etc/apt/preferences.d/#{title}",
44           'owner'   => 'root',
45           'group'   => 'root',
46           'mode'    => '0644',
47           'content' => "# #{title}\nPackage: #{param_hash[:packages]}\nPin: release a=#{param_hash[:release] || title}\nPin-Priority: #{param_hash[:priority]}",
48         })
49       }
50     end
51   end
52 end