Update puppetlabs/stdlib module
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / functions / any2bool_spec.rb
1 require 'spec_helper'
2
3 describe 'any2bool' do
4   it { is_expected.not_to eq(nil) }
5   it { is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{wrong number of arguments}i) }
6
7   it { is_expected.to run.with_params(true).and_return(true) }
8   it { is_expected.to run.with_params(false).and_return(false) }
9
10   it { is_expected.to run.with_params('1.5').and_return(true) }
11
12   describe 'when testing stringy values that mean "true"' do
13     ['TRUE', '1', 't', 'y', 'true', 'yes'].each do |value|
14       it { is_expected.to run.with_params(value).and_return(true) }
15     end
16   end
17
18   describe 'when testing stringy values that mean "false"' do
19     ['FALSE', '', '0', 'f', 'n', 'false', 'no', 'undef', 'undefined', nil, :undef].each do |value|
20       it { is_expected.to run.with_params(value).and_return(false) }
21     end
22   end
23
24   describe 'when testing numeric values that mean "true"' do
25     [1, '1', 1.5, '1.5'].each do |value|
26       it { is_expected.to run.with_params(value).and_return(true) }
27     end
28   end
29
30   describe 'when testing numeric that mean "false"' do
31     [-1, '-1', -1.5, '-1.5', '0', 0].each do |value|
32       it { is_expected.to run.with_params(value).and_return(false) }
33     end
34   end
35
36   describe 'everything else returns true' do
37     [[], {}, ['1'], [1], { :one => 1 }].each do |value|
38       it { is_expected.to run.with_params(value).and_return(true) }
39     end
40   end
41 end