(maint) Add the behavior for count() with arrays and hashes

Without this patch the expected behavior of the count() function when
dealing with an out of bound array index and with a hash key that does
not exist is implicitly encoded in the spec examples.  This is a problem
because the expected behavior is not clear for something similar to the
following example:

    node default {
      $ary = [ 1, 2, 3 ]
      $ary_undef = $ary[100]
      $hsh = { 'one' => 1 }
      $hsh_undef = $hsh['dne']
      $count = count(['hi', $ary_undef, $hsh_undef])
      notice "Count is ${count}"
    }

This patch addresses the problem by making the expected behavior
explicit in the examples.
This commit is contained in:
Jeff McCune 2013-04-10 14:33:08 -07:00
parent f28550e789
commit 435226abfd

View file

@ -21,7 +21,11 @@ describe "the count function" do
scope.function_count([["1", "2", "2"], "2"]).should(eq(2))
end
it "should not count :undef, nil or empty strings" do
scope.function_count([["foo","bar",:undef,nil,""]]).should(eq(2))
it "should not count nil or empty strings" do
scope.function_count([["foo","bar",nil,""]]).should(eq(2))
end
it 'does not count an undefined hash key or an out of bound array index (which are both :undef)' do
expect(scope.function_count([["foo",:undef,:undef]])).to eq(1)
end
end