Пример #1
0
        public void UserNameSpecification_ShouldBeSatisfiedIfUserNameIsNotEmpty()
        {
            var spec = new UsernameSpecification();
            var user = new User {
                username = "******"
            };

            spec.IsSatisfiedBy(user).Should().BeTrue();
        }
        private void ValidateUsernameAndEmailUniqueness(string?name, string?email)
        {
            var usernameOrEmailSpec = new UsernameSpecification(name).Or(new EmailSpecification(email));

            if (_authUserRepository.Count(usernameOrEmailSpec) > 0)
            {
                throw new ManualValidationException("This username or email address is already taken.");
            }
        }
Пример #3
0
        public void NotSpecification_ShouldBeSatisfiedWhenUserNameIsEmpty()
        {
            var spec = new UsernameSpecification();

            var not = new NotSpecification <User>(spec);

            var user1 = new User {
                username = ""
            };

            not.IsSatisfiedBy(user1).Should().BeTrue();
        }
Пример #4
0
        public JsonWebToken GenerateJwt(string?name, string?plaintextPassword)
        {
            var usernameOrEmailSpec = new UsernameSpecification(name).Or(new EmailSpecification(name));
            var authUser            = _authUserRepository.FindOrNull(usernameOrEmailSpec);

            if (authUser is null || !authUser.PasswordHash.CanLogin(plaintextPassword, authUser.Id, authUser.Username))
            {
                throw new ManualValidationException("Incorrect username or password.");
            }

            return(JsonWebToken.Generate(authUser, _clock));
        }
Пример #5
0
        public void OrSpecification_ShouldBeSatisfiedWhenOneOfTheSpecsIsTrue()
        {
            var spec1 = new UsernameSpecification();
            var spec2 = new PasswordSpecification();

            var or = new OrSpecification <User>(spec1, spec2);

            var user1 = new User {
                username = "", password = "******"
            };

            or.IsSatisfiedBy(user1).Should().BeTrue();
        }
Пример #6
0
        public void AndSpecification_ShouldBeSatisfiedWhenBothSpecsAreTrue()
        {
            var spec1 = new UsernameSpecification();
            var spec2 = new PasswordSpecification();

            var and = new AndSpecification <User>(spec1, spec2);

            var user1 = new User {
                username = "******", password = "******"
            };

            and.IsSatisfiedBy(user1).Should().BeTrue();
        }