Add systemd module, required by rabbitmq
[mirror/dsa-puppet.git] / 3rdparty / modules / systemd / spec / defines / dropin_file_spec.rb
diff --git a/3rdparty/modules/systemd/spec/defines/dropin_file_spec.rb b/3rdparty/modules/systemd/spec/defines/dropin_file_spec.rb
new file mode 100644 (file)
index 0000000..a4e8745
--- /dev/null
@@ -0,0 +1,71 @@
+require 'spec_helper'
+
+describe 'systemd::dropin_file' do
+  context 'supported operating systems' do
+    on_supported_os.each do |os, facts|
+      context "on #{os}" do
+        let(:facts) { facts }
+
+        let(:title) { 'test.conf' }
+
+        let(:params) {{
+          :unit    => 'test.service',
+          :content => 'random stuff'
+        }}
+
+        it { is_expected.to compile.with_all_deps }
+
+        it { is_expected.to create_file("/etc/systemd/system/#{params[:unit]}.d").with(
+          :ensure  => 'directory',
+        ) }
+
+        it { is_expected.to create_file("/etc/systemd/system/#{params[:unit]}.d/#{title}").with(
+          :ensure  => 'file',
+          :content => /#{params[:content]}/,
+          :mode    => '0444'
+        ) }
+
+        it { is_expected.to create_file("/etc/systemd/system/#{params[:unit]}.d/#{title}").that_notifies('Class[systemd::systemctl::daemon_reload]') }
+
+        context 'with a bad unit type' do
+          let(:title) { 'test.badtype' }
+
+          it {
+            expect{
+              is_expected.to compile.with_all_deps
+            }.to raise_error(/expects a match for Systemd::Dropin/)
+          }
+        end
+
+        context 'with another drop-in file with the same filename (and content)' do
+          let(:default_params) {{
+            :filename => 'longer-timeout.conf',
+            :content  => 'random stuff'
+          }}
+          # Create drop-in file longer-timeout.conf for unit httpd.service
+          let :pre_condition do
+            "systemd::dropin_file { 'httpd_longer-timeout':
+              filename => '#{default_params[:filename]}',
+              unit     => 'httpd.service',
+              content  => '#{default_params[:context]}',
+            }"
+          end
+          #
+          # Create drop-in file longer-timeout.conf for unit ftp.service
+          let (:title) {'ftp_longer-timeout'}
+          let :params do
+            default_params.merge({
+              :unit     => 'ftp.service'
+            })
+          end
+
+          it { is_expected.to create_file("/etc/systemd/system/#{params[:unit]}.d/#{params[:filename]}").with(
+            :ensure  => 'file',
+            :content => /#{params[:content]}/,
+            :mode    => '0444'
+          ) }
+        end
+      end
+    end
+  end
+end