@@ -165,4 +165,92 @@ public function testGroupAddRemove()
165
165
$ addedGroup = $ groupModel ->load ($ addedGroupId );
166
166
$ this ->assertFalse ($ addedGroup , "group should have been removed but remains " );
167
167
}
168
+
169
+ /** Test adding and removing a group */
170
+ public function testGroupListUsers ()
171
+ {
172
+ $ validCommunityId = 2001 ;
173
+ $ invalidCommunityId = -10 ;
174
+ $ commAdminGroupId = 3003 ;
175
+ $ invalidGroupId = -10 ;
176
+
177
+ $ communityModel = MidasLoader::loadModel ('Community ' );
178
+ $ comm2001 = $ communityModel ->load ('2001 ' );
179
+ $ userModel = MidasLoader::loadModel ('User ' );
180
+ $ commMemberId = '4 ' ;
181
+ $ commModeratorId = '5 ' ;
182
+ $ commAdminId = '6 ' ;
183
+ $ commMember = $ userModel ->load ($ commMemberId );
184
+ $ commModerator = $ userModel ->load ($ commModeratorId );
185
+ $ commAdmin = $ userModel ->load ($ commAdminId );
186
+
187
+ // add in an anonymous user to non admins
188
+ $ invalidUsers = array ($ commMember , $ commModerator , false );
189
+
190
+ // group list users
191
+
192
+ $ groupListMethod = "midas.group.list.users " ;
193
+ $ requiredParams = array (
194
+ array ('name ' => 'group_id ' , 'valid ' => $ commAdminGroupId , 'invalid ' => $ invalidGroupId ));
195
+
196
+ $ this ->exerciseInvalidCases ($ groupListMethod , $ commAdmin , $ invalidUsers , $ requiredParams );
197
+
198
+ $ this ->resetAll ();
199
+ $ this ->params ['token ' ] = $ this ->_loginAsUser ($ commAdmin );
200
+ $ this ->params ['method ' ] = $ groupListMethod ;
201
+ $ this ->params ['group_id ' ] = $ commAdminGroupId ;
202
+ $ resp = $ this ->_callJsonApi ();
203
+ $ this ->_assertStatusOk ($ resp );
204
+
205
+ $ users = $ resp ->data ->users ;
206
+ $ users = (array )$ users ;
207
+ $ this ->assertEquals (1 , sizeof ($ users ), 'users should only have one entry ' );
208
+ foreach ($ users as $ id => $ email )
209
+ {
210
+ $ this ->assertEquals ($ id , $ commAdminId , 'users should have commAdminId as an entry ' );
211
+ }
212
+
213
+ // add some users, test again
214
+
215
+ $ groupModel = MidasLoader::loadModel ('Group ' );
216
+ $ commAdminGroup = $ groupModel ->load ($ commAdminGroupId );
217
+ $ groupModel ->addUser ($ commAdminGroup , $ commMember );
218
+ $ groupModel ->addUser ($ commAdminGroup , $ commModerator );
219
+
220
+ $ this ->resetAll ();
221
+ $ this ->params ['token ' ] = $ this ->_loginAsUser ($ commAdmin );
222
+ $ this ->params ['method ' ] = $ groupListMethod ;
223
+ $ this ->params ['group_id ' ] = $ commAdminGroupId ;
224
+ $ resp = $ this ->_callJsonApi ();
225
+ $ this ->_assertStatusOk ($ resp );
226
+ $ users = $ resp ->data ->users ;
227
+ $ users = (array )$ users ;
228
+ $ this ->assertEquals (3 , sizeof ($ users ), 'users should have 3 entries ' );
229
+ $ members = array ($ commAdminId , $ commMemberId , $ commModeratorId );
230
+ foreach ($ users as $ id => $ email )
231
+ {
232
+ $ this ->assertTrue (in_array ($ id , $ members ), 'users should have ' .$ id .' as an entry ' );
233
+ }
234
+
235
+ // remove some users, test again
236
+ $ groupModel ->removeUser ($ commAdminGroup , $ commMember );
237
+ $ groupModel ->removeUser ($ commAdminGroup , $ commModerator );
238
+
239
+ $ this ->resetAll ();
240
+ $ this ->params ['token ' ] = $ this ->_loginAsUser ($ commAdmin );
241
+ $ this ->params ['method ' ] = $ groupListMethod ;
242
+ $ this ->params ['group_id ' ] = $ commAdminGroupId ;
243
+ $ resp = $ this ->_callJsonApi ();
244
+ $ this ->_assertStatusOk ($ resp );
245
+
246
+ $ users = $ resp ->data ->users ;
247
+ $ users = (array )$ users ;
248
+ $ this ->assertEquals (1 , sizeof ($ users ), 'users should only have one entry ' );
249
+ foreach ($ users as $ id => $ email )
250
+ {
251
+ $ this ->assertEquals ($ id , $ commAdminId , 'users should have commAdminId as an entry ' );
252
+ }
253
+
254
+ }
255
+
168
256
}
0 commit comments