--- /dev/null
+require 'spec_helper'
+
+describe 'postgresql::server::pg_ident_rule', :type => :define do
+ let :facts do
+ {
+ :osfamily => 'Debian',
+ :operatingsystem => 'Debian',
+ :operatingsystemrelease => '6.0',
+ :kernel => 'Linux',
+ :concat_basedir => tmpfilename('pg_ident'),
+ :id => 'root',
+ :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
+ }
+ end
+ let :title do
+ 'test'
+ end
+ let :target do
+ tmpfilename('pg_ident_rule')
+ end
+
+ context 'managing pg_ident' do
+ let :pre_condition do
+ <<-EOS
+ class { 'postgresql::globals':
+ manage_pg_ident_conf => true,
+ }
+ class { 'postgresql::server': }
+ EOS
+ end
+
+ let :params do
+ {
+ :map_name => 'thatsmymap',
+ :system_username => 'systemuser',
+ :database_username => 'dbuser',
+ }
+ end
+ it do
+ is_expected.to contain_concat__fragment('pg_ident_rule_test').with({
+ :content => /thatsmymap\s+systemuser\s+dbuser/
+ })
+ end
+ end
+ context 'not managing pg_ident' do
+ let :pre_condition do
+ <<-EOS
+ class { 'postgresql::globals':
+ manage_pg_ident_conf => false,
+ }
+ class { 'postgresql::server': }
+ EOS
+ end
+ let :params do
+ {
+ :map_name => 'thatsmymap',
+ :system_username => 'systemuser',
+ :database_username => 'dbuser',
+ }
+ end
+ it 'should fail because $manage_pg_ident_conf is false' do
+ expect { catalogue }.to raise_error(Puppet::Error,
+ /postgresql::server::manage_pg_ident_conf has been disabled/)
+ end
+ end
+end