public async Task CreateCallsValidatorWithCorrectItineraryEditModelAndEventSummaryModel() { var model = new ItineraryEditModel { EventId = 1, Name = "Test", Date = new DateTime(2016, 06, 01) }; var mediator = new Mock <IMediator>(); var eventSummaryModel = new EventSummaryModel { Id = 1, Name = "Event", OrganizationId = 1, StartDateTime = new DateTimeOffset(new DateTime(2016, 01, 01)), EndDateTime = new DateTimeOffset(new DateTime(2016, 12, 31)) }; mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(eventSummaryModel); mediator.Setup(x => x.SendAsync(It.IsAny <EditItineraryCommand>())).ReturnsAsync(1); var mockValidator = new Mock <IItineraryEditModelValidator>(); mockValidator.Setup(mock => mock.Validate(model, eventSummaryModel)).Returns(new List <KeyValuePair <string, string> >()).Verifiable(); var sut = new ItineraryController(mediator.Object, mockValidator.Object); sut.SetClaims(new List <Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }); await sut.Create(model); mockValidator.Verify(x => x.Validate(model, eventSummaryModel), Times.Once); }
public async Task CreateReturnsHttpBadRequestResultWhenEditItineraryReturnsZero() { var model = new ItineraryEditModel { EventId = 1, Name = "Test", Date = new DateTime(2016, 06, 01) }; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryModel { Id = 1, Name = "Event", OrganizationId = 1, StartDateTime = new DateTimeOffset(new DateTime(2016, 01, 01)), EndDateTime = new DateTimeOffset(new DateTime(2016, 12, 31)) }); mediator.Setup(x => x.SendAsync(It.IsAny <EditItineraryCommand>())).ReturnsAsync(0); var mockValidator = new Mock <IItineraryEditModelValidator>(); mockValidator.Setup(mock => mock.Validate(It.IsAny <ItineraryEditModel>(), It.IsAny <EventSummaryModel>())).Returns(new List <KeyValuePair <string, string> >()).Verifiable(); var sut = new ItineraryController(mediator.Object, mockValidator.Object); sut.SetClaims(new List <Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "1") }); var result = await sut.Create(model); Assert.IsType <BadRequestResult>(result); }
public async Task CreateReturnsHttpBadRequestIfEventNull() { var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(null); var sut = new ItineraryController(mockMediator.Object, MockSuccessValidation().Object); Assert.IsType <BadRequestResult>(await sut.Create(It.IsAny <ItineraryEditModel>()).ConfigureAwait(false)); }
public async Task CreateReturnsHttpUnauthorizedResultWhenUserIsNotOrgAdminForEventOrg() { const int orgId = 1; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel { OrganizationId = orgId }); var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object); sut.MakeUserNotAnOrgAdmin(); Assert.IsType <UnauthorizedResult>(await sut.Create(new ItineraryEditViewModel())); }
public async Task CreateReturnsOkResultWhenUserIsOrgAdmin() { const int orgId = 1; //var sut = GetItineraryControllerWithEventSummaryQuery(UserType.OrgAdmin.ToString(), 1); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel { OrganizationId = orgId }); mediator.Setup(x => x.SendAsync(It.IsAny <EditItineraryCommand>())).ReturnsAsync(orgId); var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object); sut.MakeUserAnOrgAdmin(orgId.ToString()); Assert.IsType <OkObjectResult>(await sut.Create(new ItineraryEditViewModel())); }
public async Task CreateSendsEventSummaryQuery() { var model = new ItineraryEditModel { EventId = 1, Name = "Test", Date = new DateTime(2016, 06, 01) }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())) .ReturnsAsync(It.IsAny <EventSummaryModel>()).Verifiable(); var sut = new ItineraryController(mockMediator.Object, MockSuccessValidation().Object); await sut.Create(model); mockMediator.Verify(x => x.SendAsync(It.IsAny <EventSummaryQuery>()), Times.Once); }
public async Task CreateReturnsHttpBadRequestResultWhenModelStateHasError() { const int orgId = 1; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel { OrganizationId = orgId }); var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object); sut.MakeUserAnOrgAdmin(orgId.ToString()); sut.AddModelStateError(); var result = await sut.Create(new ItineraryEditViewModel()); Assert.IsType <BadRequestObjectResult>(result); }
public async Task CreateReturnsOkResultWhenUserIsSiteAdmin_AndModelIsValid_AndSuccessfulAdd() { const int orgId = 1; //var sut = GetItineraryControllerWithEventSummaryQuery(UserType.SiteAdmin.ToString(), 0); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel { OrganizationId = orgId }); mediator.Setup(x => x.SendAsync(It.IsAny <EditItineraryCommand>())).ReturnsAsync(orgId); var sut = new ItineraryController(mediator.Object, MockSuccessValidation().Object); sut.SetClaims(new List <Claim> { new Claim(AllReady.Security.ClaimTypes.UserType, UserType.SiteAdmin.ToString()), new Claim(AllReady.Security.ClaimTypes.Organization, "0") }); Assert.IsType <OkObjectResult>(await sut.Create(new ItineraryEditViewModel())); }
public async Task CreateReturnsHttpBadRequestWhenModelIsNull() { var sut = new ItineraryController(Mock.Of <IMediator>(), MockSuccessValidation().Object); Assert.IsType <BadRequestResult>(await sut.Create(null).ConfigureAwait(false)); }