public async Task <IActionResult> AddUser([FromBody] Dto.PasswordUser user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ProblemModel(ModelState)));
            }

            var updatedUser = await _accountService.SaveUser(user.ToModel(), user.Password);

            return(Ok(new Dto.User(updatedUser)));
        }
        public async Task AddUserInvalid()
        {
            var user    = _fixture.Create <User>();
            var userDto = new Dto.PasswordUser(user);

            userDto.PasswordCompare = null;

            _usersController.ModelState.AddModelError("PasswordCompare", "PasswordCompare cannot be null");

            _accountService.Setup(m => m.SaveUser(It.IsAny <User>(), userDto.Password))
            .ReturnsAsync(user);

            var response = await _usersController.AddUser(userDto);

            _accountService.Verify(m => m.SaveUser(It.IsAny <User>(), userDto.Password),
                                   Times.Never);

            Assert.IsType <BadRequestObjectResult>(response);
        }
        public async Task AddUser()
        {
            var user    = _fixture.Create <User>();
            var userDto = new Dto.PasswordUser(user);

            userDto.UserId   = null;
            userDto.Password = "******";

            _accountService.Setup(m => m.SaveUser(It.IsAny <User>(), userDto.Password))
            .ReturnsAsync(user);

            var response = await _usersController.AddUser(userDto);

            _accountService.Verify(m => m.SaveUser(It.IsAny <User>(), userDto.Password),
                                   Times.Once);

            Assert.IsType <OkObjectResult>(response);

            var value = ((OkObjectResult)response).Value;

            Assert.IsType <Dto.User>(value);
            Assert.Equal(user.UserId, ((Dto.User)value).UserId);
        }