From a7c97905e345d5531a1d97d9361c6287ce35243a Mon Sep 17 00:00:00 2001 From: Garrett Honeycutt Date: Mon, 22 Jul 2019 17:30:49 -0400 Subject: [PATCH] (MODULES-9049) Add type alias for 'yes' and 'no'. --- spec/type_aliases/yes_no_spec.rb | 44 ++++++++++++++++++++++++++++++++ types/yes_no.pp | 1 + 2 files changed, 45 insertions(+) create mode 100644 spec/type_aliases/yes_no_spec.rb create mode 100644 types/yes_no.pp diff --git a/spec/type_aliases/yes_no_spec.rb b/spec/type_aliases/yes_no_spec.rb new file mode 100644 index 000000000..9416c6ae2 --- /dev/null +++ b/spec/type_aliases/yes_no_spec.rb @@ -0,0 +1,44 @@ +# coding: utf-8 + +require 'spec_helper' + +describe 'Stdlib::Yes_no' do + describe 'valid types' do + [ + 'yes', + 'no', + 'YES', + 'Yes', + 'NO', + 'No', + ].each do |value| + describe value.inspect do + it { is_expected.to allow_value(value) } + end + end + end + + describe 'invalid types' do + context 'with garbage inputs' do + [ + true, + false, + :keyword, + nil, + ['yes', 'no'], + { 'foo' => 'bar' }, + {}, + '', + 'ネット', + '55555', + '0x123', + 'yess', + 'nooo', + ].each do |value| + describe value.inspect do + it { is_expected.not_to allow_value(value) } + end + end + end + end +end diff --git a/types/yes_no.pp b/types/yes_no.pp new file mode 100644 index 000000000..d87f4eebf --- /dev/null +++ b/types/yes_no.pp @@ -0,0 +1 @@ +type Stdlib::Yes_no = Pattern[/\A(?i:(yes|no))\z/]