@@ -119,7 +119,7 @@ public async Task SetCustomUserClaimsWithWrongUid()
119
119
var customClaims = new Dictionary < string , object > ( ) ;
120
120
121
121
await Assert . ThrowsAsync < FirebaseException > (
122
- async ( ) => await FirebaseAuth . DefaultInstance . SetCustomUserClaimsAsync ( "mock-uid " , customClaims ) ) ;
122
+ async ( ) => await FirebaseAuth . DefaultInstance . SetCustomUserClaimsAsync ( "non.existing " , customClaims ) ) ;
123
123
}
124
124
125
125
[ Fact ]
@@ -165,35 +165,91 @@ public async Task UserLifecycle()
165
165
// Create user
166
166
var user = await FirebaseAuth . DefaultInstance . CreateUserAsync ( new UserRecordArgs ( ) ) ;
167
167
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
+ }
197
253
}
198
254
199
255
[ Fact ]
@@ -210,6 +266,17 @@ await Assert.ThrowsAsync<FirebaseException>(
210
266
async ( ) => await FirebaseAuth . DefaultInstance . GetUserByEmailAsync ( "[email protected] " ) ) ;
211
267
}
212
268
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
+
213
280
[ Fact ]
214
281
public async Task DeleteUserNonExistingUid ( )
215
282
{
0 commit comments