public async Task CreateGetReturnsForbidResultWhenUserIsNotAuthorized() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <CreateVolunteerTaskQuery>())).ReturnsAsync(new EditViewModel()); mediator.Setup(x => x.SendAsync(It.IsAny <AllReady.Areas.Admin.Features.Events.AuthorizableEventQuery>())) .ReturnsAsync(new FakeAuthorizableEvent(false, false, false, false)); var sut = new VolunteerTaskController(mediator.Object, null); sut.SetDefaultHttpContext(); var result = await sut.Create(It.IsAny <int>()); Assert.IsType <ForbidResult>(result); }
public async Task CreateGetReturnsCorrectView() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <CreateVolunteerTaskQuery>())).ReturnsAsync(new EditViewModel { }); mediator.Setup(x => x.SendAsync(It.IsAny <AllReady.Areas.Admin.Features.Events.AuthorizableEventQuery>())) .ReturnsAsync(new FakeAuthorizableEvent(false, false, false, true)); var urlHelper = new Mock <IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny <UrlActionContext>())).Returns(It.IsAny <string>()); var sut = new VolunteerTaskController(mediator.Object, null) { Url = urlHelper.Object }; var result = await sut.Create(It.IsAny <int>()) as ViewResult; Assert.Equal("Edit", result.ViewName); }
public async Task CreateGetSendsCreateTaskQueryWithTheCorrectEventId() { const int eventId = 1; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <CreateVolunteerTaskQuery>())).ReturnsAsync(new EditViewModel { }); mediator.Setup(x => x.SendAsync(It.IsAny <AllReady.Areas.Admin.Features.Events.AuthorizableEventQuery>())) .ReturnsAsync(new FakeAuthorizableEvent(false, false, false, true)); var urlHelper = new Mock <IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny <UrlActionContext>())).Returns(It.IsAny <string>()); var sut = new VolunteerTaskController(mediator.Object, null) { Url = urlHelper.Object }; await sut.Create(eventId); mediator.Verify(x => x.SendAsync(It.Is <CreateVolunteerTaskQuery>(y => y.EventId == eventId)), Times.Once); }