public void Serialize() { var userProviders = new List <UserProvider> { new UserProvider() { Uid = "google.uid", ProviderId = "google.com", }, }; var customClaims = new Dictionary <string, object>() { { "admin", true }, }; var userMetadata = new UserMetadata(1, 2, null); var passwordHash = Encoding.ASCII.GetBytes("secret"); var passwordSalt = Encoding.ASCII.GetBytes("salt"); var importUserRecordArgs = new ImportUserRecordArgs() { Uid = "123", Email = "*****@*****.**", EmailVerified = true, DisplayName = "Example", PhotoUrl = "http://example.com/photo", PhoneNumber = "+11234567890", Disabled = false, UserMetadata = userMetadata, PasswordHash = passwordHash, PasswordSalt = passwordSalt, CustomClaims = customClaims, UserProviders = userProviders, }; var expected = new Dictionary <string, object>() { { "createdAt", userMetadata.CreationTimestamp }, { "customAttributes", JsonConvert.SerializeObject(customClaims) }, { "disabled", false }, { "displayName", "Example" }, { "email", "*****@*****.**" }, { "emailVerified", true }, { "lastLoginAt", userMetadata.LastSignInTimestamp }, { "passwordHash", JwtUtils.UrlSafeBase64Encode(passwordHash) }, { "salt", JwtUtils.UrlSafeBase64Encode(passwordSalt) }, { "phoneNumber", "+11234567890" }, { "photoUrl", "http://example.com/photo" }, { "providerUserInfo", userProviders.Select(userProvider => userProvider.ToRequest()) }, { "localId", "123" }, }; Assert.Equal( JsonConvert.SerializeObject(expected), JsonConvert.SerializeObject(importUserRecordArgs.ToRequest())); }
public void MissingUid() { var userRecordArgsWithMissingUid = new ImportUserRecordArgs() { }; Assert.Throws <ArgumentNullException>( () => userRecordArgsWithMissingUid.ToRequest()); }
public void InvalidPhone() { var userProviderWithMissingUid = new ImportUserRecordArgs() { Uid = "123", PhoneNumber = "11234567890", }; Assert.Throws <ArgumentException>( () => userProviderWithMissingUid.ToRequest()); }
public void InvalidEmail() { var userRecordArgsInvalidEmail = new ImportUserRecordArgs() { Uid = "123", Email = "invalidemail", }; Assert.Throws <ArgumentException>( () => userRecordArgsInvalidEmail.ToRequest()); }
public void RequiredOnly() { var userRecordMinimal = new ImportUserRecordArgs() { Uid = "123", }; var expected = new Dictionary <string, object>() { { "localId", "123" }, }; Assert.Equal( NewtonsoftJsonSerializer.Instance.Serialize(expected), NewtonsoftJsonSerializer.Instance.Serialize(userRecordMinimal.ToRequest())); }
public void ReservedCustomClaims() { foreach (var reservedKey in FirebaseTokenFactory.ReservedClaims) { var userProviderWithReservedClaimKey = new ImportUserRecordArgs() { Uid = "123", CustomClaims = new Dictionary <string, object>() { { reservedKey, "abc" }, }, }; Assert.Throws <ArgumentException>( () => userProviderWithReservedClaimKey.ToRequest()); } }