diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2012-01-11 17:48:30 -0800 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2012-01-11 17:48:30 -0800 |
commit | dc674419ae2e59e28157358b1a7329401ece12ee (patch) | |
tree | 04b37f8f26ddca2b8791e9994268a56f8195c92e /spec/unit/puppet/parser/functions | |
parent | b082094599f4cd26c9cb0c67ae44880b0dc02407 (diff) | |
parent | b7a59a80954fdfd9923a0cd560374591e24f00b1 (diff) | |
download | puppet-stdlib-dc674419ae2e59e28157358b1a7329401ece12ee.tar.gz puppet-stdlib-dc674419ae2e59e28157358b1a7329401ece12ee.tar.bz2 |
Merge branch 'ticket/2.2.x/11901-rspec_sort_order' into 2.2.x
* ticket/2.2.x/11901-rspec_sort_order:
(#11901) Fix sort order error in tests for 'keys' and 'values'
Diffstat (limited to 'spec/unit/puppet/parser/functions')
-rw-r--r-- | spec/unit/puppet/parser/functions/keys_spec.rb | 13 | ||||
-rw-r--r-- | spec/unit/puppet/parser/functions/values_spec.rb | 21 |
2 files changed, 19 insertions, 15 deletions
diff --git a/spec/unit/puppet/parser/functions/keys_spec.rb b/spec/unit/puppet/parser/functions/keys_spec.rb index 927be96..d928562 100644 --- a/spec/unit/puppet/parser/functions/keys_spec.rb +++ b/spec/unit/puppet/parser/functions/keys_spec.rb @@ -6,21 +6,20 @@ describe "the keys function" do Puppet::Parser::Functions.autoloader.loadall end - before :each do - @scope = Puppet::Parser::Scope.new - end + let(:scope) { Puppet::Parser::Scope.new } it "should exist" do Puppet::Parser::Functions.function("keys").should == "function_keys" end it "should raise a ParseError if there is less than 1 arguments" do - lambda { @scope.function_keys([]) }.should( raise_error(Puppet::ParseError)) + lambda { scope.function_keys([]) }.should( raise_error(Puppet::ParseError)) end it "should return an array of keys when given a hash" do - result = @scope.function_keys([{'a'=>1, 'b' => 2}]) - result.should(eq(['a','b'])) + result = scope.function_keys([{'a'=>1, 'b'=>2}]) + # =~ performs 'array with same elements' (set) matching + # For more info see RSpec::Matchers::MatchArray + result.should =~ ['a','b'] end - end diff --git a/spec/unit/puppet/parser/functions/values_spec.rb b/spec/unit/puppet/parser/functions/values_spec.rb index f6eb5b6..a5fbbd8 100644 --- a/spec/unit/puppet/parser/functions/values_spec.rb +++ b/spec/unit/puppet/parser/functions/values_spec.rb @@ -6,25 +6,30 @@ describe "the values function" do Puppet::Parser::Functions.autoloader.loadall end - before :each do - @scope = Puppet::Parser::Scope.new - end + let(:scope) { Puppet::Parser::Scope.new } it "should exist" do Puppet::Parser::Functions.function("values").should == "function_values" end it "should raise a ParseError if there is less than 1 arguments" do - lambda { @scope.function_values([]) }.should( raise_error(Puppet::ParseError)) + lambda { scope.function_values([]) }.should( raise_error(Puppet::ParseError)) end it "should return values from a hash" do - result = @scope.function_values([{'a'=>'1','b'=>'2','c'=>'3'}]) - result.should(eq(['1','2','3'])) + result = scope.function_values([{'a'=>'1','b'=>'2','c'=>'3'}]) + # =~ is the RSpec::Matchers::MatchArray matcher. + # A.K.A. "array with same elements" (multiset) matching + result.should =~ %w{ 1 2 3 } end - it "should return values from a hash" do - lambda { @scope.function_values([['a','b','c']]) }.should( raise_error(Puppet::ParseError)) + it "should return a multiset" do + result = scope.function_values([{'a'=>'1','b'=>'3','c'=>'3'}]) + result.should =~ %w{ 1 3 3 } + result.should_not =~ %w{ 1 3 } end + it "should raise a ParseError unless a Hash is provided" do + lambda { scope.function_values([['a','b','c']]) }.should( raise_error(Puppet::ParseError)) + end end |