phpservermon/puphpet/puppet/modules/erlang/spec/classes/erlang_spec.rb

139 lines
4.1 KiB
Ruby

require 'spec_helper'
describe 'erlang', :type => :class do
context 'on Debian' do
let(:facts) { {
:osfamily => 'Debian',
:lsbdistid => 'debian',
:lsbdistcodename => 'squeeze'
}}
context 'with no parameters' do
it { should compile.with_all_deps }
it { should contain_package('erlang-nox').with_ensure('present') }
it { should contain_apt__source('erlang').with(
'key_source' => 'http://packages.erlang-solutions.com/debian/erlang_solutions.asc',
'key' => 'D208507CA14F4FCA'
) }
end
context 'with a custom version' do
let(:params) { {'version' => 'absent' } }
it { should contain_package('erlang-nox').with_ensure('absent') }
end
context 'with a custom package name' do
let(:params) { {'package_name' => 'not-erlang' } }
it { should contain_package('not-erlang').with_ensure('present') }
end
context 'with custom repository details' do
let(:params) { {
'key_signature' => '1234ABCD',
'repos' => 'main',
'remote_repo_location' => 'http://example.com/debian',
'remote_repo_key_location' => 'http://example.com/debian/key.asc',
} }
it { should contain_apt__source('erlang').with(
'location' => 'http://example.com/debian',
'key_source' => 'http://example.com/debian/key.asc',
'key' => '1234ABCD',
'repos' => 'main'
) }
end
end
context 'on RedHat 5' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystemrelease => '5.9' } }
context "epel enabled" do
let(:params) {{ :epel_enable => true }}
it { should contain_class('epel') }
end
context "epel disabled" do
let(:params) {{ :epel_enable => false }}
it { should_not contain_class('epel') }
end
context 'with no parameters' do
it { should contain_package('erlang').with_ensure('present') }
it { should contain_exec('erlang-repo-download').with(
'command' => 'curl -o /etc/yum.repos.d/epel-erlang.repo http://repos.fedorapeople.org/repos/peter/erlang/epel-erlang.repo',
'path' => '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
)
}
end
context 'with a custom repository' do
let(:params) { {
'local_repo_location' => '/tmp/yum.repos.d/tmp.repo',
'remote_repo_location' => 'http://example.com/fake.repo',
} }
it { should contain_exec('erlang-repo-download').with(
'command' => 'curl -o /tmp/yum.repos.d/tmp.repo http://example.com/fake.repo'
)
}
end
context 'with a custom version' do
let(:params) { {'version' => 'absent' } }
it { should contain_package('erlang').with_ensure('absent') }
end
end
context 'on RedHat 6' do
let(:facts) { {:osfamily => 'RedHat', :operatingsystemrelease => '6.4' } }
context "epel enabled" do
let(:params) {{ :epel_enable => true }}
it { should contain_class('epel') }
end
context "epel disabled" do
let(:params) {{ :epel_enable => false }}
it { should_not contain_class('epel') }
end
context 'with no parameters' do
it { should contain_package('erlang').with_ensure('present') }
end
context 'with a custom version' do
let(:params) { {'version' => 'absent' } }
it { should contain_package('erlang').with_ensure('absent') }
end
end
context 'on SUSE' do
let(:facts) {{ :osfamily => 'SUSE', }}
context 'with no parameters' do
it { should contain_package('erlang').with_ensure('present') }
end
context 'with a custom version' do
let(:params) { {'version' => 'absent' } }
it { should contain_package('erlang').with_ensure('absent') }
end
end
context 'on Archlinux' do
let(:facts) {{ :osfamily => 'Archlinux', }}
context 'with no parameters' do
it { should contain_package('erlang').with_ensure('present') }
end
context 'with a custom version' do
let(:params) { {'version' => 'absent' } }
it { should contain_package('erlang').with_ensure('absent') }
end
end
end