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); }
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); }