@@ -171,7 +171,177 @@ public void CanCreateUpdateSuspendAndDeleteUser()
171171 }
172172
173173 [ Test ]
174- public void CanFindUser ( )
174+ public void CanCreateOrUpdateUser_NewUser ( )
175+ {
176+ var groupUserResponse = api . Users . SearchByEmail ( "test772@tester.com" ) ;
177+ foreach ( var u in groupUserResponse . Users )
178+ {
179+ api . Users . DeleteUser ( u . Id . Value ) ;
180+ }
181+
182+ var user = new User ( )
183+ {
184+ Name = "tester user72" ,
185+ Email = "test772@tester.com" ,
186+ Role = "end-user" ,
187+ Verified = true ,
188+ CustomFields = new Dictionary < string , object > ( )
189+ {
190+ { "user_dropdown" , "option_1" }
191+ }
192+ } ;
193+
194+ var res1 = api . Users . CreateOrUpdateUser ( user ) ;
195+ Assert . IsTrue ( res1 . User . Id > 0 ) ;
196+ }
197+ [ Test ]
198+ public void CanCreateOrUpdateUser_CreateSameUserTwice ( )
199+ {
200+ var groupUserResponse = api . Users . SearchByEmail ( "test772@tester.com" ) ;
201+ foreach ( var u in groupUserResponse . Users )
202+ {
203+ api . Users . DeleteUser ( u . Id . Value ) ;
204+ }
205+
206+ var user = new User ( )
207+ {
208+ Name = "tester user72" ,
209+ Email = "test772@tester.com" ,
210+ Role = "end-user" ,
211+ Verified = true ,
212+ CustomFields = new Dictionary < string , object > ( )
213+ {
214+ { "user_dropdown" , "option_1" }
215+ }
216+ } ;
217+
218+ var res1 = api . Users . CreateOrUpdateUser ( user ) ;
219+ var res2 = api . Users . CreateOrUpdateUser ( user ) ;
220+
221+ var user72group = api . Users . SearchByEmail ( "test772@tester.com" ) ;
222+
223+ Assert . IsTrue ( user72group . Count == 1 ) ;
224+ }
225+
226+ [ Test ]
227+ public void CanCreateOrUpdateUser_UpdateUser ( )
228+ {
229+ var groupUserResponse = api . Users . SearchByEmail ( "test772@tester.com" ) ;
230+ foreach ( var u in groupUserResponse . Users )
231+ {
232+ api . Users . DeleteUser ( u . Id . Value ) ;
233+ }
234+
235+ var user = new User ( )
236+ {
237+ Name = "tester user72" ,
238+ Email = "test772@tester.com" ,
239+ Role = "end-user" ,
240+ Verified = true ,
241+ CustomFields = new Dictionary < string , object > ( )
242+ {
243+ { "user_dropdown" , "option_1" }
244+ }
245+ } ;
246+
247+ var res1 = api . Users . CreateOrUpdateUser ( user ) ;
248+
249+ user . Name = "tester user721" ;
250+ var res2 = api . Users . CreateOrUpdateUser ( user ) ;
251+
252+ var user72group = api . Users . SearchByEmail ( "test772@tester.com" ) ;
253+
254+ Assert . IsTrue ( user72group . Count == 1 ) ;
255+ Assert . IsTrue ( res2 . User . Name . Contains ( "721" ) ) ;
256+ }
257+
258+ [ Test ]
259+ public async Task CanCreateOrUpdateUserAsync_NewUser ( )
260+ {
261+ var groupUserResponse = api . Users . SearchByEmail ( "test772@tester.com" ) ;
262+ foreach ( var u in groupUserResponse . Users )
263+ {
264+ api . Users . DeleteUser ( u . Id . Value ) ;
265+ }
266+
267+ var user = new User ( )
268+ {
269+ Name = "tester user72" ,
270+ Email = "test772@tester.com" ,
271+ Role = "end-user" ,
272+ Verified = true ,
273+ CustomFields = new Dictionary < string , object > ( )
274+ {
275+ { "user_dropdown" , "option_1" }
276+ }
277+ } ;
278+
279+ var res1 = await api . Users . CreateOrUpdateUserAsync ( user ) ;
280+ Assert . IsTrue ( res1 . User . Id > 0 ) ;
281+ }
282+ [ Test ]
283+ public async Task CanCreateOrUpdateUserAsync_CreateSameUserTwice ( )
284+ {
285+ var groupUserResponse = api . Users . SearchByEmail ( "test772@tester.com" ) ;
286+ foreach ( var u in groupUserResponse . Users )
287+ {
288+ api . Users . DeleteUser ( u . Id . Value ) ;
289+ }
290+
291+ var user = new User ( )
292+ {
293+ Name = "tester user72" ,
294+ Email = "test772@tester.com" ,
295+ Role = "end-user" ,
296+ Verified = true ,
297+ CustomFields = new Dictionary < string , object > ( )
298+ {
299+ { "user_dropdown" , "option_1" }
300+ }
301+ } ;
302+
303+ var res1 = await api . Users . CreateOrUpdateUserAsync ( user ) ;
304+ var res2 = await api . Users . CreateOrUpdateUserAsync ( user ) ;
305+
306+ var user72group = api . Users . SearchByEmail ( "test772@tester.com" ) ;
307+
308+ Assert . IsTrue ( user72group . Count == 1 ) ;
309+ }
310+
311+ [ Test ]
312+ public async Task CanCreateOrUpdateUserAsync_UpdateUser ( )
313+ {
314+ var groupUserResponse = api . Users . SearchByEmail ( "test772@tester.com" ) ;
315+ foreach ( var u in groupUserResponse . Users )
316+ {
317+ api . Users . DeleteUser ( u . Id . Value ) ;
318+ }
319+
320+ var user = new User ( )
321+ {
322+ Name = "tester user72" ,
323+ Email = "test772@tester.com" ,
324+ Role = "end-user" ,
325+ Verified = true ,
326+ CustomFields = new Dictionary < string , object > ( )
327+ {
328+ { "user_dropdown" , "option_1" }
329+ }
330+ } ;
331+
332+ var res1 = await api . Users . CreateOrUpdateUserAsync ( user ) ;
333+
334+ user . Name = "tester user721" ;
335+ var res2 = api . Users . CreateOrUpdateUser ( user ) ;
336+
337+ var user72group = api . Users . SearchByEmail ( "test772@tester.com" ) ;
338+
339+ Assert . IsTrue ( user72group . Count == 1 ) ;
340+ Assert . IsTrue ( res2 . User . Name . Contains ( "721" ) ) ;
341+ }
342+
343+ [ Test ]
344+ public void CanFindUser ( )
175345 {
176346 //var res1 = api.Users.SearchByEmail(Settings.Email);
177347 var res1 = api . Users . SearchByEmail ( Settings . ColloboratorEmail ) ;
0 commit comments