public async Task CreateCallsValidatorWithCorrectItineraryEditModelAndEventSummaryModel() { var model = new ItineraryEditViewModel { EventId = 1, Name = "Test", Date = new DateTime(2016, 06, 01) }; var mediator = new Mock<IMediator>(); var eventSummaryModel = new EventSummaryViewModel { 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 ItineraryEditViewModel { 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 EventSummaryViewModel { 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<ItineraryEditViewModel>(), It.IsAny<EventSummaryViewModel>())).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 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 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 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 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 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<ItineraryEditViewModel>())); }
public async Task CreateSendsEventSummaryQueryWithCorrectEventId() { var model = new ItineraryEditViewModel { 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<EventSummaryViewModel>()).Verifiable(); var sut = new ItineraryController(mockMediator.Object, MockSuccessValidation().Object); await sut.Create(model); mockMediator.Verify(x => x.SendAsync(It.Is<EventSummaryQuery>(y => y.EventId == model.EventId)), Times.Once); }
public async Task CreateReturnsHttpBadRequestWhenModelIsNull() { var sut = new ItineraryController(Mock.Of<IMediator>(), MockSuccessValidation().Object); Assert.IsType<BadRequestResult>(await sut.Create(null)); }