public void RedirectToCorrectActionResultWithCorrectRouteValues_WhenReturnUrlIsNotALocalUrl_AndUserIsSiteAdmin() { var applicationUser = new ApplicationUser(); applicationUser.MakeSiteAdmin(); //applicationUser.Claims.Add(new IdentityUserClaim<string> //{ // ClaimType = AllReady.Security.ClaimTypes.UserType, // ClaimValue = Enum.GetName(typeof(UserType), UserType.SiteAdmin) //}); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.IsLocalUrl(It.IsAny<string>())).Returns(false); var routeValueDictionary = new RouteValueDictionary { ["area"] = "Admin" }; var sut = new RedirectAccountControllerRequests(); var result = sut.RedirectToLocal(It.IsAny<string>(), applicationUser, urlHelper.Object) as RedirectToActionResult; Assert.Equal(result.ActionName, nameof(SiteController.Index)); Assert.Equal(result.ControllerName, "Site"); Assert.Equal(result.RouteValues, routeValueDictionary); }
public async Task LoginPostReturnsErrorViewWithCorrectTextInViewData_WhenUserIsNotNull_AndUserIsASiteAdmin_AndUsersEmailIsNotConfirmed() { var applicationUser = new ApplicationUser(); applicationUser.MakeSiteAdmin(); var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<ApplicationUserQuery>())).ReturnsAsync(applicationUser); var userManager = MockHelper.CreateUserManagerMock(); userManager.Setup(x => x.IsEmailConfirmedAsync(applicationUser)).ReturnsAsync(false).Verifiable(); var signInManager = MockHelper.CreateSignInManagerMock(userManager); signInManager.Setup(x => x.PasswordSignInAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>(), It.IsAny<bool>())).ReturnsAsync(Microsoft.AspNetCore.Identity.SignInResult.Failed); var sut = new AccountController(userManager.Object, signInManager.Object, null, mediator.Object, null, null); var result = await sut.Login(new LoginViewModel()) as ViewResult; Assert.Equal(result.ViewData["Message"], "You must have a confirmed email to log on."); Assert.Equal(result.ViewName, "Error"); }