d151d457d98c5016e3e24895fe9915624ee63e26
[mirror/dsa-puppet.git] / 3rdparty / modules / systemd / spec / defines / unit_file_spec.rb
1 require 'spec_helper'
2
3 describe 'systemd::unit_file' do
4   context 'supported operating systems' do
5     on_supported_os.each do |os, facts|
6       context "on #{os}" do
7         let(:facts) { facts }
8
9         let(:title) { 'test.service' }
10
11         let(:params) {{
12           :content => 'random stuff'
13         }}
14
15         it { is_expected.to compile.with_all_deps }
16
17         it { is_expected.to create_file("/etc/systemd/system/#{title}").with(
18           :ensure  => 'file',
19           :content => /#{params[:content]}/,
20           :mode    => '0444'
21         ) }
22
23         it { is_expected.to create_file("/etc/systemd/system/#{title}").that_notifies('Class[systemd::systemctl::daemon_reload]') }
24
25         context 'with a bad unit type' do
26           let(:title) { 'test.badtype' }
27
28           it {
29             expect{
30               is_expected.to compile.with_all_deps
31             }.to raise_error(/expects a match for Systemd::Unit/)
32           }
33         end
34
35         context 'with enable => true and active => true' do
36           let(:params) do
37             super().merge({
38               :enable => true,
39               :active => true
40             })
41           end
42
43           it { is_expected.to contain_service('test.service').with(
44             :ensure   => true,
45             :enable   => true,
46             :provider => 'systemd'
47           ) }
48
49           it { is_expected.to contain_service('test.service').that_subscribes_to("File[/etc/systemd/system/#{title}]") }
50           it { is_expected.to contain_service('test.service').that_requires('Class[systemd::systemctl::daemon_reload]') }
51         end
52       end
53     end
54   end
55 end