public async Task DetailsReturnsHttpNotFoundResult_WhenEventIsNull() { var sut = new EventController(null, Mock.Of<IMediator>(), null); var result = await sut.Details(It.IsAny<int>()); Assert.IsType<NotFoundResult>(result); }
public void DetailsHasRouteAttributeWithCorrectRoute() { var sut = new EventController(null, null); var routeAttribute = sut.GetAttributesOn(x => x.Details(It.IsAny<int>())).OfType<RouteAttribute>().SingleOrDefault(); Assert.NotNull(routeAttribute); Assert.Equal(routeAttribute.Template, "Admin/Event/Details/{id}"); }
public async Task DetailsReturnsHttpUnauthorizedResult_WhenEventIsNotNull_AndUserIsNotAnOrgAdmin() { var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<EventDetailQuery>())).ReturnsAsync(new EventDetailViewModel { Id = 1, Name = "Itinerary", OrganizationId = 1 }); var sut = new EventController(null, mediator.Object, null); sut.MakeUserNotAnOrgAdmin(); Assert.IsType<UnauthorizedResult>(await sut.Details(It.IsAny<int>())); }
public async Task DetailsReturnsHttpNotFoundResultWhenEventIsNull() { var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<CampaignSummaryQuery>())).ReturnsAsync(new CampaignSummaryViewModel()); var sut = new EventController(null, mediator.Object, null); var result = await sut.Details(It.IsAny<int>()); Assert.IsType<NotFoundResult>(result); }
public async Task DetailsReturnsHttpUnauthorizedResultWhenEventIsNotNullAndUserIsNotAnOrgAdmin() { var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<EventDetailQuery>())).ReturnsAsync(new EventDetailViewModel { Id = 1, Name = "Itinerary", OrganizationId = 1 }); var sut = new EventController(null, mediator.Object, null); sut.SetClaims(new List<Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, It.IsAny<int>().ToString()) }); Assert.IsType<UnauthorizedResult>(await sut.Details(It.IsAny<int>())); }
public void RequestsHasRouteAttributeWithCorrectRoute() { var sut = new EventController(Mock.Of<IImageService>(), Mock.Of<IMediator>(), Mock.Of<IValidateEventDetailModels>()); var routeAttribute = sut.GetAttributesOn(x => x.Requests(It.IsAny<int>(), null)).OfType<RouteAttribute>().SingleOrDefault(); Assert.NotNull(routeAttribute); Assert.Equal(routeAttribute.Template, "Admin/Event/[action]/{id}/{status?}"); }
public async Task EditPostReturnsBadRequestResult_WhenEventIsNull() { var sut = new EventController(null, Mock.Of<IMediator>(), null); Assert.IsType<BadRequestResult>(await sut.Edit(It.IsAny<EventEditViewModel>(), It.IsAny<IFormFile>())); }
public async Task RequestsSetsCorrectPageTitleOnModel_WhenStatusParamIsSet() { const int orgId = 1; var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<OrganizationIdByEventIdQuery>())).ReturnsAsync(orgId); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<EventRequestsQuery>())).ReturnsAsync(new EventRequestsViewModel()); var sut = new EventController(null, mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.Requests(1, "Assigned") as ViewResult; result.ShouldNotBeNull(); var viewModel = result.Model as EventRequestsViewModel; viewModel.ShouldNotBeNull(); viewModel.PageTitle.ShouldBe("Assigned Requests"); }
public async Task RequestsSendsEventByIdQuery() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.Send(It.IsAny<EventByIdQuery>())).Returns(It.IsAny<Event>()).Verifiable(); var sut = new EventController(Mock.Of<IImageService>(), mockMediator.Object, Mock.Of<IValidateEventDetailModels>()); await sut.Requests(1, null); mockMediator.Verify(x => x.Send(It.IsAny<EventByIdQuery>()), Times.Once); }
public async Task DeleteConfirmedReturnsHttpUnauthorizedResult_WhenUserIsNotOrgAdmin() { var sut = new EventController(null, null, null); Assert.IsType<UnauthorizedResult>(await sut.DeleteConfirmed(new DeleteViewModel { UserIsOrgAdmin = false })); }
public async Task DeleteGetSetsTheCorrectTitleOnTheViewModel() { const string eventName = "EventName"; const int organizationId = 1; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<DeleteQuery>())).ReturnsAsync(new DeleteViewModel { Name = eventName, OrganizationId = organizationId }); var sut = new EventController(null, mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.Delete(It.IsAny<int>()) as ViewResult; var resultModel = result.ViewData.Model as DeleteViewModel; Assert.Equal(resultModel.Title, $"Delete event {eventName}"); }
private static EventController GetEventController(DateTimeOffset startDate, DateTimeOffset endDate) { var mediator = new Mock<IMediator>(); var imageService = new Mock<IImageService>(); mediator.Setup(x => x.SendAsync(It.IsAny<CampaignSummaryQuery>())).ReturnsAsync(new CampaignSummaryViewModel { StartDate = startDate, EndDate = endDate }); var sut = new EventController(imageService.Object, mediator.Object, null); sut.SetClaims(new List<Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }); return sut; }
public async Task RequestsSetsCorrectPageTitleOnModelWhenStatusParamIsSet() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.Send(It.IsAny<EventByIdQuery>())).Returns(new Event { Campaign = new Campaign { ManagingOrganizationId = 1 } }).Verifiable(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<EventRequestsQuery>())).ReturnsAsync(new EventRequestsViewModel()).Verifiable(); var sut = new EventController(Mock.Of<IImageService>(), mockMediator.Object, Mock.Of<IValidateEventDetailModels>()); sut.SetClaims(new List<Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }); var result = await sut.Requests(1, "Assigned") as ViewResult; result.ShouldNotBeNull(); var castModel = result.Model as EventRequestsViewModel; castModel.ShouldNotBeNull(); castModel.PageTitle.ShouldBe("Assigned Requests"); }
public async Task RequestsSendsEventRequestsQueryWhenValidStatusRouteParamPassedAndUserIsOrgAdmin() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.Send(It.IsAny<EventByIdQuery>())).Returns(new Event { Campaign = new Campaign { ManagingOrganizationId = 1 } }).Verifiable(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<EventRequestsQuery>())).ReturnsAsync(new EventRequestsViewModel()).Verifiable(); var sut = new EventController(Mock.Of<IImageService>(), mockMediator.Object, Mock.Of<IValidateEventDetailModels>()); sut.SetClaims(new List<Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }); await sut.Requests(1, "Assigned"); mockMediator.Verify(x => x.SendAsync(It.IsAny<EventRequestsQuery>()), Times.Once); }
public async Task RequestsReturnsRedirectWhenStatusDoesNotMatchEnumOptions() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.Send(It.IsAny<EventByIdQuery>())).Returns(new Event { Campaign = new Campaign { ManagingOrganizationId = 1 } }).Verifiable(); var sut = new EventController(Mock.Of<IImageService>(), mockMediator.Object, Mock.Of<IValidateEventDetailModels>()); sut.SetClaims(new List<Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }); Assert.IsType<RedirectToActionResult>(await sut.Requests(It.IsAny<int>(), "MadeUp")); }
public async Task RequestsReturnsHttpUnauthorizedResultWhenUserIsNotOrgAdmin() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.Send(It.IsAny<EventByIdQuery>())).Returns(new Event { Campaign = new Campaign { ManagingOrganizationId = 1000 } }).Verifiable(); var sut = new EventController(Mock.Of<IImageService>(), mockMediator.Object, Mock.Of<IValidateEventDetailModels>()); sut.SetClaims(new List<Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.OrgAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }); Assert.IsType<UnauthorizedResult>(await sut.Requests(It.IsAny<int>(), null)); }
public async Task RequestsReturnsHttpNotFoundResultWhenEventIsNull() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.Send(It.IsAny<EventByIdQuery>())).Returns((Event)null).Verifiable(); var sut = new EventController(Mock.Of<IImageService>(), mockMediator.Object, Mock.Of<IValidateEventDetailModels>()); Assert.IsType<NotFoundResult>(await sut.Requests(It.IsAny<int>(), null)); }
public async Task DeleteGetReturnsHttpUnauthorizedResult_WhenUserIsNotOrgAdmin() { var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<DeleteQuery>())) .ReturnsAsync(new DeleteViewModel()); var sut = new EventController(null, mediator.Object, null); sut.MakeUserNotAnOrgAdmin(); Assert.IsType<UnauthorizedResult>(await sut.Delete(It.IsAny<int>())); }
public async Task DeleteGetSetsUserIsOrgAdminToTrueOnTheViewModel_WhenUserIsOrgAdmin() { const int organizationId = 1; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<DeleteQuery>())).ReturnsAsync(new DeleteViewModel { OrganizationId = organizationId }); var sut = new EventController(null, mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.Delete(It.IsAny<int>()) as ViewResult; var resultModel = result.ViewData.Model as DeleteViewModel; Assert.True(resultModel.UserIsOrgAdmin); }
public void DetailsHasHttpGetAttribute() { var sut = new EventController(null, null, null); var attribute = sut.GetAttributesOn(x => x.Details(It.IsAny<int>())).OfType<HttpGetAttribute>().SingleOrDefault(); Assert.NotNull(attribute); }
public async Task DeleteGetReturnsCorrectViewModel() { const int organizationId = 1; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<DeleteQuery>())) .ReturnsAsync(new DeleteViewModel { OrganizationId = organizationId }); var sut = new EventController(null, mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = (ViewResult) await sut.Delete(It.IsAny<int>()); var resultModel = result.ViewData.Model; Assert.IsType<DeleteViewModel>(resultModel); }
public async Task RequestsSendsOrganizationIdByEventIdQueryWithTheCorrectEventId() { const int eventId = 1; const int organizationId = 1; var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<OrganizationIdByEventIdQuery>())).ReturnsAsync(It.IsAny<int>()); var sut = new EventController(null, mockMediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); await sut.Requests(eventId, null); mockMediator.Verify(x => x.SendAsync(It.Is<OrganizationIdByEventIdQuery>(y => y.EventId == eventId)), Times.Once); }
public async Task CreatePostReturnsEditView_When_EventDetailsModelValidatorHasErrors() { var imageService = new Mock<IImageService>(); var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<CampaignSummaryQuery>())).ReturnsAsync(new CampaignSummaryViewModel()); var eventDetailModelValidator = new Mock<IValidateEventEditViewModels>(); eventDetailModelValidator.Setup(x => x.Validate(It.IsAny<EventEditViewModel>(), It.IsAny<CampaignSummaryViewModel>())) .Returns(new List<KeyValuePair<string, string>> { new KeyValuePair<string, string>("ErrorKey", "ErrorMessage") }); var sut = new EventController(imageService.Object, mediator.Object, eventDetailModelValidator.Object); sut.SetClaims(new List<Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }); var result = (ViewResult)await sut.Create(1, It.IsAny<EventEditViewModel>(), null); Assert.Equal("Edit", result.ViewName); }
public async Task RequestsReturnsRedirect_WhenStatusDoesNotMatchEnumOptions() { const int orgId = 1; var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<OrganizationIdByEventIdQuery>())).ReturnsAsync(orgId); var sut = new EventController(null, mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); Assert.IsType<RedirectToActionResult>(await sut.Requests(It.IsAny<int>(), "MadeUp")); }
public async Task RequestsReturnsHttpUnauthorizedResult_WhenUserIsNotOrgAdmin() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<OrganizationIdByEventIdQuery>())).ReturnsAsync(It.IsAny<int>()); var sut = new EventController(null, mockMediator.Object, null); sut.MakeUserNotAnOrgAdmin(); Assert.IsType<UnauthorizedResult>(await sut.Requests(It.IsAny<int>(), null)); }
public void CreatePostHasValidateAntiForgeryTokenAttrbiute() { var sut = new EventController(null, Mock.Of<IMediator>(), null); var routeAttribute = sut.GetAttributesOn(x => x.Create(It.IsAny<int>(), It.IsAny<EventEditViewModel>(), It.IsAny<IFormFile>())).OfType<ValidateAntiForgeryTokenAttribute>().SingleOrDefault(); Assert.NotNull(routeAttribute); }
public async Task RequestsSendsRequestListItemsQueryWithCorrectCriteria_WhenNoStatusRouteParamPassed_AndUserIsOrgAdmin() { const int orgId = 1; const int eventId = 1; var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<OrganizationIdByEventIdQuery>())).ReturnsAsync(orgId); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<EventRequestsQuery>())).ReturnsAsync(new EventRequestsViewModel()); var sut = new EventController(null, mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); await sut.Requests(eventId, null); mockMediator.Verify(x => x.SendAsync(It.Is<RequestListItemsQuery>(y => y.Criteria.EventId == eventId && y.Criteria.Status == null)), Times.Once); }
public void CreatePostHasRouteAttrbiuteWithCorrectRoute() { var sut = new EventController(null, Mock.Of<IMediator>(), null); var routeAttribute = sut.GetAttributesOn(x => x.Create(It.IsAny<int>(), It.IsAny<EventEditViewModel>(), It.IsAny<IFormFile>())).OfType<RouteAttribute>().SingleOrDefault(); Assert.NotNull(routeAttribute); Assert.Equal(routeAttribute.Template, "Admin/Event/Create/{campaignId}"); }
public async Task CreateGetReturnsHttpUnauthorizedResult_WhenCampaignIsNull() { var mediator = new Mock<IMediator>(); var sut = new EventController(null, mediator.Object, null); Assert.IsType<UnauthorizedResult>(await sut.Create(It.IsAny<int>())); }
public async void EditGetReturnsHttpNotFoundResult_WhenEventIsNull() { var mediator = new Mock<IMediator>(); var sut = new EventController(null, mediator.Object, null); var result = await sut.Edit(It.IsAny<int>()); Assert.IsType<NotFoundResult>(result); }