Skip to content

Commit fde64f3

Browse files
committed
(#1) - fleshed out some more tests.
1 parent 07ee334 commit fde64f3

27 files changed

+195
-6
lines changed

lib/puppet/parser/functions/sort.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ module Puppet::Parser::Functions
77
EOS
88
) do |arguments|
99

10-
if (arguments.size != 0) then
10+
if (arguments.size != 1) then
1111
raise(Puppet::ParseError, "sort(): Wrong number of arguments "+
12-
"given #{arguments.size} for 0")
12+
"given #{arguments.size} for 1")
1313
end
1414

15+
arguments[0].sort
16+
1517
end
1618
end
1719

lib/puppet/parser/functions/squeeze.rb

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,26 @@ module Puppet::Parser::Functions
77
EOS
88
) do |arguments|
99

10-
if (arguments.size != 2) then
10+
if ((arguments.size != 2) and (arguments.size != 1)) then
1111
raise(Puppet::ParseError, "squeeze(): Wrong number of arguments "+
12-
"given #{arguments.size} for 2")
12+
"given #{arguments.size} for 2 or 1")
13+
end
14+
15+
item = arguments[0]
16+
squeezeval = arguments[1]
17+
18+
if item.is_a?(Array) then
19+
if squeezeval then
20+
item.collect { |i| i.squeeze(squeezeval) }
21+
else
22+
item.collect { |i| i.squeeze }
23+
end
24+
else
25+
if squeezeval then
26+
item.squeeze(squeezeval)
27+
else
28+
item.squeeze
29+
end
1330
end
1431

1532
end

