newer pg module
[mirror/dsa-puppet.git] / 3rdparty / modules / postgresql / spec / unit / defines / validate_db_connection_spec.rb
index 76bcfcb..c7406dc 100644 (file)
@@ -3,20 +3,70 @@ require 'spec_helper'
 describe 'postgresql::validate_db_connection', :type => :define do
   let :facts do
     {
-      :postgres_default_version => '8.4',
       :osfamily => 'Debian',
+      :operatingsystem => 'Debian',
+      :operatingsystemrelease => '6.0',
     }
   end
+
   let :title do
     'test'
   end
-  let :params do
-    {
-      :database_host => 'test',
-      :database_name => 'test',
-      :database_password => 'test',
-      :database_username => 'test',
-    }
+
+  describe 'should work with only default parameters' do
+    it { is_expected.to contain_postgresql__validate_db_connection('test') }
+  end
+
+  describe 'should work with all parameters' do
+    let :params do
+      {
+        :database_host => 'test',
+        :database_name => 'test',
+        :database_password => 'test',
+        :database_username => 'test',
+        :database_port => 5432,
+        :run_as => 'postgresq',
+        :sleep => 4,
+        :tries => 30,
+      }
+    end
+    it { is_expected.to contain_postgresql__validate_db_connection('test') }
+
+    it 'should have proper path for validate command' do
+      is_expected.to contain_exec('validate postgres connection for test@test:5432/test').with({
+        :unless => %r'^/usr/local/bin/validate_postgresql_connection.sh\s+\d+'
+      })
+    end
   end
-  it { should include_class("postgresql::params") }
+
+  describe 'should work while specifying validate_connection in postgresql::client' do
+
+    let :params do
+      {
+        :database_host => 'test',
+        :database_name => 'test',
+        :database_password => 'test',
+        :database_username => 'test',
+        :database_port => 5432
+      }
+    end
+
+    let :pre_condition do
+      <<-EOS
+        class { 'postgresql::globals':
+          module_workdir => '/var/tmp',
+        } ->
+        class { 'postgresql::client': validcon_script_path => '/opt/something/validate.sh' }
+      EOS
+    end 
+
+    it 'should have proper path for validate command and correct cwd' do
+      is_expected.to contain_exec('validate postgres connection for test@test:5432/test').with({
+        :unless => %r'^/opt/something/validate.sh\s+\d+',
+        :cwd    => '/var/tmp',
+      })
+    end
+
+  end
+
 end