Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }