예제 #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 CampaignDetailViewModel {
                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));
            CampaignDetailViewModel viewModel = (CampaignDetailViewModel)view.ViewData.Model;

            Assert.Equal(viewModel.Id, CAMPAIGN_ID);
            Assert.Equal(viewModel.OrganizationId, ORGANIZATION_ID);
        }
        public async Task ReturnCampaignManagerInvitesWithStatusPending_WhenNotRejectedAcceptedOrRevoked()
        {
            var context = ServiceProvider.GetService <AllReadyContext>();
            var query   = new CampaignDetailQuery {
                CampaignId = _campaignId
            };
            var handler = new CampaignDetailQueryHandler(context);
            CampaignDetailViewModel result = await handler.Handle(query);

            result.CampaignManagerInvites.Count().ShouldBe(1);
            result.CampaignManagerInvites.Single().Id.ShouldBe(1);
            result.CampaignManagerInvites.Single().InviteeEmail.ShouldBe("*****@*****.**");
            result.CampaignManagerInvites.Single().Status.ShouldBe(CampaignDetailViewModel.CampaignManagerInviteStatus.Pending);
        }
        public async Task ReturnCampaignManagerInvitesWithStatusAccepted_WhenInviteIsAccepted()
        {
            var context = ServiceProvider.GetService <AllReadyContext>();
            var query   = new CampaignDetailQuery {
                CampaignId = _campaignId
            };
            var handler = new CampaignDetailQueryHandler(context);
            CampaignManagerInvite invite = context.CampaignManagerInvites.Where(c => c.CampaignId == _campaignId).Single();

            invite.AcceptedDateTimeUtc = new DateTime(2015, 5, 29);
            context.SaveChanges();

            CampaignDetailViewModel result = await handler.Handle(query);

            result.CampaignManagerInvites.Count().ShouldBe(1);
            result.CampaignManagerInvites.Single().Id.ShouldBe(1);
            result.CampaignManagerInvites.Single().InviteeEmail.ShouldBe("*****@*****.**");
            result.CampaignManagerInvites.Single().Status.ShouldBe(CampaignDetailViewModel.CampaignManagerInviteStatus.Accepted);
        }
예제 #4
0
        public async Task DetailsReturnsCorrectViewModelWhenViewModelIsNotNullAndUserIsAuthorized()
        {
            const int campaignId     = 100;
            const int organizationId = 99;
            var       viewModel      = new CampaignDetailViewModel {
                OrganizationId = organizationId, Id = campaignId
            };

            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(mock => mock.SendAsync(It.Is <CampaignDetailQuery>(c => c.CampaignId == campaignId))).ReturnsAsync(viewModel).Verifiable();
            mockMediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableCampaignQuery>())).ReturnsAsync(new FakeAuthorizableCampaign(true, false, false, false));

            // user is org admin
            var sut = new CampaignController(mockMediator.Object, null);

            var view            = (ViewResult)(await sut.Details(campaignId));
            var resultViewModel = (CampaignDetailViewModel)view.ViewData.Model;

            Assert.Equal(resultViewModel.Id, campaignId);
            Assert.Equal(resultViewModel.OrganizationId, organizationId);
        }