public async Task PublishReturnsHttpForbidResultWhenUserIsNotAuthorized() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <PublishViewModelQuery>())).ReturnsAsync(new PublishViewModel()); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(false, false, false, false)); var sut = new CampaignController(mediator.Object, null); Assert.IsType <ForbidResult>(await sut.Publish(It.IsAny <int>())); }
public async Task PublishReturnsHttpUnauthorizedResultWhenUserIsNotOrgAdmin() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <PublishViewModelQuery>())).ReturnsAsync(new PublishViewModel()); var sut = new CampaignController(mediator.Object, null); sut.MakeUserNotAnOrgAdmin(); Assert.IsType <UnauthorizedResult>(await sut.Publish(It.IsAny <int>())); }
public async Task PublishReturnsCorrectViewWhenUserIsAuthorized() { const int campaignId = 100; var viewModel = new PublishViewModel { Id = campaignId }; var mediator = new Mock <IMediator>(); mediator.Setup(mock => mock.SendAsync(It.Is <PublishViewModelQuery>(c => c.CampaignId == campaignId))).ReturnsAsync(viewModel); mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(true, false, false, false)); var sut = new CampaignController(mediator.Object, null); Assert.IsType <ViewResult>(await sut.Publish(campaignId)); }
public async Task PublishReturnsCorrectViewWhenUserIsOrgAdmin() { const int organizationId = 1; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <PublishViewModelQuery>())).ReturnsAsync(new PublishViewModel { OrganizationId = organizationId }); var sut = new CampaignController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); Assert.IsType <ViewResult>(await sut.Publish(It.IsAny <int>())); }
public async Task PublishSendsPublishQueryWithCorrectCampaignId() { const int organizationId = 99; const int campaignId = 100; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.Is <PublishViewModelQuery>(c => c.CampaignId == campaignId))).ReturnsAsync(new PublishViewModel { Id = campaignId, OrganizationId = organizationId }); var sut = new CampaignController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); await sut.Publish(campaignId); mockMediator.Verify(mock => mock.SendAsync(It.Is <PublishViewModelQuery>(c => c.CampaignId == campaignId)), Times.Once); }
public async Task PublishReturnsCorrectViewModelWhenUserIsOrgAdmin() { const int organizationId = 99; const int campaignId = 100; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.Is <PublishViewModelQuery>(c => c.CampaignId == campaignId))).ReturnsAsync(new PublishViewModel { Id = campaignId, OrganizationId = organizationId }); var sut = new CampaignController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var view = (ViewResult)await sut.Publish(campaignId); var viewModel = (PublishViewModel)view.ViewData.Model; Assert.Equal(viewModel.Id, campaignId); }