Skip to content
Snippets Groups Projects
Select Git revision
  • 7348049bb1e6acb7d722ee0f80dc4a55bec5ecdc
  • master default protected
  • subtemplate
  • release_7.0.6
  • php84
  • 6.x
  • v5.x-test
  • 5x
  • 7.1.0
  • 7.0.6
  • 7.0.5
  • 7.0.4
  • 7.0.3
  • 7.0.2
  • 7.0.1
  • 7.0.0
  • 6.1.7
  • 6.1.6
  • 6.1.5
  • 6.1.4
  • 6.1.3
  • 6.1.2
  • 6.1.1
  • 6.1.0
  • 6.0.3
  • 6.0.2
  • 5.0.6
  • 6.0.1
28 results

MacroService.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    postfix_hash_spec.rb 3.07 KiB
    require 'spec_helper'
    
    describe 'postfix::hash' do
      let (:title) { '/tmp/foo' }
    
      let :pre_condition do
        "class { '::postfix': }"
      end
    
      on_supported_os.each do |os, facts|
        context "on #{os}" do
          let(:facts) do
            facts
          end
    
          context 'when passing wrong type for ensure' do
            let (:params) { {
              :ensure => ['present'],
            } }
            it 'should fail' do
              expect {
                is_expected.to contain_file('/tmp/foo')
              }.to raise_error
            end
          end
    
          context 'when passing wrong value for ensure' do
            let (:params) { {
              :ensure => 'running',
            } }
            it 'should fail' do
              expect {
                is_expected.to contain_file('/tmp/foo')
              }.to raise_error(Puppet::Error, /got 'running'/)
            end
          end
    
          context 'when passing wrong value for title' do
            let (:title) { 'foo' }
            it 'should fail' do
              expect {
                is_expected.to contain_file('/tmp/foo')
              }.to raise_error(Puppet::Error, /got 'foo'/)
            end
          end
    
          context 'when passing both source and content' do
            let (:params) { {
              :source  => '/tmp/bar',
              :content => 'bar',
            } }
    
            it 'should fail' do
              expect {
                is_expected.to contain_file('/tmp/foo')
              }.to raise_error(Puppet::Error, /You must provide either 'source' or 'content'/)
            end
          end
    
          context 'when passing source' do
            let (:params) { {
              :source  => '/tmp/bar',
            } }
    
            it { is_expected.to contain_file('postfix map /tmp/foo').with(
              :ensure => 'present',
              :source => '/tmp/bar'
            ).without(:content)
            }
            it { is_expected.to contain_file('postfix map /tmp/foo.db').with_ensure('present') }
            it { is_expected.to contain_exec('generate /tmp/foo.db') }
    
          end
    
          context 'when passing content' do
            let (:params) { {
              :content => 'bar',
            } }
    
            it { is_expected.to contain_file('postfix map /tmp/foo').with(
              :ensure  => 'present',
              :content => 'bar'
            ).without(:source)
            }
            it { is_expected.to contain_file('postfix map /tmp/foo.db').with_ensure('present') }
            it { is_expected.to contain_exec('generate /tmp/foo.db') }
          end
    
          context 'when not passing source or content' do
            it { is_expected.to contain_file('postfix map /tmp/foo').with(
              :ensure  => 'present'
            ).without(:source).without(:content)
            }
            it { is_expected.to contain_file('postfix map /tmp/foo.db').with_ensure('present') }
            it { is_expected.to contain_exec('generate /tmp/foo.db') }
          end
    
          context 'when ensuring absence' do
            let (:params) { {
              :ensure => 'absent',
            } }
    
            it { is_expected.to contain_file('postfix map /tmp/foo').with_ensure('absent') }
            it { is_expected.to contain_file('postfix map /tmp/foo.db').with_ensure('absent') }
            it { is_expected.to contain_exec('generate /tmp/foo.db') }
          end
        end
      end
    end