public async Task AssignSiteAdminSendsUserByUserIdQueryWithCorrectUserId() { var mediator = new Mock<IMediator>(); var logger = new Mock<ILogger<SiteController>>(); string userId = It.IsAny<string>(); mediator.Setup(x => x.Send(It.Is<UserByUserIdQuery>(q => q.UserId == userId))).Returns(new ApplicationUser()); var controller = new SiteController(null, logger.Object, mediator.Object); await controller.AssignSiteAdmin(userId); mediator.Verify(m => m.Send(It.Is<UserByUserIdQuery>(q => q.UserId == userId)), Times.Once); }
public async Task AssignSiteAdminReturnsAViewWhenExceptionIsThrown() { var mediator = new Mock<IMediator>(); var logger = new Mock<ILogger<SiteController>>(); var userManager = CreateApplicationUserMock(); var user = new ApplicationUser() { Id = "1234" }; mediator.Setup(x => x.Send(It.Is<UserByUserIdQuery>(q => q.UserId == user.Id))) .Throws<Exception>(); var controller = new SiteController(userManager.Object, logger.Object, mediator.Object); var result = await controller.AssignSiteAdmin(user.Id); Assert.IsType<ViewResult>(result); }
public async Task AssignSiteAdminAddsCorrectErrorMessageToViewBagWhenExceptionIsThrown() { var mediator = new Mock<IMediator>(); var logger = new Mock<ILogger<SiteController>>(); var userManager = CreateApplicationUserMock(); var user = new ApplicationUser() { Id = "1234" }; mediator.Setup(x => x.Send(It.Is<UserByUserIdQuery>(q => q.UserId == user.Id))) .Throws<Exception>(); var controller = new SiteController(userManager.Object, logger.Object, mediator.Object); var result = await controller.AssignSiteAdmin(user.Id); Assert.Equal($"Failed to assign site admin for {user.Id}. Exception thrown.", controller.ViewBag.ErrorMessage); }
public async Task AssignSiteAdminInvokesLogErrorWhenExceptionIsThrown() { var mediator = new Mock<IMediator>(); var logger = new Mock<ILogger<SiteController>>(); var user = new ApplicationUser() { Id = "1234" }; mediator.Setup(x => x.Send(It.Is<UserByUserIdQuery>(q => q.UserId == user.Id))) .Throws<Exception>(); var controller = new SiteController(null, logger.Object, mediator.Object); var result = await controller.AssignSiteAdmin(user.Id); logger.Verify(l => l.Log<object>(LogLevel.Error, 0, It.IsAny<Microsoft.Extensions.Logging.Internal.FormattedLogValues>(), null, It.IsAny<Func<object, Exception, string>>())); }
public async Task AssignSiteAdminRedirectsToCorrectAction() { var mediator = new Mock<IMediator>(); var userManager = CreateApplicationUserMock(); var user = new ApplicationUser() { Id = "1234" }; mediator.Setup(x => x.Send(It.Is<UserByUserIdQuery>(q => q.UserId == user.Id))) .Returns(user); userManager.Setup(x => x.AddClaimAsync(It.IsAny<ApplicationUser>(), It.IsAny<Claim>())) .Returns(() => Task.FromResult(IdentityResult.Success)); var controller = new SiteController(userManager.Object, null, mediator.Object); var result = (RedirectToActionResult) await controller.AssignSiteAdmin(user.Id); Assert.Equal("Index", result.ActionName); }
public async Task AssignSiteAdminInvokesAddClaimAsyncWithCorrrectParameters() { var mediator = new Mock<IMediator>(); var userManager = CreateApplicationUserMock(); var user = new ApplicationUser() { Id = "1234" }; mediator.Setup(x => x.Send(It.Is<UserByUserIdQuery>(q => q.UserId == user.Id))) .Returns(user); var controller = new SiteController(userManager.Object, null, mediator.Object); await controller.AssignSiteAdmin(user.Id); userManager.Verify(x => x.AddClaimAsync(user, It.Is<Claim>(c => c.Value == UserType.SiteAdmin.ToName() && c.Type == AllReady.Security.ClaimTypes.UserType)), Times.Once); }