public async void any_user_can_login() { //arrange var userService = new Mock <IUserService>(); userService.Setup(x => x.Authenticate(ValidLoginModel.Email, ValidLoginModel.Password)) .Returns(Task.FromResult(true)); userService.Setup(x => x.GetByEmail(ValidLoginModel.Email)) .Returns(Task.FromResult(ValidUserEntity)); var authService = new Mock <IAuthService>(); authService.Setup(x => x.SignIn(ValidUserEntity.Id, ValidUserEntity.Name, ValidUserEntity.Email, ConstHelper.User, true)); ////act var sut = new UserControllerBuilder().WithUserService(userService.Object) .WithAuthService(authService.Object) .Build(); var result = await sut.Login(ValidLoginModel); ////assert Assert.IsNotNull(result); Assert.IsAssignableFrom <RedirectResult>(result); userService.Verify(x => x.Authenticate(ValidLoginModel.Email, ValidLoginModel.Password), Times.Once); userService.Verify(x => x.GetByEmail(ValidLoginModel.Email), Times.Once); authService.Verify(x => x.SignIn(ValidUserEntity.Id, ValidUserEntity.Name, ValidUserEntity.Email, ConstHelper.User, true), Times.Once); sut.AssertPostAttribute(ACTION_LOGIN, new[] { typeof(LoginModel) }); sut.AssertAllowAnonymousAttribute(ACTION_LOGIN, new[] { typeof(LoginModel) }); }
public async void any_user_can_request_password_reset_link() { //arrange var userService = new Mock <IUserService>(); userService.Setup(x => x.RequestPasswordReset(ValidPasswordResetModel.Email)) .Returns(Task.FromResult(true)); //act var sut = new UserControllerBuilder().WithUserService(userService.Object) .Build(); var result = await sut.PasswordReset(ValidPasswordResetModel); //assert Assert.IsNotNull(result); Assert.IsAssignableFrom <ViewResult>(result); userService.Verify(x => x.RequestPasswordReset(ValidPasswordResetModel.Email), Times.Once); sut.AssertPostAttribute(ACTION_PASSWORD_RESET, new[] { typeof(PasswordResetModel) }); sut.AssertAllowAnonymousAttribute(ACTION_PASSWORD_RESET, new[] { typeof(PasswordResetModel) }); }