Exemple #1
0
        /* O mapeamento entre entidade e DTO pode ser automatizado por bibliotecas como AutoMapper,
         * porém, já ouvi várias opiniões positivas e negativas sobre o uso do AutoMapper. */
        private User CreateUserMapper(AccountUserPostDto dto, string password)
        {
            var user = new User
            {
                Username = dto.Username,
                Password = password,
                Role     = dto.Role
            };

            return(user);
        }
Exemple #2
0
        public async Task <IActionResult> Create(AccountUserPostDto dto)
        {
            var validationResult = await _app.CreateUser(dto);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors.Select(x => x.ErrorMessage).ToList()));
            }

            return(NoContent());
        }
Exemple #3
0
        public async Task <ValidationResult> CreateUser(AccountUserPostDto dto)
        {
            var password         = !string.IsNullOrWhiteSpace(dto.Password) ? MD5Hash.Generate(dto.Password) : null;
            var user             = CreateUserMapper(dto, password);
            var validationResult = await _userValidation.CreateValidation.ValidateAsync(user);

            if (!validationResult.IsValid)
            {
                return(validationResult);
            }

            _uow.UserRepository.Add(user);
            await _uow.CommitAsync();

            return(validationResult);
        }
Exemple #4
0
        public async Task Password_Vazio()
        {
            var dto = new AccountUserPostDto
            {
                Username = "******",
                Password = "",
                Role     = "admin"
            };

            _uow.Setup(a => a.UserRepository.Add(new User {
                Id = Guid.NewGuid()
            }));

            var result = await _app.CreateUser(dto);

            Assert.False(result.IsValid);
            Assert.Equal("O campo Senha é obrigatório.", result.Errors.FirstOrDefault().ErrorMessage);
        }
Exemple #5
0
        public async Task Username_Invalido()
        {
            var dto = new AccountUserPostDto
            {
                Username = "******",
                Password = "******",
                Role     = "admin"
            };

            var idUser = Guid.NewGuid();

            _uow.Setup(x => x.UserRepository.Add(new User {
                Id = idUser, Username = "******"
            }));

            var result = await _app.CreateUser(dto);

            Assert.False(result.IsValid);
            Assert.Equal("O campo Usuário deve possuir no máximo 50 caracteres.", result.Errors.FirstOrDefault().ErrorMessage);
        }