public async Task DetailsReturnsCorrectViewModelWhenViewModelIsNotNullAndUserIsOrgAdmin() { int CAMPAIGN_ID = 100; int ORGANIZATION_ID = 99; var mockMediator = new Mock <IMediator>(); // model is not null mockMediator.Setup(mock => mock.SendAsync(It.Is <CampaignDetailQuery>(c => c.CampaignId == CAMPAIGN_ID))).ReturnsAsync(new CampaignDetailModel { OrganizationId = ORGANIZATION_ID, Id = CAMPAIGN_ID }).Verifiable(); // user is org admin CampaignController controller = new CampaignController(mockMediator.Object, null); controller.SetClaims(new List <Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, ORGANIZATION_ID.ToString()) }); ViewResult view = (ViewResult)(await controller.Details(CAMPAIGN_ID)); CampaignDetailModel viewModel = (CampaignDetailModel)view.ViewData.Model; Assert.Equal(viewModel.Id, CAMPAIGN_ID); Assert.Equal(viewModel.OrganizationId, ORGANIZATION_ID); }
public IActionResult Details(int id) { CampaignDetailModel campaign = _mediator.Send(new CampaignDetailQuery { CampaignId = id }); if (campaign == null) { return(HttpNotFound()); } if (!User.IsOrganizationAdmin(campaign.OrganizationId)) { return(HttpUnauthorized()); } return(View(campaign)); }