newer pg module
[mirror/dsa-puppet.git] / 3rdparty / modules / postgresql / spec / unit / defines / server / config_entry_spec.rb
diff --git a/3rdparty/modules/postgresql/spec/unit/defines/server/config_entry_spec.rb b/3rdparty/modules/postgresql/spec/unit/defines/server/config_entry_spec.rb
new file mode 100644 (file)
index 0000000..34f0c70
--- /dev/null
@@ -0,0 +1,136 @@
+require 'spec_helper'
+
+describe 'postgresql::server::config_entry', :type => :define do
+  let :facts do
+    {
+      :osfamily => 'RedHat',
+      :operatingsystem => 'RedHat',
+      :operatingsystemrelease => '6.4',
+      :kernel => 'Linux',
+      :concat_basedir => tmpfilename('contrib'),
+      :id => 'root',
+      :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
+      :selinux => true,
+    }
+  end
+
+  let(:title) { 'config_entry'}
+
+  let :target do
+    tmpfilename('postgresql_conf')
+  end
+
+  let :pre_condition do
+    "class {'postgresql::server':}"
+  end
+
+  context "syntax check" do
+    let(:params) { { :ensure => 'present'} }
+    it { is_expected.to contain_postgresql__server__config_entry('config_entry') }
+  end
+
+  context 'ports' do
+    context 'redhat 6' do
+      let :facts do
+        {
+          :osfamily => 'RedHat',
+          :operatingsystem => 'RedHat',
+          :operatingsystemrelease => '6.4',
+          :kernel => 'Linux',
+          :concat_basedir => tmpfilename('contrib'),
+          :id => 'root',
+          :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
+          :selinux => true,
+        }
+      end
+      let(:params) {{ :ensure => 'present', :name => 'port_spec', :value => '5432' }}
+
+      it 'stops postgresql and changes the port' do
+        is_expected.to contain_exec('postgresql_stop_port')
+        is_expected.to contain_augeas('override PGPORT in /etc/sysconfig/pgsql/postgresql')
+      end
+    end
+    context 'redhat 7' do
+      let :facts do
+        {
+          :osfamily => 'RedHat',
+          :operatingsystem => 'RedHat',
+          :operatingsystemrelease => '7.0',
+          :kernel => 'Linux',
+          :concat_basedir => tmpfilename('contrib'),
+          :id => 'root',
+          :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
+          :selinux => true,
+        }
+      end
+      let(:params) {{ :ensure => 'present', :name => 'port_spec', :value => '5432' }}
+
+      it 'stops postgresql and changes the port' do
+        is_expected.to contain_file('systemd-override')
+        is_expected.to contain_exec('restart-systemd')
+      end
+    end
+    context 'fedora 19' do
+      let :facts do
+        {
+          :osfamily => 'RedHat',
+          :operatingsystem => 'Fedora',
+          :operatingsystemrelease => '19',
+          :kernel => 'Linux',
+          :concat_basedir => tmpfilename('contrib'),
+          :id => 'root',
+          :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
+          :selinux => true,
+        }
+      end
+      let(:params) {{ :ensure => 'present', :name => 'port_spec', :value => '5432' }}
+
+      it 'stops postgresql and changes the port' do
+        is_expected.to contain_file('systemd-override')
+        is_expected.to contain_exec('restart-systemd')
+      end
+    end
+  end
+
+  context "data_directory" do
+    let(:params) {{ :ensure => 'present', :name => 'data_directory_spec', :value => '/var/pgsql' }}
+
+    it 'stops postgresql and changes the data directory' do
+      is_expected.to contain_exec('postgresql_data_directory')
+      is_expected.to contain_augeas('override PGDATA in /etc/sysconfig/pgsql/postgresql')
+    end
+  end
+
+  context "passes values through appropriately" do
+    let(:params) {{ :ensure => 'present', :name => 'check_function_bodies', :value => 'off' }}
+
+    it 'with no quotes' do
+      is_expected.to contain_postgresql_conf('check_function_bodies').with({
+        :name  => 'check_function_bodies',
+        :value => 'off' })
+    end
+  end
+
+  context 'unix_socket_directories' do
+    let :facts do
+      {
+        :osfamily => 'RedHat',
+        :operatingsystem => 'RedHat',
+        :operatingsystemrelease => '7.0',
+        :kernel => 'Linux',
+        :concat_basedir => tmpfilename('contrib'),
+        :id => 'root',
+        :path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
+        :selinux => true,
+      }
+    end
+    let(:params) {{ :ensure => 'present', :name => 'unix_socket_directories', :value => '/var/pgsql, /opt/postgresql, /root/' }}
+
+    it 'should restart the server and change unix_socket_directories to the provided list' do
+      is_expected.to contain_postgresql_conf('unix_socket_directories')
+                      .with({ :name => 'unix_socket_directories',
+                              :value => '/var/pgsql, /opt/postgresql, /root/'})
+                      .that_notifies('Class[postgresql::server::service]')
+    end
+  end
+end