public void Given_SubmissionCorrect_When_EditPost_Then_ViewReturned(bool isAdmin) { // Arrange ExpectGetUserId(); ExpectActingUserIsAdmin(isAdmin); ExpectGetRequester(); var collection = new NameValueCollection { { "User.UserName", "*****@*****.**" }, { "User.FirstName", "new" }, { "User.LastName", "name" } }; // Act var result = _sut.Edit(TestUserId, new FormCollection(collection)); // Assert Context.AssertWasCalled(a => a.SaveChanges()); var modifiedUser = Context.User.Single(u => u.Id == TestUserId); if (isAdmin) { _services.AssertWasCalled(a => a.SendEmail(Arg <string> .Is.Anything, Arg <List <string> > .Matches(b => b.Contains("*****@*****.**")), Arg <List <string> > .Is.Anything, Arg <List <string> > .Is.Anything, Arg <string> .Is.Anything, Arg <string> .Is.Anything, Arg <bool> .Is.Anything)); Assert.That(modifiedUser.UserName, Is.EqualTo("*****@*****.**")); } else { Assert.That(modifiedUser.UserName, Is.Not.EqualTo("*****@*****.**")); } var viewResult = AssertViewResultReturned(result, "Edit"); Assert.AreEqual("Your account information has been saved", viewResult.ViewBag.StatusMessage); }
public async Task Given_CorrectInformationProvided_When_ChangePassword_Then_SavesRedirectsAndEmails() { // Arrange var model = new ChangePasswordViewModel { OldPassword = "******", NewPassword = "******", ConfirmPassword = "******" }; _userManager.Expect(a => a.ChangePasswordAsync(Arg <int> .Is.Anything, Arg <string> .Is.Anything, Arg <string> .Is.Anything)) .Return(Task.FromResult(new SeIdentityResult())); UserIdentity.Expect(a => a.GetUserId(Arg <Controller> .Is.Anything)).Return(5); _recaptcha.Expect(a => a.ValidateRecaptcha(Arg <Controller> .Is.Anything)).Return(true); // Act var result = await _sut.ChangePasswordAsync(model); // Assert AssertViewResultReturned(result, "ChangePasswordSuccess"); _services.AssertWasCalled(a => a.SendEmail(Arg <string> .Is.Anything, Arg <List <string> > .Is.Anything, Arg <List <string> > .Is.Anything, Arg <List <string> > .Is.Anything, Arg <string> .Is.Anything, Arg <string> .Is.Anything, Arg <bool> .Is.Anything)); _formsAuth.AssertWasCalled(a => a.SignOut()); Context.AssertWasCalled(a => a.SaveChanges()); _httpCache.AssertWasCalled(a => a.RemoveFromCache(Arg <string> .Is.Equal("MustChangePassword-5"))); }
public async Task Given_CredentialsIncorrect_When_LogonPost_Then_ErrorViewReturned() { // Arrange var logon = new LogOnViewModel { UserName = "******", Password = "******", RememberMe = false }; UserManagerAttemptsLoginWithResult(false); ExpectGetRequester(); _services.Expect(a => a.Wait(Arg <int> .Is.Anything)); // Act var result = await _sut.LogOnAsync(logon, _returnUrl); // Assert AssertViewResultWithError(result, "Invalid credentials or the account is locked"); _userManager.AssertWasNotCalled(a => a.LogOnAsync(Arg <string> .Is.Anything, Arg <bool> .Is.Anything)); _services.AssertWasCalled(a => a.Wait(Arg <int> .Matches(b => b >= 500))); }