+++ /dev/null
-require 'spec_helper'
-
-describe 'apache::custom_config', :type => :define do
- let :pre_condition do
- 'class { "apache": }'
- end
- let :title do
- 'rspec'
- end
- let :facts do
- {
- :osfamily => 'Debian',
- :operatingsystemrelease => '6',
- :concat_basedir => '/',
- :lsbdistcodename => 'squeeze',
- :operatingsystem => 'Debian',
- :id => 'root',
- :kernel => 'Linux',
- :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
- :is_pe => false,
- }
- end
- context 'defaults with content' do
- let :params do
- {
- 'content' => '# Test',
- }
- end
- it { is_expected.to contain_exec("service notify for rspec").with({
- 'refreshonly' => 'true',
- 'subscribe' => 'File[apache_rspec]',
- 'command' => '/usr/sbin/apachectl -t',
- 'notify' => 'Class[Apache::Service]',
- 'before' => 'Exec[remove rspec if invalid]',
- })
- }
- it { is_expected.to contain_exec("remove rspec if invalid").with({
- 'unless' => '/usr/sbin/apachectl -t',
- 'subscribe' => 'File[apache_rspec]',
- 'refreshonly' => 'true',
- })
- }
- it { is_expected.to contain_file("apache_rspec").with({
- 'ensure' => 'present',
- 'content' => '# Test',
- 'require' => 'Package[httpd]',
- })
- }
- end
- context 'set everything with source' do
- let :params do
- {
- 'confdir' => '/dne',
- 'priority' => '30',
- 'source' => 'puppet:///modules/apache/test',
- 'verify_command' => '/bin/true',
- }
- end
- it { is_expected.to contain_exec("service notify for rspec").with({
- 'command' => '/bin/true',
- })
- }
- it { is_expected.to contain_exec("remove rspec if invalid").with({
- 'command' => '/bin/rm /dne/30-rspec.conf',
- 'unless' => '/bin/true',
- })
- }
- it { is_expected.to contain_file("apache_rspec").with({
- 'path' => '/dne/30-rspec.conf',
- 'ensure' => 'present',
- 'source' => 'puppet:///modules/apache/test',
- 'require' => 'Package[httpd]',
- })
- }
- end
- context 'verify_config => false' do
- let :params do
- {
- 'content' => '# test',
- 'verify_config' => false,
- }
- end
- it { is_expected.to_not contain_exec('service notify for rspec') }
- it { is_expected.to_not contain_exec('remove rspec if invalid') }
- it { is_expected.to contain_file('apache_rspec').with({
- 'notify' => 'Class[Apache::Service]'
- })
- }
- end
- context 'ensure => absent' do
- let :params do
- {
- 'ensure' => 'absent'
- }
- end
- it { is_expected.to_not contain_exec('service notify for rspec') }
- it { is_expected.to_not contain_exec('remove rspec if invalid') }
- it { is_expected.to contain_file('apache_rspec').with({
- 'ensure' => 'absent',
- })
- }
- end
- describe 'validation' do
- context 'both content and source' do
- let :params do
- {
- 'content' => 'foo',
- 'source' => 'bar',
- }
- end
- it do
- expect {
- catalogue
- }.to raise_error(Puppet::Error, /Only one of \$content and \$source can be specified\./)
- end
- end
- context 'neither content nor source' do
- it do
- expect {
- catalogue
- }.to raise_error(Puppet::Error, /One of \$content and \$source must be specified\./)
- end
- end
- context 'bad ensure' do
- let :params do
- {
- 'content' => 'foo',
- 'ensure' => 'foo',
- }
- end
- it do
- expect {
- catalogue
- }.to raise_error(Puppet::Error, /is not supported for ensure/)
- end
- end
- end
-end