@@ -119,7 +119,7 @@ public async Task SetCustomUserClaimsWithWrongUid()
119119 var customClaims = new Dictionary < string , object > ( ) ;
120120
121121 await Assert . ThrowsAsync < FirebaseException > (
122- async ( ) => await FirebaseAuth . DefaultInstance . SetCustomUserClaimsAsync ( "mock-uid " , customClaims ) ) ;
122+ async ( ) => await FirebaseAuth . DefaultInstance . SetCustomUserClaimsAsync ( "non.existing " , customClaims ) ) ;
123123 }
124124
125125 [ Fact ]
@@ -165,35 +165,91 @@ public async Task UserLifecycle()
165165 // Create user
166166 var user = await FirebaseAuth . DefaultInstance . CreateUserAsync ( new UserRecordArgs ( ) ) ;
167167 var uid = user . Uid ;
168- Assert . Null ( user . Email ) ;
169- Assert . Null ( user . PhoneNumber ) ;
170- Assert . Null ( user . DisplayName ) ;
171- Assert . Null ( user . PhotoUrl ) ;
172- Assert . False ( user . EmailVerified ) ;
173- Assert . False ( user . Disabled ) ;
174- Assert . NotNull ( user . UserMetaData . CreationTimestamp ) ;
175- Assert . Null ( user . UserMetaData . LastSignInTimestamp ) ;
176- Assert . Empty ( user . ProviderData ) ;
177- Assert . Empty ( user . CustomClaims ) ;
178-
179- // Get user by ID
180- user = await FirebaseAuth . DefaultInstance . GetUserAsync ( uid ) ;
181- Assert . Equal ( uid , user . Uid ) ;
182- Assert . Null ( user . Email ) ;
183- Assert . Null ( user . PhoneNumber ) ;
184- Assert . Null ( user . DisplayName ) ;
185- Assert . Null ( user . PhotoUrl ) ;
186- Assert . False ( user . EmailVerified ) ;
187- Assert . False ( user . Disabled ) ;
188- Assert . NotNull ( user . UserMetaData . CreationTimestamp ) ;
189- Assert . Null ( user . UserMetaData . LastSignInTimestamp ) ;
190- Assert . Empty ( user . ProviderData ) ;
191- Assert . Empty ( user . CustomClaims ) ;
192-
193- // Delete user
194- await FirebaseAuth . DefaultInstance . DeleteUserAsync ( uid ) ;
195- await Assert . ThrowsAsync < FirebaseException > (
196- async ( ) => await FirebaseAuth . DefaultInstance . GetUserAsync ( uid ) ) ;
168+ try
169+ {
170+ Assert . Null ( user . Email ) ;
171+ Assert . Null ( user . PhoneNumber ) ;
172+ Assert . Null ( user . DisplayName ) ;
173+ Assert . Null ( user . PhotoUrl ) ;
174+ Assert . False ( user . EmailVerified ) ;
175+ Assert . False ( user . Disabled ) ;
176+ Assert . NotNull ( user . UserMetaData . CreationTimestamp ) ;
177+ Assert . Null ( user . UserMetaData . LastSignInTimestamp ) ;
178+ Assert . Empty ( user . ProviderData ) ;
179+ Assert . Empty ( user . CustomClaims ) ;
180+
181+ // Get user by ID
182+ user = await FirebaseAuth . DefaultInstance . GetUserAsync ( uid ) ;
183+ Assert . Equal ( uid , user . Uid ) ;
184+ Assert . Null ( user . Email ) ;
185+ Assert . Null ( user . PhoneNumber ) ;
186+ Assert . Null ( user . DisplayName ) ;
187+ Assert . Null ( user . PhotoUrl ) ;
188+ Assert . False ( user . EmailVerified ) ;
189+ Assert . False ( user . Disabled ) ;
190+ Assert . NotNull ( user . UserMetaData . CreationTimestamp ) ;
191+ Assert . Null ( user . UserMetaData . LastSignInTimestamp ) ;
192+ Assert . Empty ( user . ProviderData ) ;
193+ Assert . Empty ( user . CustomClaims ) ;
194+
195+ // Update user
196+ var randomUser = RandomUser . Create ( ) ;
197+ var updateArgs = new UserRecordArgs ( )
198+ {
199+ Uid = uid ,
200+ DisplayName = "Updated Name" ,
201+ Email = randomUser . Email ,
202+ PhoneNumber = randomUser . PhoneNumber ,
203+ PhotoUrl = "https://example.com/photo.png" ,
204+ EmailVerified = true ,
205+ Password = "secret" ,
206+ } ;
207+ user = await FirebaseAuth . DefaultInstance . UpdateUserAsync ( updateArgs ) ;
208+ Assert . Equal ( uid , user . Uid ) ;
209+ Assert . Equal ( randomUser . Email , user . Email ) ;
210+ Assert . Equal ( randomUser . PhoneNumber , user . PhoneNumber ) ;
211+ Assert . Equal ( "Updated Name" , user . DisplayName ) ;
212+ Assert . Equal ( "https://example.com/photo.png" , user . PhotoUrl ) ;
213+ Assert . True ( user . EmailVerified ) ;
214+ Assert . False ( user . Disabled ) ;
215+ Assert . NotNull ( user . UserMetaData . CreationTimestamp ) ;
216+ Assert . Null ( user . UserMetaData . LastSignInTimestamp ) ;
217+ Assert . Equal ( 2 , user . ProviderData . Length ) ;
218+ Assert . Empty ( user . CustomClaims ) ;
219+
220+ // Get user by email
221+ user = await FirebaseAuth . DefaultInstance . GetUserByEmailAsync ( randomUser . Email ) ;
222+ Assert . Equal ( uid , user . Uid ) ;
223+
224+ // Disable user and remove properties
225+ var disableArgs = new UserRecordArgs ( )
226+ {
227+ Uid = uid ,
228+ Disabled = true ,
229+ DisplayName = null ,
230+ PhoneNumber = null ,
231+ PhotoUrl = null ,
232+ } ;
233+ user = await FirebaseAuth . DefaultInstance . UpdateUserAsync ( disableArgs ) ;
234+ Assert . Equal ( uid , user . Uid ) ;
235+ Assert . Equal ( randomUser . Email , user . Email ) ;
236+ Assert . Null ( user . PhoneNumber ) ;
237+ Assert . Null ( user . DisplayName ) ;
238+ Assert . Null ( user . PhotoUrl ) ;
239+ Assert . True ( user . EmailVerified ) ;
240+ Assert . True ( user . Disabled ) ;
241+ Assert . NotNull ( user . UserMetaData . CreationTimestamp ) ;
242+ Assert . Null ( user . UserMetaData . LastSignInTimestamp ) ;
243+ Assert . Single ( user . ProviderData ) ;
244+ Assert . Empty ( user . CustomClaims ) ;
245+ }
246+ finally
247+ {
248+ // Delete user
249+ await FirebaseAuth . DefaultInstance . DeleteUserAsync ( uid ) ;
250+ await Assert . ThrowsAsync < FirebaseException > (
251+ async ( ) => await FirebaseAuth . DefaultInstance . GetUserAsync ( uid ) ) ;
252+ }
197253 }
198254
199255 [ Fact ]
@@ -210,6 +266,17 @@ await Assert.ThrowsAsync<FirebaseException>(
210266 async ( ) => await FirebaseAuth . DefaultInstance . GetUserByEmailAsync ( "[email protected] " ) ) ; 211267 }
212268
269+ [ Fact ]
270+ public async Task UpdateUserNonExistingUid ( )
271+ {
272+ var args = new UserRecordArgs ( )
273+ {
274+ Uid = "non.existing" ,
275+ } ;
276+ await Assert . ThrowsAsync < FirebaseException > (
277+ async ( ) => await FirebaseAuth . DefaultInstance . UpdateUserAsync ( args ) ) ;
278+ }
279+
213280 [ Fact ]
214281 public async Task DeleteUserNonExistingUid ( )
215282 {
0 commit comments