File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ def load_current_resource
4545 end
4646
4747 if group_info
48+ @new_resource . gid ( group_info . gid )
4849 @current_resource . gid ( group_info . gid )
4950 @current_resource . members ( group_info . mem )
5051 end
@@ -58,9 +59,18 @@ def load_current_resource
5859 # <true>:: If a change is required
5960 # <false>:: If a change is not required
6061 def compare_group
61- !![ :gid , :members ] . find do |group_attrib |
62- @new_resource . send ( group_attrib ) != @current_resource . send ( group_attrib )
62+ return true if @new_resource . gid != @current_resource . gid
63+
64+ if ( @new_resource . append )
65+ @new_resource . members . each do |member |
66+ next if @current_resource . members . include? ( member )
67+ return true
68+ end
69+ else
70+ return true if @new_resource . members != @current_resource . members
6371 end
72+
73+ return false
6474 end
6575
6676 def action_create
Original file line number Diff line number Diff line change 109109 :null_object => true ,
110110 :group_name => "aj" ,
111111 :gid => 50 ,
112- :members => [ "root" , "aj" ]
112+ :members => [ "root" , "aj" ] ,
113+ :append => false
113114 )
114115 @current_resource = mock ( "Chef::Resource::Group" ,
115116 :null_object => true ,
128129 end
129130 end
130131
131- it "should return false if no change is required" do
132+ it "should return false if gid and members are equal" do
133+ @provider . compare_group . should be_false
134+ end
135+
136+ it "should return false if append is true and the group member(s) already exists" do
137+ @current_resource . members << "extra_user"
138+ @new_resource . stub! ( :append ) . and_return ( true )
132139 @provider . compare_group . should be_false
133140 end
141+
142+ it "should return true if append is true and the group member(s) do not already exist" do
143+ @new_resource . members << "extra_user"
144+ @new_resource . stub! ( :append ) . and_return ( true )
145+ @provider . compare_group . should be_true
146+ end
147+
134148end
135149
136150describe Chef ::Provider ::Group , "action_create" do
You can’t perform that action at this time.
0 commit comments