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>()); }
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)); }