3 describe Puppet::Type.type(:concat_file) do
4 let(:resource) { described_class.new(name: '/foo/bar') }
6 describe 'key attributes' do
7 let(:subject) { described_class.key_attributes }
9 it 'contain only :path' do
10 is_expected.to eq([:path])
14 describe 'parameter :path' do
15 it 'does not accept unqualified paths' do
16 expect { resource[:path] = 'foo' }.to raise_error(
17 %r{File paths must be fully qualified},
22 describe 'parameter :owner' do
23 subject { described_class.attrclass(:owner) }
25 it 'inherits Puppet::Type::File::Owner' do
26 is_expected.to be < Puppet::Type::File::Owner
30 describe 'parameter :group' do
31 subject { described_class.attrclass(:group) }
33 it 'inherits Puppet::Type::File::Group' do
34 is_expected.to be < Puppet::Type::File::Group
38 describe 'parameter :mode' do
39 subject { described_class.attrclass(:mode) }
41 it 'inherits Puppet::Type::File::Mode' do
42 is_expected.to be < Puppet::Type::File::Mode
46 describe 'parameter :order' do
47 it 'accepts "alpha" as a value' do
48 resource[:order] = 'alpha'
49 expect(resource[:order]).to eq(:alpha)
52 it 'accepts "numeric" as a value' do
53 resource[:order] = 'numeric'
54 expect(resource[:order]).to eq(:numeric)
57 it 'does not accept "bar" as a value' do
58 expect { resource[:order] = 'bar' }.to raise_error(%r{Invalid value "bar"})
62 describe 'parameter :backup' do
63 it 'accepts true (TrueClass) as a value' do
64 resource[:backup] = true
65 expect(resource[:backup]).to eq(true)
68 it 'accepts false (FalseClass) as a value' do
69 resource[:backup] = false
70 expect(resource[:backup]).to eq(false)
73 it 'accepts "foo" as a value' do
74 resource[:backup] = 'foo'
75 expect(resource[:backup]).to eq('foo')
79 describe 'parameter :selrange' do
80 it_behaves_like 'a parameter that accepts only string values', :selrange
83 describe 'parameter :selrole' do
84 it_behaves_like 'a parameter that accepts only string values', :selrole
87 describe 'parameter :seltype' do
88 it_behaves_like 'a parameter that accepts only string values', :seltype
91 describe 'parameter :seluser' do
92 it_behaves_like 'a parameter that accepts only string values', :seluser
95 describe 'parameter :replace' do
96 it_behaves_like 'Puppet::Parameter::Boolean', :replace
99 describe 'parameter :ensure_newline' do
100 it_behaves_like 'Puppet::Parameter::Boolean', :ensure_newline
103 describe 'parameter :show_diff' do
104 it_behaves_like 'Puppet::Parameter::Boolean', :show_diff
107 describe 'parameter :selinux_ignore_defaults' do
108 it_behaves_like 'Puppet::Parameter::Boolean', :selinux_ignore_defaults
111 describe 'parameter :force' do
112 it_behaves_like 'Puppet::Parameter::Boolean', :force
115 describe 'parameter :format' do
116 it 'accepts "plain" as a value' do
117 resource[:format] = 'plain'
118 expect(resource[:format]).to eq(:plain)
121 it 'accepts "yaml" as a value' do
122 resource[:format] = 'yaml'
123 expect(resource[:format]).to eq(:yaml)
126 it 'accepts "json" as a value' do
127 resource[:format] = 'json'
128 expect(resource[:format]).to eq(:json)
131 it 'accepts "json-array" as a value' do
132 resource[:format] = 'json-array'
133 expect(resource[:format]).to eq(:'json-array')
136 it 'accepts "json-pretty" as a value' do
137 resource[:format] = 'json-pretty'
138 expect(resource[:format]).to eq(:'json-pretty')
141 it 'accepts "json-array-pretty" as a value' do
142 resource[:format] = 'json-array-pretty'
143 expect(resource[:format]).to eq(:'json-array-pretty')
146 it 'does not accept "bar" as a value' do
147 expect { resource[:format] = 'bar' }.to raise_error(%r{Invalid value "bar"})