spec/unit/parser/functions/is_valid_domain_name_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_is_valid_domain_name([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return true if a valid domain name" do
22+
result = @scope.function_is_valid_domain_name("foo.bar.com")
23+
result.should(eq(true))
24+
end
25+
26+
it "should return false if not a valid domain name" do
27+
result = @scope.function_is_valid_domain_name("not valid")
28+
result.should(eq(false))
29+
end
30+
2131
end

spec/unit/parser/functions/is_valid_ip_address_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_is_valid_ip_address([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return true if an IP address" do
22+
result = @scope.function_is_valid_ip_address("1.2.3.4")
23+
result.should(eq(true))
24+
end
25+
26+
it "should return false if not valid" do
27+
result = @scope.function_is_valid_ip_address("asdf")
28+
result.should(eq(false))
29+
end
30+
2131
end

spec/unit/parser/functions/is_valid_mac_address_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_is_valid_mac_address([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return true if a valid mac address" do
22+
result = @scope.function_is_valid_mac_address("00:a0:1f:12:7f:a0")
23+
result.should(eq(true))
24+
end
25+
26+
it "should return false if not valid" do
27+
result = @scope.function_is_valid_mac_address("not valid")
28+
result.should(eq(false))
29+
end
30+
2131
end

spec/unit/parser/functions/join_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_join([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should join an array into a string" do
22+
result = @scope.function_join([["a","b","c"], ":"])
23+
result.should(eq("a:b:c"))
24+
end
25+
2126
end

spec/unit/parser/functions/join_with_prefix_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_join_with_prefix([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should join an array into a string" do
22+
result = @scope.function_join_with_prefix([["a","b","c"], ":", "p"])
23+
result.should(eq("pa:pb:pc"))
24+
end
25+
2126
end

spec/unit/parser/functions/keys_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_keys([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return an array of keys when given a hash" do
22+
result = @scope.function_keys([{'a'=>1, 'b' => 2}])
23+
result.should(eq(['a','b']))
24+
end
25+
2126
end

spec/unit/parser/functions/lstrip_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_lstrip([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should lstrip a string" do
22+
result = @scope.function_lstrip([" asdf"])
23+
result.should(eq('asdf'))
24+
end
25+
2126
end

spec/unit/parser/functions/member_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_member([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return true if a member is in an array" do
22+
result = @scope.function_member([["a","b","c"], "a"])
23+
result.should(eq(true))
24+
end
25+
26+
it "should return false if a member is not in an array" do
27+
result = @scope.function_member([["a","b","c"], "d"])
28+
result.should(eq(false))
29+
end
30+
2131
end

spec/unit/parser/functions/num2bool_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_num2bool([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return true if 1" do
22+
result = @scope.function_num2bool(["1"])
23+
result.should(eq(true))
24+
end
25+
2126
end

spec/unit/parser/functions/prefix_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_prefix([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return a prefixed array" do
22+
result = @scope.function_prefix([['a','b','c'], 'p'])
23+
result.should(eq(['pa','pb','pc']))
24+
end
25+
2126
end

spec/unit/parser/functions/range_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_range([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return a letter range" do
22+
result = @scope.function_range(["a","d"])
23+
result.should(eq(['a','b','c','d']))
24+
end
25+
26+
it "should return a number range" do
27+
result = @scope.function_range(["1","4"])
28+
result.should(eq([1,2,3,4]))
29+
end
30+
2131
end

spec/unit/parser/functions/reverse_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_reverse([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should reverse a string" do
22+
result = @scope.function_reverse(["asdfghijkl"])
23+
result.should(eq('lkjihgfdsa'))
24+
end
25+
2126
end

spec/unit/parser/functions/rstrip_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_rstrip([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should rstrip a string" do
22+
result = @scope.function_rstrip(["asdf "])
23+
result.should(eq('asdf'))
24+
end
25+
26+
it "should rstrip each element in an array" do
27+
result = @scope.function_rstrip([["a ","b ", "c "]])
28+
result.should(eq(['a','b','c']))
29+
end
30+
2131
end

spec/unit/parser/functions/size_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_size([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return the size of a string" do
22+
result = @scope.function_size(["asdf"])
23+
result.should(eq(4))
24+
end
25+
26+
it "should return the size of an array" do
27+
result = @scope.function_size([["a","b","c"]])
28+
result.should(eq(3))
29+
end
30+
2131
end

spec/unit/parser/functions/sort_spec.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,13 @@
1414
Puppet::Parser::Functions.function("sort").should == "function_sort"
1515
end
1616

17-
it "should raise a ParseError if there is not 0 arguments" do
18-
lambda { @scope.function_sort(['']) }.should( raise_error(Puppet::ParseError))
17+
it "should raise a ParseError if there is not 1 arguments" do
18+
lambda { @scope.function_sort(['','']) }.should( raise_error(Puppet::ParseError))
19+
end
20+
21+
it "should sort an array" do
22+
result = @scope.function_sort([["a","c","b"]])
23+
result.should(eq(['a','b','c']))
1924
end
2025

2126
end

spec/unit/parser/functions/squeeze_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_squeeze([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should squeeze a string" do
22+
result = @scope.function_squeeze(["aaabbbbcccc"])
23+
result.should(eq('abc'))
24+
end
25+
26+
it "should squeeze all elements in an array" do
27+
result = @scope.function_squeeze([["aaabbbbcccc","dddfff"]])
28+
result.should(eq(['abc','df']))
29+
end
30+
2131
end

spec/unit/parser/functions/str2bool_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,14 @@
1818
lambda { @scope.function_str2bool([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should convert string 'true' to true" do
22+
result = @scope.function_str2bool(["true"])
23+
result.should(eq(true))
24+
end
25+
26+
it "should convert string 'undef' to false" do
27+
result = @scope.function_str2bool(["undef"])
28+
result.should(eq(false))
29+
end
30+
2131
end

spec/unit/parser/functions/strip_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_strip([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should strip a string" do
22+
result = @scope.function_strip([" ab cd "])
23+
result.should(eq('ab cd'))
24+
end
25+
2126
end

spec/unit/parser/functions/swapcase_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_swapcase([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should swapcase a string" do
22+
result = @scope.function_swapcase(["aaBBccDD"])
23+
result.should(eq('AAbbCCdd'))
24+
end
25+
2126
end

spec/unit/parser/functions/type_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_type([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return a type when given a string" do
22+
result = @scope.function_type(["aaabbbbcccc"])
23+
result.should(eq('String'))
24+
end
25+
2126
end

spec/unit/parser/functions/unique_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_unique([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should remove duplicate elements in a string" do
22+
result = @scope.function_squeeze([["aabbc"]])
23+
result.should(eq(['abc']))
24+
end
25+
2126
end

spec/unit/parser/functions/upcase_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_upcase([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should upcase a string" do
22+
result = @scope.function_upcase(["abc"])
23+
result.should(eq('ABC'))
24+
end
25+
2126
end

spec/unit/parser/functions/values_at_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_values_at([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return a value at from an array" do
22+
result = @scope.function_values_at([['a','b','c'],"1"])
23+
result.should(eq(['b']))
24+
end
25+
2126
end

spec/unit/parser/functions/values_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_values([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should return values from a hash" do
22+
result = @scope.function_values([{'a'=>'1','b'=>'2','c'=>'3'}])
23+
result.should(eq(['1','2','3']))
24+
end
25+
2126
end

spec/unit/parser/functions/zip_spec.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,9 @@
1818
lambda { @scope.function_zip([]) }.should( raise_error(Puppet::ParseError))
1919
end
2020

21+
it "should be able to zip an array" do
22+
result = @scope.function_zip([['1','2','3'],['4','5','6']])
23+
result.should(eq([["1", "4"], ["2", "5"], ["3", "6"]]))
24+
end
25+
2126
end

0 commit comments

Comments
 (0)