This change will effect all the properties implemented with list.rb (groups, roles, auths, profiles). The change will match [] values for should as insync when none exist. (so no more log message)
Signed-off-by: Andrew Shafer <[email protected]> --- lib/puppet/property/list.rb | 6 +++--- spec/unit/property/list.rb | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/puppet/property/list.rb b/lib/puppet/property/list.rb index b7db8b4..31af76b 100644 --- a/lib/puppet/property/list.rb +++ b/lib/puppet/property/list.rb @@ -65,10 +65,10 @@ module Puppet end def prepare_is_for_comparison(is) - if is.is_a? Array - is = dearrayify(is) + if is == :absent + is = [] end - is + dearrayify(is) end def insync?(is) diff --git a/spec/unit/property/list.rb b/spec/unit/property/list.rb index 854ab48..84d1447 100644 --- a/spec/unit/property/list.rb +++ b/spec/unit/property/list.rb @@ -118,14 +118,14 @@ describe list_class do end end - describe "when calling insync?" do + describe "when calling insync?" do it "should return true unless @should is defined and not nil" do - @property.insync?("foo") == true + @property.must be_insync("foo") end it "should return true unless the passed in values is not nil" do @property.should = "foo" - @property.insync?(nil) == true + @property.must be_insync(nil) end it "should call prepare_is_for_comparison with value passed in and should" do @@ -135,16 +135,22 @@ describe list_class do @property.insync?("bar") end - it "should return true if prepared value == should value" do + it "should return true if 'is' value is array of comma delimited should values" do @property.should = "bar,foo" @property.expects(:inclusive?).returns(true) - @property.insync?(["bar","foo"]).must == true + @property.must be_insync(["bar","foo"]) + end + + it "should return true if 'is' value is :absent and should value is empty string" do + @property.should = "" + @property.expects(:inclusive?).returns(true) + @property.must be_insync([]) end it "should return false if prepared value != should value" do @property.should = "bar,baz,foo" @property.expects(:inclusive?).returns(true) - @property.insync?(["bar","foo"]).must == false + @property.must_not be_insync(["bar","foo"]) end end -- 1.6.2 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en -~----------~----~----~----~------~----~------~--~---
