summaryrefslogtreecommitdiff
path: root/spec/unit
diff options
context:
space:
mode:
authorKen Barber <ken@bob.sh>2011-07-29 20:57:10 +0100
committerKen Barber <ken@bob.sh>2011-07-29 20:57:10 +0100
commit6827ad804f2eb44839f9a3e99f40f1bb2284f491 (patch)
tree8fe4edeb2dc4090ea05704844ed5287d8c853e69 /spec/unit
parentaa023c1e5d23b2a5a66dbe9a36d0e8765a8d8cff (diff)
(#1) provide some more detailed tests for a number of functions.
Diffstat (limited to 'spec/unit')
-rwxr-xr-xspec/unit/parser/functions/abs_spec.rb7
-rwxr-xr-xspec/unit/parser/functions/downcase_spec.rb5
-rwxr-xr-xspec/unit/parser/functions/empty_spec.rb5
-rwxr-xr-xspec/unit/parser/functions/flatten_spec.rb5
-rw-r--r--spec/unit/parser/functions/is_array_spec.rb5
-rw-r--r--spec/unit/parser/functions/is_float_spec.rb2
-rw-r--r--spec/unit/parser/functions/num2bool_spec.rb7
-rw-r--r--spec/unit/parser/functions/shuffle_spec.rb10
-rw-r--r--spec/unit/parser/functions/strftime_spec.rb15
-rw-r--r--spec/unit/parser/functions/time_spec.rb15
-rw-r--r--spec/unit/parser/functions/type_spec.rb12
11 files changed, 84 insertions, 4 deletions
diff --git a/spec/unit/parser/functions/abs_spec.rb b/spec/unit/parser/functions/abs_spec.rb
index 6bf0b41..65ba2e8 100755
--- a/spec/unit/parser/functions/abs_spec.rb
+++ b/spec/unit/parser/functions/abs_spec.rb
@@ -19,8 +19,13 @@ describe "the abs function" do
end
it "should convert a negative number into a positive" do
- result = @scope.function_abs([-34])
+ result = @scope.function_abs(["-34"])
result.should(eq(34))
end
+ it "should do nothing with a positive number" do
+ result = @scope.function_abs(["5678"])
+ result.should(eq(5678))
+ end
+
end
diff --git a/spec/unit/parser/functions/downcase_spec.rb b/spec/unit/parser/functions/downcase_spec.rb
index 0d53220..0bccd5f 100755
--- a/spec/unit/parser/functions/downcase_spec.rb
+++ b/spec/unit/parser/functions/downcase_spec.rb
@@ -23,4 +23,9 @@ describe "the downcase function" do
result.should(eq("asfd"))
end
+ it "should do nothing to a string that is already downcase" do
+ result = @scope.function_downcase(["asdf asdf"])
+ result.should(eq("asdf asdf"))
+ end
+
end
diff --git a/spec/unit/parser/functions/empty_spec.rb b/spec/unit/parser/functions/empty_spec.rb
index 6c0fe69..cb0021f 100755
--- a/spec/unit/parser/functions/empty_spec.rb
+++ b/spec/unit/parser/functions/empty_spec.rb
@@ -23,4 +23,9 @@ describe "the empty function" do
result.should(eq(true))
end
+ it "should return a false for a non-empty string" do
+ result = @scope.function_empty(['asdf'])
+ result.should(eq(false))
+ end
+
end
diff --git a/spec/unit/parser/functions/flatten_spec.rb b/spec/unit/parser/functions/flatten_spec.rb
index 91cf4ef..7bedeb2 100755
--- a/spec/unit/parser/functions/flatten_spec.rb
+++ b/spec/unit/parser/functions/flatten_spec.rb
@@ -23,4 +23,9 @@ describe "the flatten function" do
result.should(eq(["a","b","c","d","e","f","g"]))
end
+ it "should do nothing to a structure that is already flat" do
+ result = @scope.function_flatten([["a","b","c","d"]])
+ result.should(eq(["a","b","c","d"]))
+ end
+
end
diff --git a/spec/unit/parser/functions/is_array_spec.rb b/spec/unit/parser/functions/is_array_spec.rb
index 15b563c..537595c 100644
--- a/spec/unit/parser/functions/is_array_spec.rb
+++ b/spec/unit/parser/functions/is_array_spec.rb
@@ -28,4 +28,9 @@ describe "the is_array function" do
result.should(eq(false))
end
+ it "should return false if passed a string" do
+ result = @scope.function_is_array(["asdf"])
+ result.should(eq(false))
+ end
+
end
diff --git a/spec/unit/parser/functions/is_float_spec.rb b/spec/unit/parser/functions/is_float_spec.rb
index 35c0dd6..55ba8cf 100644
--- a/spec/unit/parser/functions/is_float_spec.rb
+++ b/spec/unit/parser/functions/is_float_spec.rb
@@ -28,7 +28,7 @@ describe "the is_float function" do
result.should(eq(false))
end
- it "should return false if not an integer" do
+ it "should return false if an integer" do
result = @scope.function_is_float(["3"])
result.should(eq(false))
end
diff --git a/spec/unit/parser/functions/num2bool_spec.rb b/spec/unit/parser/functions/num2bool_spec.rb
index 2f6435d..6585273 100644
--- a/spec/unit/parser/functions/num2bool_spec.rb
+++ b/spec/unit/parser/functions/num2bool_spec.rb
@@ -20,7 +20,12 @@ describe "the num2bool function" do
it "should return true if 1" do
result = @scope.function_num2bool(["1"])
- result.should(eq(true))
+ result.should(be_true)
+ end
+
+ it "should return false if 0" do
+ result = @scope.function_num2bool(["0"])
+ result.should(be_false)
end
end
diff --git a/spec/unit/parser/functions/shuffle_spec.rb b/spec/unit/parser/functions/shuffle_spec.rb
index cf063c6..936c2fd 100644
--- a/spec/unit/parser/functions/shuffle_spec.rb
+++ b/spec/unit/parser/functions/shuffle_spec.rb
@@ -18,4 +18,14 @@ describe "the shuffle function" do
lambda { @scope.function_shuffle([]) }.should( raise_error(Puppet::ParseError))
end
+ it "should shuffle a string and the result should be the same size" do
+ result = @scope.function_shuffle(["asdf"])
+ result.size.should(eq(4))
+ end
+
+ it "should shuffle a string but the sorted contents should still be the same" do
+ result = @scope.function_shuffle(["adfs"])
+ result.split("").sort.to_s.should(eq("adfs"))
+ end
+
end
diff --git a/spec/unit/parser/functions/strftime_spec.rb b/spec/unit/parser/functions/strftime_spec.rb
index e377954..f7a2cd9 100644
--- a/spec/unit/parser/functions/strftime_spec.rb
+++ b/spec/unit/parser/functions/strftime_spec.rb
@@ -18,4 +18,19 @@ describe "the strftime function" do
lambda { @scope.function_strftime([]) }.should( raise_error(Puppet::ParseError))
end
+ it "using %s should be higher then when I wrote this test" do
+ result = @scope.function_strftime(["%s"])
+ result.to_i.should(be > 1311953157)
+ end
+
+ it "using %s should be lower then 1.5 trillion" do
+ result = @scope.function_strftime(["%s"])
+ result.to_i.should(be < 1500000000)
+ end
+
+ it "should return a date when given %Y-%m-%d" do
+ result = @scope.function_strftime(["%Y-%m-%d"])
+ result.should =~ /^\d{4}-\d{2}-\d{2}$/
+ end
+
end
diff --git a/spec/unit/parser/functions/time_spec.rb b/spec/unit/parser/functions/time_spec.rb
index 8bf5982..666e8e0 100644
--- a/spec/unit/parser/functions/time_spec.rb
+++ b/spec/unit/parser/functions/time_spec.rb
@@ -18,4 +18,19 @@ describe "the time function" do
lambda { @scope.function_time(['','']) }.should( raise_error(Puppet::ParseError))
end
+ it "should return a number" do
+ result = @scope.function_time([])
+ result.class.should(eq(Fixnum))
+ end
+
+ it "should be higher then when I wrote this test" do
+ result = @scope.function_time([])
+ result.should(be > 1311953157)
+ end
+
+ it "should be lower then 1.5 trillion" do
+ result = @scope.function_time([])
+ result.should(be < 1500000000)
+ end
+
end
diff --git a/spec/unit/parser/functions/type_spec.rb b/spec/unit/parser/functions/type_spec.rb
index fddb87d..36c3823 100644
--- a/spec/unit/parser/functions/type_spec.rb
+++ b/spec/unit/parser/functions/type_spec.rb
@@ -18,9 +18,19 @@ describe "the type function" do
lambda { @scope.function_type([]) }.should( raise_error(Puppet::ParseError))
end
- it "should return a type when given a string" do
+ it "should return String when given a string" do
result = @scope.function_type(["aaabbbbcccc"])
result.should(eq('String'))
end
+ it "should return Array when given an array" do
+ result = @scope.function_type([["aaabbbbcccc","asdf"]])
+ result.should(eq('Array'))
+ end
+
+ it "should return Hash when given a hash" do
+ result = @scope.function_type([{"a"=>1,"b"=>2}])
+ result.should(eq('Hash'))
+ end
+
end