public void HashPassword_GeneratesSaltedPassword()
        {
            string          password = "******";
            IPasswordHasher subject  = new BCryptHasher();

            Assert.That(subject.HashPassword(password), Is.Not.EqualTo(password));
        }
        public void CheckPassword_AnotherSaltedPassword_False()
        {
            string          password = "******";
            IPasswordHasher subject  = new BCryptHasher();
            string          hashed   = subject.HashPassword("anotherPassword");

            Assert.That(subject.CheckPassword(password, hashed), Is.False);
        }
        public void CheckPassword_SameSaltedPassword_True()
        {
            string password = "******";

            IPasswordHasher subject = new BCryptHasher();
            string          hashed  = subject.HashPassword(password);

            Assert.That(subject.CheckPassword(password, hashed), Is.True);
        }
        public async Task AddAsync(User user)
        {
            IHasher hasher = new BCryptHasher();

            user.Username = user.Username.ToLower();
            user.Email    = user.Email.ToLower();
            user.Password = hasher.HashPassword(user.Password);
            context.User.Add(user);
            await context.SaveChangesAsync();
        }