public async Task Create_SendsEventSummaryQuery_WithCorrectEventId() { const int id = 1; var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<EventSummaryQuery>())).ReturnsAsync(null).Verifiable(); var sut = new RequestController(mockMediator.Object); await sut.Create(id); mockMediator.Verify(x => x.SendAsync(It.Is<EventSummaryQuery>(a => a.EventId == id)), Times.Once); }
public async Task Create_ReturnsHttpUnauthorizedResult_WhenUserIsNotOrgAdmin() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<EventSummaryQuery>())).ReturnsAsync(new EventSummaryViewModel()); var sut = new RequestController(mockMediator.Object); sut.MakeUserNotAnOrgAdmin(); var result = await sut.Create(1); var objResult = Assert.IsType<UnauthorizedResult>(result); objResult.StatusCode.ShouldBe(StatusCodes.Status401Unauthorized); }
public async Task Create_ReturnsBadRequest_WhenEventSummaryQueryReturnsNull() { var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<EventSummaryQuery>())).ReturnsAsync(null).Verifiable(); var sut = new RequestController(mockMediator.Object); var result = await sut.Create(1); var objResult = Assert.IsType<BadRequestObjectResult>(result); objResult.StatusCode.ShouldNotBeNull(); objResult.StatusCode.Value.ShouldBe(StatusCodes.Status400BadRequest); }
public async Task Create_ReturnsCorrectViewAndViewModel_WhenEventIsNotNullAndUserIsOrgAdmin() { const int eventId = 1; const int orgId = 1; var viewModel = new EventSummaryViewModel { Id = eventId, OrganizationId = orgId }; var mockMediator = new Mock<IMediator>(); mockMediator.Setup(mock => mock.SendAsync(It.IsAny<EventSummaryQuery>())).ReturnsAsync(viewModel); var sut = new RequestController(mockMediator.Object); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.Create(It.IsAny<int>()); var objResult = Assert.IsType<ViewResult>(result); objResult.ViewName.ShouldBe("Edit"); var resultViewModel = Assert.IsType<EditRequestViewModel>(objResult.ViewData.Model); resultViewModel.EventId.ShouldBe(viewModel.Id); resultViewModel.OrganizationId.ShouldBe(viewModel.OrganizationId); var viewBagTitle = objResult.ViewData["Title"]; viewBagTitle.ShouldNotBeNull(); viewBagTitle.ShouldBe(RequestController.CreateRequestTitle); }