summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2012-01-11 17:48:30 -0800
committerJeff McCune <jeff@puppetlabs.com>2012-01-11 17:48:30 -0800
commitdc674419ae2e59e28157358b1a7329401ece12ee (patch)
tree04b37f8f26ddca2b8791e9994268a56f8195c92e
parentb082094599f4cd26c9cb0c67ae44880b0dc02407 (diff)
parentb7a59a80954fdfd9923a0cd560374591e24f00b1 (diff)
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'
-rw-r--r--spec/unit/puppet/parser/functions/keys_spec.rb13
-rw-r--r--spec/unit/puppet/parser/functions/values_spec.rb21
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