Update concat
[mirror/dsa-puppet.git] / 3rdparty / modules / concat / spec / unit / type / concat_file_spec.rb
diff --git a/3rdparty/modules/concat/spec/unit/type/concat_file_spec.rb b/3rdparty/modules/concat/spec/unit/type/concat_file_spec.rb
new file mode 100644 (file)
index 0000000..ee6992b
--- /dev/null
@@ -0,0 +1,65 @@
+require 'spec_helper'
+
+shared_examples 'Puppet::Parameter::Boolean' do |parameter|
+  [true, :true, 'true', :yes, 'yes'].each do |value|
+    it "accepts #{value} (#{value.class}) as a value" do
+      resource[parameter] = value
+      expect(resource[parameter]).to eq(true)
+    end
+  end
+
+  [false, :false, 'false', :no, 'no'].each do |value|
+    it "accepts #{value} (#{value.class}) as a value" do
+      resource[parameter] = value
+      expect(resource[parameter]).to eq(false)
+    end
+  end
+
+  it 'does not accept "foo" as a value' do
+    expect { resource[parameter] = 'foo' }.to raise_error(%r{Invalid value "foo"})
+  end
+end
+
+describe Puppet::Type.type(:concat_file) do
+  let(:resource) { described_class.new(name: '/foo/bar') }
+
+  describe 'key attributes' do
+    let(:subject) { described_class.key_attributes }
+
+    it 'contain only :path' do
+      is_expected.to eq([:path])
+    end
+  end
+
+  describe 'parameter :path' do
+    it 'does not accept unqualified paths' do
+      expect { resource[:path] = 'foo' }.to raise_error(
+        %r{File paths must be fully qualified}
+      )
+    end
+  end
+
+  describe 'parameter :order' do
+    it 'accepts "alpha" as a value' do
+      resource[:order] = 'alpha'
+      expect(resource[:order]).to eq(:alpha)
+    end
+
+    it 'accepts "numeric" as a value' do
+      resource[:order] = 'numeric'
+      expect(resource[:order]).to eq(:numeric)
+    end
+
+    it 'does not accept "bar" as a value' do
+      expect { resource[:order] = 'bar' }.to raise_error(%r{Invalid value "bar"})
+    end
+  end
+
+  describe 'parameter :replace' do
+    it_behaves_like 'Puppet::Parameter::Boolean', :replace
+  end
+
+  describe 'parameter :ensure_newline' do
+    it_behaves_like 'Puppet::Parameter::Boolean', :ensure_newline
+  end
+end