3 shared_examples 'Puppet::Parameter::Boolean' do |parameter|
4 [true, :true, 'true', :yes, 'yes'].each do |value|
5 it "accepts #{value} (#{value.class}) as a value" do
6 resource[parameter] = value
7 expect(resource[parameter]).to eq(true)
11 [false, :false, 'false', :no, 'no'].each do |value|
12 it "accepts #{value} (#{value.class}) as a value" do
13 resource[parameter] = value
14 expect(resource[parameter]).to eq(false)
18 it 'does not accept "foo" as a value' do
19 expect { resource[parameter] = 'foo' }.to raise_error(%r{Invalid value "foo"})
23 describe Puppet::Type.type(:concat_file) do
24 let(:resource) { described_class.new(name: '/foo/bar') }
26 describe 'key attributes' do
27 let(:subject) { described_class.key_attributes }
29 it 'contain only :path' do
30 is_expected.to eq([:path])
34 describe 'parameter :path' do
35 it 'does not accept unqualified paths' do
36 expect { resource[:path] = 'foo' }.to raise_error(
37 %r{File paths must be fully qualified}
42 describe 'parameter :order' do
43 it 'accepts "alpha" as a value' do
44 resource[:order] = 'alpha'
45 expect(resource[:order]).to eq(:alpha)
48 it 'accepts "numeric" as a value' do
49 resource[:order] = 'numeric'
50 expect(resource[:order]).to eq(:numeric)
53 it 'does not accept "bar" as a value' do
54 expect { resource[:order] = 'bar' }.to raise_error(%r{Invalid value "bar"})
58 describe 'parameter :replace' do
59 it_behaves_like 'Puppet::Parameter::Boolean', :replace
62 describe 'parameter :ensure_newline' do
63 it_behaves_like 'Puppet::Parameter::Boolean', :ensure_newline