public async Task ConfirmEmailReturnsCorrectViewWhenUsersConfirmationIsSuccessful() { var userManager = CreateUserManagerMock(); userManager.Setup(x => x.FindByIdAsync(It.IsAny<string>())).Returns(() => Task.FromResult(new ApplicationUser())); userManager.Setup(x => x.ConfirmEmailAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Success)); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(It.IsAny<string>()); var settings = new Mock<IOptions<SampleDataSettings>>(); settings.Setup(x => x.Value).Returns(new SampleDataSettings { DefaultAdminUsername = It.IsAny<string>() }); var sut = new AdminController(userManager.Object, null, Mock.Of<IMediator>(), settings.Object, null); sut.SetFakeHttpRequestSchemeTo(It.IsAny<string>()); sut.Url = urlHelper.Object; var result = await sut.ConfirmEmail("userId", "code") as ViewResult; Assert.Equal(result.ViewName, "ConfirmEmail"); }
public async Task ConfirmEmailReturnsCorrectViewWhenUsersConfirmationIsUnsuccessful() { var userManager = CreateUserManagerMock(); userManager.Setup(x => x.FindByIdAsync(It.IsAny<string>())).Returns(() => Task.FromResult(new ApplicationUser())); userManager.Setup(x => x.ConfirmEmailAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Failed())); var sut = new AdminController(userManager.Object, null, null, null, null); var result = await sut.ConfirmEmail("userId", "code") as ViewResult; Assert.Equal(result.ViewName, "Error"); }
public async Task ConfirmEmailInvokesUrlActionWithCorrectParametersWhenUsersEmailIsConfirmedSuccessfully() { const string requestScheme = "requestScheme"; const string userId = "1"; var userManager = CreateUserManagerMock(); userManager.Setup(x => x.FindByIdAsync(It.IsAny<string>())).Returns(() => Task.FromResult(new ApplicationUser { Id = userId })); userManager.Setup(x => x.ConfirmEmailAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Success)); var settings = new Mock<IOptions<SampleDataSettings>>(); settings.Setup(x => x.Value).Returns(new SampleDataSettings()); var urlHelper = new Mock<IUrlHelper>(); var sut = new AdminController(userManager.Object, null, Mock.Of<IMediator>(), settings.Object, null); sut.SetFakeHttpRequestSchemeTo(requestScheme); sut.Url = urlHelper.Object; await sut.ConfirmEmail(It.IsAny<string>(), "code"); urlHelper.Verify(x => x.Action(It.Is<UrlActionContext>(uac => uac.Action == "EditUser" && uac.Controller == "Site" && uac.Protocol == requestScheme && uac.Values.ToString() == $"{{ area = Admin, userId = {userId} }}")), Times.Once); }
public async Task ConfirmEmailSendsSendApproveOrganizationUserAccountEmailWithCorrectDataWhenUsersEmailIsConfirmedSuccessfully() { const string defaultAdminUserName = "******"; const string callbackUrl = "callbackUrl"; var userManager = CreateUserManagerMock(); userManager.Setup(x => x.FindByIdAsync(It.IsAny<string>())).Returns(() => Task.FromResult(new ApplicationUser())); userManager.Setup(x => x.ConfirmEmailAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Success)); var settings = new Mock<IOptions<SampleDataSettings>>(); settings.Setup(x => x.Value).Returns(new SampleDataSettings { DefaultAdminUsername = defaultAdminUserName }); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(callbackUrl); var mediator = new Mock<IMediator>(); var sut = new AdminController(userManager.Object, null, mediator.Object, settings.Object, null); sut.SetFakeHttpRequestSchemeTo(It.IsAny<string>()); sut.Url = urlHelper.Object; await sut.ConfirmEmail(It.IsAny<string>(), "code"); mediator.Verify(x => x.SendAsync(It.Is<SendApproveOrganizationUserAccountEmail>(y => y.DefaultAdminUsername == defaultAdminUserName && y.CallbackUrl == callbackUrl))); }
public async Task ConfirmEmailInvokesConfirmEmailAsyncWithCorrectUserAndCode() { const string code = "code"; var user = new ApplicationUser(); var userManager = CreateUserManagerMock(); userManager.Setup(x => x.FindByIdAsync(It.IsAny<string>())).Returns(() => Task.FromResult(user)); userManager.Setup(x => x.ConfirmEmailAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Failed())); var sut = new AdminController(userManager.Object, null, null, null, null); await sut.ConfirmEmail(null, code); userManager.Verify(x => x.ConfirmEmailAsync(user, code), Times.Once); }
public async Task ConfirmEmailInvokesFindByIdAsyncWithCorrectUserId() { const string userId = "userId"; var userManager = CreateUserManagerMock(); var sut = new AdminController(userManager.Object, null, null, null, null); await sut.ConfirmEmail(userId, "code"); userManager.Verify(x => x.FindByIdAsync(userId), Times.Once); }
public async Task ConfirmEmailReturnsErrorWhenCannotFindUserByUserId() { var userManager = CreateUserManagerMock(); var sut = new AdminController(userManager.Object, null, null, null, null); var result = await sut.ConfirmEmail(null, "code") as ViewResult; Assert.Equal(result.ViewName, "Error"); }
public async Task ConfirmEmailInvokesSendEmailAsyncWithCorrectParametersWhenUsersEmailIsConfirmedSuccessfully() { const string defaultAdminUserName = "******"; const string callbackUrl = "callbackUrl"; var userManager = CreateUserManagerMock(); userManager.Setup(x => x.FindByIdAsync(It.IsAny<string>())).Returns(() => Task.FromResult(new ApplicationUser())); userManager.Setup(x => x.ConfirmEmailAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Success)); var settings = new Mock<IOptions<SampleDataSettings>>(); settings.Setup(x => x.Value).Returns(new SampleDataSettings { DefaultAdminUsername = defaultAdminUserName }); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(callbackUrl); var emailSender = new Mock<IEmailSender>(); var sut = new AdminController(userManager.Object, null, emailSender.Object, null, settings.Object, null); sut.SetFakeHttpRequestSchemeTo(It.IsAny<string>()); sut.Url = urlHelper.Object; await sut.ConfirmEmail(It.IsAny<string>(), "code"); emailSender.Verify(x => x.SendEmailAsync(defaultAdminUserName, "Approve organization user account", $"Please approve this account by clicking this <a href=\"{callbackUrl}\">link</a>")); }
public async Task ConfirmEmailInvokesUrlActionWithCorrectParametersWhenUsersEmailIsConfirmedSuccessfully() { const string requestScheme = "requestScheme"; var userManager = CreateUserManagerMock(); userManager.Setup(x => x.FindByIdAsync(It.IsAny<string>())).Returns(() => Task.FromResult(new ApplicationUser())); userManager.Setup(x => x.ConfirmEmailAsync(It.IsAny<ApplicationUser>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Success)); var settings = new Mock<IOptions<SampleDataSettings>>(); settings.Setup(x => x.Value).Returns(new SampleDataSettings()); var urlHelper = new Mock<IUrlHelper>(); var sut = new AdminController(userManager.Object, null, Mock.Of<IEmailSender>(), null, settings.Object, null); sut.SetFakeHttpRequestSchemeTo(requestScheme); sut.Url = urlHelper.Object; await sut.ConfirmEmail(It.IsAny<string>(), "code"); //note: I can't test the Values part here b/c I do not have control over the Id generation on ApplicationUser b/c it's new'ed up in the controller urlHelper.Verify(x => x.Action(It.Is<UrlActionContext>(uac => uac.Action == "EditUser" && uac.Controller == "Site" && uac.Protocol == requestScheme)), Times.Once); }