hold_spec.rb 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. let :title do
  9. 'vim'
  10. end
  11. let :default_params do {
  12. :version => '1.1.1',
  13. } end
  14. describe 'default params' do
  15. let :params do default_params end
  16. it 'creates an apt preferences file' do
  17. should contain_apt__pin("hold_#{title}").with({
  18. :ensure => 'present',
  19. :packages => title,
  20. :version => params[:version],
  21. :priority => 1001,
  22. })
  23. end
  24. end
  25. describe 'ensure => absent' do
  26. let :params do default_params.merge({:ensure => 'absent',}) end
  27. it 'creates an apt preferences file' do
  28. should contain_apt__pin("hold_#{title}").with({
  29. :ensure => params[:ensure],
  30. })
  31. end
  32. end
  33. describe 'priority => 990' do
  34. let :params do default_params.merge({:priority => 990,}) end
  35. it 'creates an apt preferences file' do
  36. should contain_apt__pin("hold_#{title}").with({
  37. :ensure => 'present',
  38. :packages => title,
  39. :version => params[:version],
  40. :priority => params[:priority],
  41. })
  42. end
  43. end
  44. describe 'package => foo' do
  45. let :params do default_params.merge({:package => 'foo'}) end
  46. it 'creates an apt preferences file' do
  47. should contain_apt__pin("hold_foo").with({
  48. :ensure => 'present',
  49. :packages => 'foo',
  50. :version => params[:version],
  51. :priority => 1001,
  52. })
  53. end
  54. end
  55. describe 'validation' do
  56. context 'version => {}' do
  57. let :params do { :version => {}, } end
  58. it 'should fail' do
  59. expect { subject }.to raise_error(/is not a string/)
  60. end
  61. end
  62. context 'ensure => bananana' do
  63. let :params do default_params.merge({:ensure => 'bananana',}) end
  64. it 'should fail' do
  65. expect { subject }.to raise_error(/does not match/)
  66. end
  67. end
  68. context 'package => []' do
  69. let :params do default_params.merge({:package => [],}) end
  70. it 'should fail' do
  71. expect { subject }.to raise_error(/is not a string/)
  72. end
  73. end
  74. context 'priority => bananana' do
  75. let :params do default_params.merge({:priority => 'bananana',}) end
  76. it 'should fail' do
  77. expect { subject }.to raise_error(/must be an integer/)
  78. end
  79. end
  80. end
  81. end