public async Task Given_CorrectInformationProvided_When_ChangePassword_Then_SavesRedirectsAndEmails() { // Arrange var model = new ViewModel.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.Stub(u => u.GetRequester(Arg <Controller> .Is.Anything, Arg <AppSensorDetectionPointKind> .Is.Anything)).Return(new Requester() { LoggedOnUserId = 5 }); _recaptcha.Expect(a => a.ValidateRecaptcha(Arg <Controller> .Is.Anything)).Return(true); // Act var result = await _sut.ChangePassword(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()); }
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_PasswordsDontMatch_When_ChangePassword_Then_ViewReturnedWithError() { // 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(new List <string> { "Passwords don't match" }))); 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, "ChangePassword"); Context.AssertWasNotCalled(a => a.SaveChanges()); AssertViewResultWithError(result, "Passwords don't match"); }