summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schmitt <david.schmitt@puppet.com>2017-01-13 13:46:17 +0000
committerGitHub <noreply@github.com>2017-01-13 13:46:17 +0000
commit1b4fb4e641af758dceeb0a4854099e5460700d6f (patch)
treed96aa59e9f7a4b5e088a6a5f8f9db5ebd7d10200
parentb65dd1f45d10e10e45455358aeabb29167990e2c (diff)
parent128d6fe56855ba37698f67314b991a2bfdb7af37 (diff)
Merge pull request #708 from HelenCampbell/hashcompat
Addition of compat hash type for deprecation
-rw-r--r--spec/aliases/hash_spec.rb32
-rw-r--r--spec/fixtures/test/manifests/hash.pp8
-rw-r--r--types/compat/hash.pp2
3 files changed, 42 insertions, 0 deletions
diff --git a/spec/aliases/hash_spec.rb b/spec/aliases/hash_spec.rb
new file mode 100644
index 0000000..e10a04b
--- /dev/null
+++ b/spec/aliases/hash_spec.rb
@@ -0,0 +1,32 @@
+require 'spec_helper'
+
+if Puppet.version.to_f >= 4.5
+ describe 'test::hash', type: :class do
+ describe 'accepts hashes' do
+ [
+ {},
+ {'one' => "two"},
+ {'wan' => 3},
+ {'001' => "helly"},
+ ].each do |value|
+ describe value.inspect do
+ let(:params) {{ value: value }}
+ it { is_expected.to compile }
+ end
+ end
+ end
+ describe 'rejects other values' do
+ [
+ '',
+ 'one',
+ '1',
+ [],
+ ].each do |value|
+ describe value.inspect do
+ let(:params) {{ value: value }}
+ it { is_expected.to compile.and_raise_error(/parameter 'value' expects a Stdlib::Compat::Hash/) }
+ end
+ end
+ end
+ end
+end
diff --git a/spec/fixtures/test/manifests/hash.pp b/spec/fixtures/test/manifests/hash.pp
new file mode 100644
index 0000000..c243570
--- /dev/null
+++ b/spec/fixtures/test/manifests/hash.pp
@@ -0,0 +1,8 @@
+# Class to test the Stdlib::Compat::Hash type alias
+class test::hash(
+ Stdlib::Compat::Hash $value,
+ ) {
+
+ notice("Success")
+
+}
diff --git a/types/compat/hash.pp b/types/compat/hash.pp
new file mode 100644
index 0000000..e84a10b
--- /dev/null
+++ b/types/compat/hash.pp
@@ -0,0 +1,2 @@
+# Emulate the is_hash and validate_hash functions
+type Stdlib::Compat::Hash = Hash[Any, Any]