Exemple #1
0
        public async Task <IActionResult> Token([FromBody] CapRedV2UserLoginDTO capRedV2UserLoginDTO)
        {
            var userSignInResult = await _userService.LoginAsync(capRedV2UserLoginDTO);

            if (!userSignInResult.Item2.Succeeded)
            {
                return(BadRequest("Invalid Login and/or password"));
            }

            var roles = await _userService.GetRolesAsync(userSignInResult.Item1);

            return(new ObjectResult(GenerateToken(userSignInResult.Item1, roles, _configuration)));
        }
Exemple #2
0
        public void Validate_EmptyPassword_ReturnFalse()
        {
            //Arrange
            var userSignUpDTO = new CapRedV2UserLoginDTO
            {
                Password = string.Empty
            };

            //Act
            var result = _validator.Validate(userSignUpDTO);

            //Assert
            Assert.IsFalse(result.Item1);
            StringAssert.Contains("Password is null or empty", result.Item2);
        }
Exemple #3
0
        public void Validate_ValidPassword_ReturnTrue()
        {
            //Arrange
            var userSignUpDTO = new CapRedV2UserLoginDTO
            {
                Password = "******"
            };

            //Act
            var result = _validator.Validate(userSignUpDTO);

            //Assert
            Assert.IsTrue(result.Item1);
            Assert.IsEmpty(result.Item2);
        }
        public void Validate_Null_ReturnsFalse()
        {
            //Arrange
            var userSignUpDTO = new CapRedV2UserLoginDTO
            {
                Email = null
            };

            //Act
            var result = _validator.Validate(userSignUpDTO);

            //Assert
            Assert.IsFalse(result.Item1);
            StringAssert.Contains(result.Item2, "The email has an invalid format");
        }
        public void Validate_ValidEmail_ReturnsTrue()
        {
            //Arrange
            var userSignUpDTO = new CapRedV2UserLoginDTO
            {
                Email = "*****@*****.**"
            };

            //Act
            var result = _validator.Validate(userSignUpDTO);

            //Assert
            Assert.IsTrue(result.Item1);
            Assert.IsEmpty(result.Item2);
        }
Exemple #6
0
        public async Task <Tuple <CapRedV2User, SignInResult> > LoginAsync(CapRedV2UserLoginDTO capRedV2UserLoginDTO)
        {
            _loginValidatorEngine.Validate(capRedV2UserLoginDTO);

            var user = await _userManager.FindByNameAsync(capRedV2UserLoginDTO.Email);

            if (user == null || !await _userManager.CheckPasswordAsync(user, capRedV2UserLoginDTO.Password))
            {
                throw new BusinessValidationException("Invalid Login and/or password");
            }

            var signInResult = await _signInManager.PasswordSignInAsync(user, capRedV2UserLoginDTO.Password,
                                                                        true, false);

            return(new Tuple <CapRedV2User, SignInResult>(user, signInResult));
        }
        public void LoginAsync_ValidEmailAndPassword_ReturnSignInResult()
        {
            //Arrange
            var capRedV2LoginDTO = new CapRedV2UserLoginDTO
            {
                Email    = ValidUser.Email,
                Password = ValidPassword
            };

            //Act
            var response = _service.LoginAsync(capRedV2LoginDTO).Result;

            //Assert
            Assert.IsNotNull(response);
            Assert.AreEqual(ValidUser, response.Item1);
            Assert.AreEqual(SignInResult.Success, response.Item2);
        }
        public void LoginAsync_InvalidEmailAndPassword_ThrowBusinessValidationException()
        {
            //Arrange
            var capRedV2LoginDTO = new CapRedV2UserLoginDTO
            {
                Email    = InvalidUser.Email,
                Password = InvalidPassword
            };

            //Act
            var ex = Assert.Throws <AggregateException>(() =>
            {
                // ReSharper disable once UnusedVariable
                var result = _service.LoginAsync(capRedV2LoginDTO).Result;
            });

            //Assert
            Assert.IsNotNull(ex);
            Assert.IsNotNull(ex.InnerException);
            Assert.IsInstanceOf <BusinessValidationException>(ex.InnerException);
            StringAssert.Contains("Invalid Login and/or password", ex.InnerException.Message);
        }