private static void IndexReturnsCorrectDataWhenUserIsOrgAdmin()
{
const int organizationId = 99;
var mockMediator = new Mock<IMediator>();
mockMediator.Setup(x => x.Send(It.Is<CampaignListQuery>(c => c.OrganizationId == organizationId)))
.Returns((CampaignListQuery q) =>
{
var ret = new List<CampaignSummaryViewModel>
{
new CampaignSummaryViewModel { OrganizationId = organizationId }
};
return ret;
}
);
var controller = new CampaignController(mockMediator.Object, null);
controller.MakeUserAnOrgAdmin(organizationId.ToString());
var view = (ViewResult)controller.Index();
mockMediator.Verify(mock => mock.Send(It.Is<CampaignListQuery>(c => c.OrganizationId == organizationId)));
// Org admin should only see own campaigns
var viewModel = (IEnumerable<CampaignSummaryViewModel>)view.ViewData.Model;
Assert.NotNull(viewModel);
Assert.Equal(viewModel.Count(), 1);
Assert.Equal(viewModel.First().OrganizationId, organizationId);
}