summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlib/puppet/type/user.rb3
-rwxr-xr-xspec/unit/type/user.rb24
2 files changed, 25 insertions, 2 deletions
diff --git a/lib/puppet/type/user.rb b/lib/puppet/type/user.rb
index 571781d5a..bb0a86fd0 100755
--- a/lib/puppet/type/user.rb
+++ b/lib/puppet/type/user.rb
@@ -272,7 +272,7 @@ module Puppet
current_value = :absent
if absent
- prophash[property] = :absent
+ prophash[property] = :absent
else
current_value = property.retrieve
prophash[property] = current_value
@@ -280,7 +280,6 @@ module Puppet
if property.name == :ensure and current_value == :absent
absent = true
-# next
end
prophash
}
diff --git a/spec/unit/type/user.rb b/spec/unit/type/user.rb
index 8fe16901e..51c6dd801 100755
--- a/spec/unit/type/user.rb
+++ b/spec/unit/type/user.rb
@@ -48,6 +48,30 @@ describe user do
end
end
+ describe "when retrieving all current values" do
+ before do
+ @user = user.create(:name => "foo", :uid => 10, :gid => 10)
+ @properties = {}
+ end
+
+ it "should return a hash containing values for all set properties" do
+ values = @user.retrieve
+ [@user.property(:uid), @user.property(:gid)].each { |property| values.should be_include(property) }
+ end
+
+ it "should set all values to :absent if the user is absent" do
+ @user.property(:ensure).expects(:retrieve).returns :absent
+ @user.property(:uid).expects(:retrieve).never
+ @user.retrieve[@user.property(:uid)].should == :absent
+ end
+
+ it "should include the result of retrieving each property's current value if the user is present" do
+ @user.property(:ensure).expects(:retrieve).returns :present
+ @user.property(:uid).expects(:retrieve).returns 15
+ @user.retrieve[@user.property(:uid)].should == 15
+ end
+ end
+
describe "when managing the ensure property" do
before do
@ensure = user.attrclass(:ensure).new(:resource => @resource)