예제 #1
0
        public void ReturnsBadRequest_WhenUserDoesNotExist_OnCallToUpdateUser()
        {
            var updatedUser = new UserDto
            {
                Id      = 1,
                Email   = "test",
                IsAdmin = true
            };

            var userHelper = A.Fake <IUserHelper>();

            A.CallTo(() => userHelper.IsAdmin(A <HttpContext> .Ignored)).Returns(true);

            var userRepository = A.Fake <IUserRepository>();

            A.CallTo(() => userRepository.UserExists(updatedUser.Id)).Returns(false);

            var userDtoValidator = new UserDtoValidator();

            var userController = new UsersController(userRepository, userHelper, userDtoValidator);

            var response = userController.UpdateUser(updatedUser);

            Assert.AreEqual((int)HttpStatusCode.BadRequest, ((BadRequestObjectResult)response.Result).StatusCode);
            Assert.AreEqual($"User with Id {updatedUser.Id} does not exist.", ((BadRequestObjectResult)response.Result).Value);
        }
예제 #2
0
        public async Task <UserLoginDto> SignIn(UserDto dto)
        {
            var validator = new UserDtoValidator();

            validator.ValidateAndThrow(dto);

            await IsEmailNull(dto.Email);

            var user = new User
            {
                UserName = dto.Email,
                Email    = dto.Email
            };

            var result = await signInManager.PasswordSignInAsync(dto.Email, dto.Password, true, false);

            if (result.Succeeded)
            {
                var userEntity = await userManager.FindByEmailAsync(dto.Email);

                var newDto = new UserLoginDto();
                _mapper.Map(userEntity, newDto);
                return(newDto);
            }
            else
            {
                throw new FormatException("Bad password");
            }

            //foreach (var error in result.Errors)
            //{
            //    ModelState.AddModelError(string.Empty, error.Description);
            //}
        }
예제 #3
0
        public void ReturnsUserDto_WhenValidUser_CallsUpdateUser()
        {
            var updatedUser = new UserDto
            {
                Id      = 1,
                Email   = "test",
                IsAdmin = true
            };

            var userHelper = A.Fake <IUserHelper>();

            A.CallTo(() => userHelper.IsAdmin(A <HttpContext> .Ignored)).Returns(true);

            var userRepository = A.Fake <IUserRepository>();

            A.CallTo(() => userRepository.UserExists(updatedUser.Id)).Returns(true);
            A.CallTo(() => userRepository.GetUser(updatedUser.Id)).Returns(updatedUser);

            var userDtoValidator = new UserDtoValidator();

            var userController = new UsersController(userRepository, userHelper, userDtoValidator);

            var response = userController.UpdateUser(updatedUser);

            A.CallTo(() => userRepository.Update(updatedUser)).MustHaveHappened();
            Assert.AreEqual(updatedUser, response.Value);
        }
예제 #4
0
        public ActionResult Post([FromBody] UserDTO user)
        {
            UserDtoValidator validator = new UserDtoValidator();
            ValidationResult result    = validator.Validate(user);

            if (!result.IsValid)
            {
                return(CustomResponse(result.Errors));
            }
            return(CustomResponse(_userService.Create(user)));
        }
예제 #5
0
        public void ReturnUnauthorized_WhenInvalidUser_CallsUpdateUser()
        {
            var updatedUser = new UserDto
            {
                Id      = 1,
                Email   = "test",
                IsAdmin = true
            };

            var userHelper = A.Fake <IUserHelper>();

            A.CallTo(() => userHelper.IsAdmin(A <HttpContext> .Ignored)).Returns(false);

            var userDtoValidator = new UserDtoValidator();

            var userController = new UsersController(null, userHelper, userDtoValidator);

            var response = userController.UpdateUser(updatedUser);

            Assert.AreEqual((int)HttpStatusCode.Unauthorized, ((UnauthorizedResult)response.Result).StatusCode);
        }
예제 #6
0
        public async Task <UserLoginDto> SignUp(UserDto dto)
        {
            var validator = new UserDtoValidator();

            validator.ValidateAndThrow(dto);

            await IsEmalInUse(dto.Email);

            var user = new User
            {
                UserName   = dto.Email,
                Email      = dto.Email,
                FirstName  = dto.FirstName,
                SecondName = dto.SecondName,
                PositionId = dto.PositionId
            };


            var result = await userManager.CreateAsync(user, dto.Password);

            if (result.Succeeded)
            {
                await signInManager.SignInAsync(user, isPersistent : false);

                var userEntity = await userManager.FindByEmailAsync(dto.Email);

                var newDto = new UserLoginDto();
                _mapper.Map(userEntity, newDto);
                return(newDto);
            }
            else
            {
                throw new FormatException("Bad password");
            }

            //foreach (var error in result.Errors)
            //{
            //    ModelState.AddModelError(string.Empty, error.Description);
            //}
        }
예제 #7
0
 public UserDtoValidatorTests()
 {
     _userDtoValidator = new UserDtoValidator();
 }
 public UserManageController(IUserManageService userManageService)
 {
     this.userManageService = userManageService;
     userDtoValidator       = new UserDtoValidator();
 }
 public void SetUp()
 {
     _userDtoValidator = new UserDtoValidator();
 }