public async void new_should_redirect_if_model_is_valid() { //arrange var validModel = new UserModel { Name = "test name", Email = "*****@*****.**", Password = "******" }; var userService = new Mock <IUserService>(); userService.Setup(x => x.Create(It.IsAny <UserModel>(), SetLocaleRole.Developer.Value)).Returns(() => Task.FromResult <int?>(1)); var formsAuthenticationService = new Mock <IFormsAuthenticationService>(); formsAuthenticationService.Setup(x => x.SignIn(string.Format("{0}|{1}|{2}", 1, validModel.Name, validModel.Email), true)); //act var sut = new UserControllerBuilder().WithUserService(userService.Object) .WithFormsAuthenticationService(formsAuthenticationService.Object) .Build(); var view = await sut.New(validModel); //assert Assert.NotNull(view); Assert.AreEqual(((RedirectResult)view).Url, "/user/apps"); userService.Verify(x => x.Create(It.IsAny <UserModel>(), SetLocaleRole.Developer.Value), Times.Once); sut.AssertPostAndAntiForgeryTokenAttribute("New", new[] { typeof(UserModel) }); sut.AssertAllowAnonymousAttribute("New", new[] { typeof(UserModel) }); }
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 void login_should_return_with_login_model() { //act var sut = new UserControllerBuilder().Build(); var view = sut.Login() as ViewResult; //assert Assert.NotNull(view); var model = view.Model; Assert.NotNull(model); Assert.IsAssignableFrom(typeof(LoginModel), model); sut.AssertGetAttribute("Login"); sut.AssertAllowAnonymousAttribute("Login"); }
public void reset_should_return_with_reset_model() { //act var sut = new UserControllerBuilder().BuildWithMockControllerContext(); var view = sut.Reset() as ViewResult; //assert Assert.NotNull(view); var model = view.Model; Assert.NotNull(model); Assert.IsAssignableFrom(typeof(ResetModel), model); sut.AssertGetAttribute("Reset"); sut.AssertAllowAnonymousAttribute("Reset"); }
public async void login_should_return_with_login_model_if_model_is_invalid() { //arrange var invalidModel = new LoginModel { Email = "*****@*****.**" }; //act var sut = new UserControllerBuilder().Build();; var view = await sut.Login(invalidModel) as ViewResult; //assert Assert.NotNull(view); var model = view.Model; Assert.NotNull(model); Assert.IsAssignableFrom(typeof(LoginModel), model); sut.AssertPostAndAntiForgeryTokenAttribute("Login", new[] { typeof(LoginModel) }); sut.AssertAllowAnonymousAttribute("Login", new[] { typeof(LoginModel) }); }
public async void new_should_return_with_user_model_if_model_is_invalid() { //arrange var invalidModel = new UserModel { Name = "test name" }; //act var sut = new UserControllerBuilder().Build(); var view = await sut.New(invalidModel) as ViewResult; //assert Assert.NotNull(view); var model = view.Model; Assert.NotNull(model); Assert.IsAssignableFrom(typeof(UserModel), model); sut.AssertPostAndAntiForgeryTokenAttribute("New", new[] { typeof(UserModel) }); sut.AssertAllowAnonymousAttribute("New", new[] { typeof(UserModel) }); }
public async void any_user_can_change_password() { //arrange var userService = new Mock <IUserService>(); userService.Setup(x => x.ChangePassword(ValidPasswordChangeModel.Email, ValidPasswordChangeModel.Token, ValidPasswordChangeModel.Password)) .Returns(Task.FromResult(true)); //act var sut = new UserControllerBuilder().WithUserService(userService.Object) .Build(); var result = await sut.PasswordChange(ValidPasswordChangeModel); //assert Assert.IsNotNull(result); Assert.IsAssignableFrom <RedirectResult>(result); userService.Verify(x => x.ChangePassword(ValidPasswordChangeModel.Email, ValidPasswordChangeModel.Token, ValidPasswordChangeModel.Password), Times.Once); sut.AssertPostAttributeWithOutAntiForgeryToken(ACTION_PASSWORD_CHANGE, new[] { typeof(PasswordChangeModel) }); sut.AssertAllowAnonymousAttribute(ACTION_PASSWORD_CHANGE, new[] { typeof(PasswordChangeModel) }); }
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) }); }
public async void login_should_redirect_if_model_is_valid() { //arrange const int id = 1; const string email = "*****@*****.**"; const string name = "test"; var validModel = new LoginModel { Email = email, Password = "******" }; var userService = new Mock <IUserService>(); userService.Setup(x => x.Authenticate(validModel.Email, validModel.Password)).Returns(() => Task.FromResult(true)); userService.Setup(x => x.GetByEmail(validModel.Email)) .Returns(() => Task.FromResult(new User { Id = id, Name = name, Email = email })); var formsAuthenticationService = new Mock <IFormsAuthenticationService>(); formsAuthenticationService.Setup(x => x.SignIn(string.Format("{0}|{1}|{2}", id, name, email), true)); //act var sut = new UserControllerBuilder().WithUserService(userService.Object) .WithFormsAuthenticationService(formsAuthenticationService.Object) .Build(); var view = await sut.Login(validModel) as RedirectResult; //assert Assert.NotNull(view); Assert.AreEqual(view.Url, "/user/apps"); userService.Verify(x => x.Authenticate(validModel.Email, validModel.Password), Times.Once); sut.AssertPostAndAntiForgeryTokenAttribute("Login", new[] { typeof(LoginModel) }); sut.AssertAllowAnonymousAttribute("Login", new[] { typeof(LoginModel) }); }