Suggest different variables to use if we want to tunnel both v4 and v6
[mirror/dsa-puppet.git] / 3rdparty / modules / concat / spec / unit / type / concat_file_spec.rb
1 require 'spec_helper'
2
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)
8     end
9   end
10
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)
15     end
16   end
17
18   it 'does not accept "foo" as a value' do
19     expect { resource[parameter] = 'foo' }.to raise_error(%r{Invalid value "foo"})
20   end
21 end
22
23 describe Puppet::Type.type(:concat_file) do
24   let(:resource) { described_class.new(name: '/foo/bar') }
25
26   describe 'key attributes' do
27     let(:subject) { described_class.key_attributes }
28
29     it 'contain only :path' do
30       is_expected.to eq([:path])
31     end
32   end
33
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}
38       )
39     end
40   end
41
42   describe 'parameter :order' do
43     it 'accepts "alpha" as a value' do
44       resource[:order] = 'alpha'
45       expect(resource[:order]).to eq(:alpha)
46     end
47
48     it 'accepts "numeric" as a value' do
49       resource[:order] = 'numeric'
50       expect(resource[:order]).to eq(:numeric)
51     end
52
53     it 'does not accept "bar" as a value' do
54       expect { resource[:order] = 'bar' }.to raise_error(%r{Invalid value "bar"})
55     end
56   end
57
58   describe 'parameter :replace' do
59     it_behaves_like 'Puppet::Parameter::Boolean', :replace
60   end
61
62   describe 'parameter :ensure_newline' do
63     it_behaves_like 'Puppet::Parameter::Boolean', :ensure_newline
64   end
65 end