public void ChangePasswordGET_WhenCalled_ReturnsView() { ManageController controller = new ManageController(userManager: null, signInManager: null, veilDataAccess: null, idGetter: null, stripeService: null); var result = controller.ChangePassword(); Assert.That(result != null); Assert.That(result.ViewName, Is.Empty.Or.EqualTo(nameof(ManageController.ChangePassword))); }
public async void ChangePassword_SuccessfulChange() { ChangePasswordViewModel passwordModel = new ChangePasswordViewModel() { OldPassword = "******", NewPassword = "******", }; User user = new User() { Id = memberId, Email = "*****@*****.**", NewEmail = "*****@*****.**" }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<IAuthenticationManager> authenticationManagerStub = new Mock<IAuthenticationManager>(); Mock<IUserStore<User, Guid>> userStoreStub = new Mock<IUserStore<User, Guid>>(); Mock<VeilUserManager> userManagerStub = new Mock<VeilUserManager>(dbStub.Object, null /*messageService*/, null /*dataProtectionProvider*/); userManagerStub.Setup(um => um.FindByIdAsync(memberId)).ReturnsAsync(user); userManagerStub.Setup(um => um.ChangePasswordAsync(It.IsAny<Guid>(), It.IsAny<string>(), It.IsAny<string>())) .ReturnsAsync(IdentityResult.Success); dbStub.Setup(db => db.UserStore).Returns(userStoreStub.Object); Mock<VeilSignInManager> signInManagerMock = new Mock<VeilSignInManager>(userManagerStub.Object, authenticationManagerStub.Object); signInManagerMock.Setup(sm => sm.SignInAsync(It.IsAny<User>(), It.IsAny<bool>(), It.IsAny<bool>())).Returns(Task.FromResult(0)); Mock<ControllerContext> context = new Mock<ControllerContext>(); context.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); context.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(memberId); ManageController controller = new ManageController(userManagerStub.Object, signInManagerMock.Object, dbStub.Object, idGetterStub.Object, null) { ControllerContext = context.Object }; var result = await controller.ChangePassword(passwordModel) as RedirectToRouteResult; Assert.That(result != null); Assert.That(result.RouteValues["action"], Is.EqualTo("Index")); }
public async void ChangePassword_InvalidModelState() { ChangePasswordViewModel passwordModel = new ChangePasswordViewModel(); ManageController controller = new ManageController(null, null, null, null, null); controller.ModelState.AddModelError("error", "this is an error"); var result = await controller.ChangePassword(passwordModel); Assert.That(result != null); }
public async void ChangePassword_ThrowsDbEntityValidationException() { ChangePasswordViewModel passwordModel = new ChangePasswordViewModel() { NewPassword = "******", OldPassword = "******" }; Mock<IVeilDataAccess> dbStub = TestHelpers.GetVeilDataAccessFake(); Mock<IUserStore<User, Guid>> userStoreStub = new Mock<IUserStore<User, Guid>>(); Mock<VeilUserManager> userManagerStub = new Mock<VeilUserManager>(dbStub.Object, null /*messageService*/, null /*dataProtectionProvider*/); userManagerStub.Setup(um => um.ChangePasswordAsync(It.IsAny<Guid>(), It.IsAny<string>(), It.IsAny<string>())) .ThrowsAsync(new DbEntityValidationException()); dbStub.Setup(db => db.UserStore).Returns(userStoreStub.Object); Mock<ControllerContext> context = new Mock<ControllerContext>(); context.Setup(c => c.HttpContext.User.Identity).Returns<IIdentity>(null); context.Setup(c => c.HttpContext.User.Identity.IsAuthenticated).Returns(true); Mock<IGuidUserIdGetter> idGetterStub = new Mock<IGuidUserIdGetter>(); idGetterStub.Setup(id => id.GetUserId(It.IsAny<IIdentity>())).Returns(memberId); ManageController controller = new ManageController(userManagerStub.Object, null, dbStub.Object, idGetterStub.Object, null) { ControllerContext = context.Object }; var result = await controller.ChangePassword(passwordModel); Assert.That(result != null); }