Exemple #1
0
        public void AllProperties()
        {
            var response = new GetAccountInfoResponse.User()
            {
                UserId        = "user1",
                DisplayName   = "Test User",
                Email         = "*****@*****.**",
                PhoneNumber   = "+11234567890",
                PhotoUrl      = "https://domain.com/user.png",
                Disabled      = true,
                EmailVerified = true,
                ValidSince    = 3600,
                CreatedAt     = 100,
                LastLoginAt   = 150,
                CustomClaims  = @"{""admin"": true, ""level"": 10}",
                TenantId      = "tenant1",
                Providers     = new List <GetAccountInfoResponse.Provider>()
                {
                    new GetAccountInfoResponse.Provider()
                    {
                        ProviderID = "google.com",
                        UserId     = "googleuid",
                    },
                    new GetAccountInfoResponse.Provider()
                    {
                        ProviderID  = "other.com",
                        UserId      = "otheruid",
                        DisplayName = "Other Name",
                        Email       = "*****@*****.**",
                        PhotoUrl    = "https://other.com/user.png",
                        PhoneNumber = "+10987654321",
                    },
                },
            };
            var user = new UserRecord(response);

            Assert.Equal("user1", user.Uid);
            Assert.Equal("Test User", user.DisplayName);
            Assert.Equal("*****@*****.**", user.Email);
            Assert.Equal("+11234567890", user.PhoneNumber);
            Assert.Equal("https://domain.com/user.png", user.PhotoUrl);
            Assert.Equal("firebase", user.ProviderId);
            Assert.True(user.Disabled);
            Assert.True(user.EmailVerified);
            Assert.Equal(UserRecord.UnixEpoch.AddSeconds(3600), user.TokensValidAfterTimestamp);

            var claims = new Dictionary <string, object>()
            {
                { "admin", true },
                { "level", 10L },
            };

            Assert.Equal(claims, user.CustomClaims);
            Assert.Equal("tenant1", user.TenantId);

            Assert.Equal(2, user.ProviderData.Length);
            var provider = user.ProviderData[0];

            Assert.Equal("google.com", provider.ProviderId);
            Assert.Equal("googleuid", provider.Uid);
            Assert.Null(provider.DisplayName);
            Assert.Null(provider.Email);
            Assert.Null(provider.PhoneNumber);
            Assert.Null(provider.PhotoUrl);

            provider = user.ProviderData[1];
            Assert.Equal("other.com", provider.ProviderId);
            Assert.Equal("otheruid", provider.Uid);
            Assert.Equal("Other Name", provider.DisplayName);
            Assert.Equal("*****@*****.**", provider.Email);
            Assert.Equal("+10987654321", provider.PhoneNumber);
            Assert.Equal("https://other.com/user.png", provider.PhotoUrl);

            var metadata = user.UserMetaData;

            Assert.NotNull(metadata);
            Assert.Equal(UserRecord.UnixEpoch.AddMilliseconds(100), metadata.CreationTimestamp);
            Assert.Equal(UserRecord.UnixEpoch.AddMilliseconds(150), metadata.LastSignInTimestamp);
        }
 internal ExportedUserRecord(GetAccountInfoResponse.User user)
     : base(user)
 {
     this.PasswordHash = user.PasswordHash;
     this.PasswordSalt = user.PasswordSalt;
 }