コード例 #1
0
        public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto)
        {
            // TODO validate request
            UserForRegisterValidator validator = new UserForRegisterValidator();
            ValidationResult         results   = validator.Validate(userForRegisterDto);

            if (results.IsValid == false)
            {
                string errorMessage = results.Errors[0].ErrorMessage;
                return(BadRequest(errorMessage));
            }

            userForRegisterDto.Username = userForRegisterDto.Username.ToLower();
            if (await _repo.UserExists(userForRegisterDto.Username))
            {
                return(BadRequest("Username already exists!"));
            }

            var userToCreate = new User
            {
                Id       = userForRegisterDto.Id,
                Username = userForRegisterDto.Username,
                Email    = userForRegisterDto.Email
            };

            var createdUser = await _repo.Register(userToCreate, userForRegisterDto.Password);

            return(StatusCode(201));
        }
コード例 #2
0
        public void UserForRegisterValidator_WhenUsernameRegexDoesNotMatches_ShouldHaveError()
        {
            // Arrange
            var model = new UserForRegisterDto()
            {
                Username = "******"
            };
            var message = Messages.UsernameIsNotValid;
            var sut     = new UserForRegisterValidator();

            // Act
            var result = sut.TestValidate(model);

            // Assert
            result.ShouldHaveValidationErrorFor(m => m.Username).WithErrorMessage(message);
        }
コード例 #3
0
        public void UserForRegisterValidator_WhenEmailRegexDoesNotMatches_ShouldHaveError()
        {
            // Arrange
            var model = new UserForRegisterDto()
            {
                Email = "[email protected]"
            };
            var message = Messages.EmailIsNotValid;
            var sut     = new UserForRegisterValidator();

            // Act
            var result = sut.TestValidate(model);

            // Assert
            result.ShouldHaveValidationErrorFor(m => m.Email).WithErrorMessage(message);
        }
コード例 #4
0
        public void UserForRegisterValidator_WhenBirthDateExceedsMinValue_ShouldHaveError()
        {
            // Arrange
            var model = new UserForRegisterDto()
            {
                BirthDate = DateTime.Now.AddYears(-110)
            };
            var message = Messages.BirthDateIsNotValid_GreaterThan(DateTime.Now.AddYears(-100));
            var sut     = new UserForRegisterValidator();

            // Act
            var result = sut.TestValidate(model);

            // Assert
            result.ShouldHaveValidationErrorFor(m => m.BirthDate).WithErrorMessage(message);
        }
コード例 #5
0
        public void UserForRegisterValidator_WhenPasswordRegexDoesNotMatches_ShouldHaveError()
        {
            // Arrange
            var model = new UserForRegisterDto()
            {
                Password = "******"
            };
            var message = Messages.PasswordIsNotValid;
            var sut     = new UserForRegisterValidator();

            // Act
            var result = sut.TestValidate(model);

            // Assert
            result.ShouldHaveValidationErrorFor(m => m.Password).WithErrorMessage(message);
        }
コード例 #6
0
        public void UserForRegisterValidator_TrueStory()
        {
            // Arrange
            var model = new UserForRegisterDto()
            {
                BirthDate    = DateTime.Now.AddYears(-30),
                DepartmentId = 1,
                Email        = "*****@*****.**",
                FirstName    = "Test",
                LastName     = "User",
                Password     = "******",
                Username     = "******"
            };
            var sut = new UserForRegisterValidator();

            // Act
            var result = sut.TestValidate(model);

            // Assert
            result.ShouldNotHaveAnyValidationErrors();
        }