-#! /usr/bin/env ruby -S rspec
require 'spec_helper_acceptance'
-describe 'validate_hash function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do
+describe 'validate_hash function' do
describe 'success' do
- it 'validates a single argument' do
- pp = <<-EOS
+ pp1 = <<-DOC
$one = { 'a' => 1 }
validate_hash($one)
- EOS
-
- apply_manifest(pp, :catch_failures => true)
+ DOC
+ it 'validates a single argument' do
+ apply_manifest(pp1, :catch_failures => true)
end
- it 'validates an multiple arguments' do
- pp = <<-EOS
+
+ pp2 = <<-DOC
$one = { 'a' => 1 }
$two = { 'b' => 2 }
validate_hash($one,$two)
- EOS
-
- apply_manifest(pp, :catch_failures => true)
+ DOC
+ it 'validates an multiple arguments' do
+ apply_manifest(pp2, :catch_failures => true)
end
- it 'validates a non-hash' do
- {
- %{validate_hash('{ "not" => "hash" }')} => "String",
- %{validate_hash('string')} => "String",
- %{validate_hash(["array"])} => "Array",
- %{validate_hash(undef)} => "String",
- }.each do |pp,type|
- expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/a #{type}/)
+
+ [
+ %{validate_hash('{ "not" => "hash" }')},
+ %{validate_hash('string')},
+ %{validate_hash(["array"])},
+ %{validate_hash(undef)},
+ ].each do |pp3|
+ it "rejects #{pp3.inspect}" do
+ expect(apply_manifest(pp3, :expect_failures => true).stderr).to match(%r{})
end
end
end