Add puppet/archive module, required for newer puppet/rabbitmq
[mirror/dsa-puppet.git] / 3rdparty / modules / archive / spec / classes / archive_spec.rb
1 require 'spec_helper'
2
3 describe 'archive' do
4   context 'RHEL' do
5     let(:facts) do
6       {
7         os: { family: 'RedHat' },
8         operatingsystem: 'RedHat',
9         puppetversion: '4.4.0'
10       }
11     end
12
13     context 'default' do
14       it { is_expected.not_to contain_package('7zip') }
15       it { is_expected.not_to contain_file('/opt/awscli-bundle') }
16       it { is_expected.not_to contain_archive('awscli-bundle.zip') }
17       it { is_expected.not_to contain_exec('install_aws_cli') }
18       it { is_expected.to compile.with_all_deps }
19       it { is_expected.to contain_class('archive::params') }
20     end
21
22     context 'with aws_cli' do
23       let(:params) do
24         {
25           aws_cli_install: true
26         }
27       end
28
29       it { is_expected.to contain_file('/opt/awscli-bundle') }
30       it { is_expected.to contain_archive('awscli-bundle.zip') }
31       it { is_expected.to contain_exec('install_aws_cli') }
32     end
33   end
34
35   describe 'Windows' do
36     let(:default_facts) do
37       {
38         os: { family: 'Windows' },
39         operatingsystem: 'Windows',
40         archive_windir: 'C:/staging'
41       }
42     end
43
44     context 'default 7zip chcolatey package' do
45       let(:facts) do
46         {
47           puppetversion: '4.4.0'
48         }.merge(default_facts)
49       end
50
51       it do
52         is_expected.to contain_package('7zip').with(
53           name: '7zip',
54           provider: 'chocolatey'
55         )
56       end
57       it { is_expected.not_to contain_archive('awscli-bundle.zip') }
58     end
59
60     context 'with 7zip msi package' do
61       let(:facts) do
62         {
63           puppetversion: '3.4.3 (Puppet Enterprise 3.2.3)'
64         }.merge(default_facts)
65       end
66
67       let(:params) do
68         {
69           seven_zip_name: '7-Zip 9.20 (x64 edition)',
70           seven_zip_source: 'C:/Windows/Temp/7z920-x64.msi',
71           seven_zip_provider: 'windows'
72         }
73       end
74
75       it do
76         is_expected.to contain_package('7zip').with(
77           name: '7-Zip 9.20 (x64 edition)',
78           source: 'C:/Windows/Temp/7z920-x64.msi',
79           provider: 'windows'
80         )
81       end
82     end
83
84     context 'without 7zip' do
85       let(:facts) do
86         {
87           puppetversion: '3.4.3 (Puppet Enterprise 3.2.3)'
88         }.merge(default_facts)
89       end
90
91       let(:params) do
92         {
93           seven_zip_provider: ''
94         }
95       end
96
97       it { is_expected.not_to contain_package('7zip') }
98     end
99   end
100 end