1 #! /usr/bin/env ruby -S rspec
4 describe "the num2bool function" do
5 let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
8 expect(Puppet::Parser::Functions.function("num2bool")).to eq("function_num2bool")
11 it "should raise a ParseError if there are no arguments" do
12 expect { scope.function_num2bool([]) }.to( raise_error(Puppet::ParseError))
15 it "should raise a ParseError if there are more than 1 arguments" do
16 expect { scope.function_num2bool(["foo","bar"]) }.to( raise_error(Puppet::ParseError))
19 it "should raise a ParseError if passed something non-numeric" do
20 expect { scope.function_num2bool(["xyzzy"]) }.to( raise_error(Puppet::ParseError))
23 it "should return true if passed string 1" do
24 result = scope.function_num2bool(["1"])
25 expect(result).to(be_truthy)
28 it "should return true if passed string 1.5" do
29 result = scope.function_num2bool(["1.5"])
30 expect(result).to(be_truthy)
33 it "should return true if passed number 1" do
34 result = scope.function_num2bool([1])
35 expect(result).to(be_truthy)
38 it "should return false if passed string 0" do
39 result = scope.function_num2bool(["0"])
40 expect(result).to(be_falsey)
43 it "should return false if passed number 0" do
44 result = scope.function_num2bool([0])
45 expect(result).to(be_falsey)
48 it "should return false if passed string -1" do
49 result = scope.function_num2bool(["-1"])
50 expect(result).to(be_falsey)
53 it "should return false if passed string -1.5" do
54 result = scope.function_num2bool(["-1.5"])
55 expect(result).to(be_falsey)
58 it "should return false if passed number -1" do
59 result = scope.function_num2bool([-1])
60 expect(result).to(be_falsey)
63 it "should return false if passed float -1.5" do
64 result = scope.function_num2bool([-1.5])
65 expect(result).to(be_falsey)