diff options
author | Ashley Penney <ashley.penney@puppetlabs.com> | 2014-04-28 14:55:29 -0400 |
---|---|---|
committer | Ashley Penney <ashley.penney@puppetlabs.com> | 2014-04-28 14:55:29 -0400 |
commit | f8bfe46bbfa4a4737cef9a20cfe1bed04aee4bdc (patch) | |
tree | 3f9e8ee134c0ed8375d3e80987c0801971f32736 /spec/acceptance/num2bool_spec.rb | |
parent | 0b59dfe64299abd0c7e9a72dd381341cb9a5c260 (diff) | |
parent | 90222959b14a10c3519c88f74e244b13b07fd78b (diff) | |
download | puppet-stdlib-f8bfe46bbfa4a4737cef9a20cfe1bed04aee4bdc.tar.gz puppet-stdlib-f8bfe46bbfa4a4737cef9a20cfe1bed04aee4bdc.tar.bz2 |
Merge pull request #243 from hunner/add_beaker
Add beaker tests for functions.
Diffstat (limited to 'spec/acceptance/num2bool_spec.rb')
-rw-r--r-- | spec/acceptance/num2bool_spec.rb | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/spec/acceptance/num2bool_spec.rb b/spec/acceptance/num2bool_spec.rb new file mode 100644 index 0000000..cdfbc70 --- /dev/null +++ b/spec/acceptance/num2bool_spec.rb @@ -0,0 +1,75 @@ +require 'spec_helper_acceptance' + +describe 'num2bool function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do + describe 'success' do + it 'bools positive numbers and numeric strings as true' do + pp = <<-EOS + $a = 1 + $b = "1" + $c = "50" + $ao = num2bool($a) + $bo = num2bool($b) + $co = num2bool($c) + notice(inline_template('a is <%= @ao.inspect %>')) + notice(inline_template('b is <%= @bo.inspect %>')) + notice(inline_template('c is <%= @co.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/a is true/) + expect(r.stdout).to match(/b is true/) + expect(r.stdout).to match(/c is true/) + end + end + it 'bools negative numbers as false' do + pp = <<-EOS + $a = 0 + $b = -0.1 + $c = ["-50","1"] + $ao = num2bool($a) + $bo = num2bool($b) + $co = num2bool($c) + notice(inline_template('a is <%= @ao.inspect %>')) + notice(inline_template('b is <%= @bo.inspect %>')) + notice(inline_template('c is <%= @co.inspect %>')) + EOS + + apply_manifest(pp, :catch_failures => true) do |r| + expect(r.stdout).to match(/a is false/) + expect(r.stdout).to match(/b is false/) + expect(r.stdout).to match(/c is false/) + end + end + end + describe 'failure' do + it 'fails on words' do + pp = <<-EOS + $a = "a" + $ao = num2bool($a) + notice(inline_template('a is <%= @ao.inspect %>')) + EOS + expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/not look like a number/) + end + + it 'fails on numberwords' do + pp = <<-EOS + $b = "1b" + $bo = num2bool($b) + notice(inline_template('b is <%= @bo.inspect %>')) + EOS + expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/not look like a number/) + + end + + it 'fails on non-numeric/strings' do + pending "The function will call .to_s.to_i on anything not a Numeric or + String, and results in 0. Is this intended?" + pp = <<-EOS + $c = {"c" => "-50"} + $co = num2bool($c) + notice(inline_template('c is <%= @co.inspect %>')) + EOS + expect(apply_manifest(ppc :expect_failures => true).stderr).to match(/Unable to parse/) + end + end +end |