newer pg module
[mirror/dsa-puppet.git] / 3rdparty / modules / postgresql / spec / unit / defines / server / config_entry_spec.rb
1 require 'spec_helper'
2
3 describe 'postgresql::server::config_entry', :type => :define do
4   let :facts do
5     {
6       :osfamily => 'RedHat',
7       :operatingsystem => 'RedHat',
8       :operatingsystemrelease => '6.4',
9       :kernel => 'Linux',
10       :concat_basedir => tmpfilename('contrib'),
11       :id => 'root',
12       :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
13       :selinux => true,
14     }
15   end
16
17   let(:title) { 'config_entry'}
18
19   let :target do
20     tmpfilename('postgresql_conf')
21   end
22
23   let :pre_condition do
24     "class {'postgresql::server':}"
25   end
26
27   context "syntax check" do
28     let(:params) { { :ensure => 'present'} }
29     it { is_expected.to contain_postgresql__server__config_entry('config_entry') }
30   end
31
32   context 'ports' do
33     context 'redhat 6' do
34       let :facts do
35         {
36           :osfamily => 'RedHat',
37           :operatingsystem => 'RedHat',
38           :operatingsystemrelease => '6.4',
39           :kernel => 'Linux',
40           :concat_basedir => tmpfilename('contrib'),
41           :id => 'root',
42           :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
43           :selinux => true,
44         }
45       end
46       let(:params) {{ :ensure => 'present', :name => 'port_spec', :value => '5432' }}
47
48       it 'stops postgresql and changes the port' do
49         is_expected.to contain_exec('postgresql_stop_port')
50         is_expected.to contain_augeas('override PGPORT in /etc/sysconfig/pgsql/postgresql')
51       end
52     end
53     context 'redhat 7' do
54       let :facts do
55         {
56           :osfamily => 'RedHat',
57           :operatingsystem => 'RedHat',
58           :operatingsystemrelease => '7.0',
59           :kernel => 'Linux',
60           :concat_basedir => tmpfilename('contrib'),
61           :id => 'root',
62           :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
63           :selinux => true,
64         }
65       end
66       let(:params) {{ :ensure => 'present', :name => 'port_spec', :value => '5432' }}
67
68       it 'stops postgresql and changes the port' do
69         is_expected.to contain_file('systemd-override')
70         is_expected.to contain_exec('restart-systemd')
71       end
72     end
73     context 'fedora 19' do
74       let :facts do
75         {
76           :osfamily => 'RedHat',
77           :operatingsystem => 'Fedora',
78           :operatingsystemrelease => '19',
79           :kernel => 'Linux',
80           :concat_basedir => tmpfilename('contrib'),
81           :id => 'root',
82           :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
83           :selinux => true,
84         }
85       end
86       let(:params) {{ :ensure => 'present', :name => 'port_spec', :value => '5432' }}
87
88       it 'stops postgresql and changes the port' do
89         is_expected.to contain_file('systemd-override')
90         is_expected.to contain_exec('restart-systemd')
91       end
92     end
93   end
94
95   context "data_directory" do
96     let(:params) {{ :ensure => 'present', :name => 'data_directory_spec', :value => '/var/pgsql' }}
97
98     it 'stops postgresql and changes the data directory' do
99       is_expected.to contain_exec('postgresql_data_directory')
100       is_expected.to contain_augeas('override PGDATA in /etc/sysconfig/pgsql/postgresql')
101     end
102   end
103
104   context "passes values through appropriately" do
105     let(:params) {{ :ensure => 'present', :name => 'check_function_bodies', :value => 'off' }}
106
107     it 'with no quotes' do
108       is_expected.to contain_postgresql_conf('check_function_bodies').with({
109         :name  => 'check_function_bodies',
110         :value => 'off' })
111     end
112   end
113
114   context 'unix_socket_directories' do
115     let :facts do
116       {
117         :osfamily => 'RedHat',
118         :operatingsystem => 'RedHat',
119         :operatingsystemrelease => '7.0',
120         :kernel => 'Linux',
121         :concat_basedir => tmpfilename('contrib'),
122         :id => 'root',
123         :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
124         :selinux => true,
125       }
126     end
127     let(:params) {{ :ensure => 'present', :name => 'unix_socket_directories', :value => '/var/pgsql, /opt/postgresql, /root/' }}
128
129     it 'should restart the server and change unix_socket_directories to the provided list' do
130       is_expected.to contain_postgresql_conf('unix_socket_directories')
131                       .with({ :name => 'unix_socket_directories',
132                               :value => '/var/pgsql, /opt/postgresql, /root/'})
133                       .that_notifies('Class[postgresql::server::service]')
134     end
135   end
136 end