Exemplo n.º 1
0
        public void CreateInstances()
        {
            IList <string> roles = new List <string> {
                "role1", "role2"
            };

            _userManager = Substitute.For <ICapRedV2UserManager <CapRedV2User> >();
            _userManager.CreateAsync(ValidUser, Arg.Any <string>())
            .Returns(Task.FromResult(new IdentityResult()));

            _userManager.FindByNameAsync(InvalidUser.UserName)
            .Returns((CapRedV2User)null);

            _userManager.FindByNameAsync(ValidUser.UserName)
            .Returns(Task.FromResult(ValidUser));

            _userManager.CheckPasswordAsync(ValidUser, ValidPassword)
            .Returns(Task.FromResult(true));

            _userManager.CheckPasswordAsync(InvalidUser, Arg.Any <string>())
            .Returns(Task.FromResult(false));

            _userManager.CheckPasswordAsync(ValidUser, InvalidPassword)
            .Returns(Task.FromResult(false));

            _userManager.GetRolesAsync(ValidUser)
            .Returns(Task.FromResult(roles));

            _signInManager = Substitute.For <ICapRedV2SignInManager <CapRedV2User> >();

            _signInManager.PasswordSignInAsync(ValidUser, ValidPassword, Arg.Any <bool>(), Arg.Any <bool>())
            .Returns(Task.FromResult(SignInResult.Success));

            _service = new UserService(_userManager, _signInManager, GenerateValidatorEngine <CapRedV2UserSignUpDTO>(),
                                       GenerateValidatorEngine <CapRedV2UserLoginDTO>());
        }
Exemplo n.º 2
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));
        }