phpservermon/puphpet/puppet/modules/rvm/spec/classes/dependencies_spec.rb

69 lines
2.0 KiB
Ruby

require 'spec_helper'
describe 'rvm::dependencies' do
packages = ['which','gcc','autoconf','libcurl-devel','build-essential']
let(:facts) {{}}
shared_examples 'package creation' do |packages_to_have|
packages_to_have.each {|p| it { should contain_package(p)} }
(packages-packages_to_have).each {|p| it { should_not contain_package(p)} }
end
shared_context 'redhat_facts' do |operatingsystem, operatingsystemrelease|
let(:facts) { super().merge({
:osfamily => "RedHat",
:operatingsystem => operatingsystem,
:operatingsystemrelease => operatingsystemrelease
}) }
end
shared_examples 'redhat' do |packages_to_have|
it_behaves_like 'package creation', packages_to_have + ['which','gcc']
end
shared_examples 'redhat5' do |operatingsystem, operatingsystemrelease|
include_context 'redhat_facts', operatingsystem, operatingsystemrelease
it_behaves_like 'redhat', ['autoconf']
end
shared_examples 'redhat6' do |operatingsystem, operatingsystemrelease|
include_context 'redhat_facts', operatingsystem, operatingsystemrelease
it_behaves_like 'redhat', ['libcurl-devel']
end
shared_examples 'debian' do |operatingsystem|
let(:facts) {{
:osfamily => "Debian",
:operatingsystem => operatingsystem
}}
it_behaves_like 'package creation', ['autoconf','build-essential']
end
context 'RedHat' do
operatingsystems = ['centos', 'fedora', 'rhel', 'redhat', 'scientific']
versions = { '5.0' => 'redhat5', '6.4' => 'redhat6' }
operatingsystems.each do |os|
context os, :compile do
versions.each {|version,example| it_behaves_like example, os, version }
end
end
context 'amazon linux', :compile do
let(:facts) {{ :operatingsystemmajrelease => "3" }}
it_behaves_like 'redhat6', 'Amazon', '3.4.43-43.43.amzn1.x86_64'
end
end
context 'debian', :compile do
it_behaves_like 'debian', 'ubuntu'
end
context 'other', :compile do
let(:facts) {{ :operatingsystem => 'xxx' }}
it_behaves_like 'package creation', []
end
end