public async Task DetailsReturnsCorrectViewAndViewModelWhenEventIsNotNullAndUserIsOrgAdmin() { const int orgId = 1; var viewModel = new ItineraryDetailsViewModel { OrganizationId = orgId }; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <ItineraryDetailQuery>())).ReturnsAsync(viewModel); var sut = new ItineraryController(mediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.Details(It.IsAny <int>()) as ViewResult; Assert.Equal(result.ViewName, "Details"); var resultViewModel = result.ViewData.Model; Assert.IsType <ItineraryDetailsViewModel>(resultViewModel); Assert.Equal(resultViewModel, viewModel); }
public async Task ConfirmRemoveTeamMemberReturnsHttpNotFoundWhenTaskSignupSummaryModelIsNull() { const int orgId = 1; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); mockMediator.Setup(x => x.SendAsync(It.IsAny <TaskSignupSummaryQuery>())).ReturnsAsync(null); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); Assert.IsType <NotFoundResult>(await sut.ConfirmRemoveTeamMember(It.IsAny <int>(), It.IsAny <int>())); }
public async Task MarkCompleteReturnsRedirectToActionWhenOrganizationIsNotZero_AndUserIsOrgAdmin() { const int orgId = 1; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.MarkComplete(It.IsAny <int>(), It.IsAny <Guid>()); Assert.IsType <RedirectToActionResult>(result); }
public async Task RemoveTeamMemberRedirectsToCorrectActionWithCorrectRouteValuesWhenOrganizationIdIsNotZero_AndUserIsOrgAdmin() { const int orgId = 1; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); await sut.RemoveTeamMember(It.IsAny <int>(), It.IsAny <int>()); //TODO: this assertion does not assert what the title of this unit test says it does. Please fix to assert that the redirect action and route values are correct //mockMediator.Verify(x => x.SendAsync(It.Is<RemoveTeamMemberCommand>(y => y.TaskSignupId == taskSignupId)), Times.Once); }
public async Task RemoveTeamMemberSendsRemoveTeamMemberCommandWithCorrectTaskSignupIdWhenOrganizationIsNotZero_AndUserIsOrgAdmin() { const int taskSignupId = 1; const int orgId = 1; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); await sut.RemoveTeamMember(It.IsAny <int>(), taskSignupId); mockMediator.Verify(x => x.SendAsync(It.Is <RemoveTeamMemberCommand>(y => y.TaskSignupId == taskSignupId)), Times.Once); }
public async Task MarkCompleteSendsRequestStatusChangeCommandWithCorrectRequestIdWhenOrganizationIsNotZero_AndUserIsOrgAdmin() { var requestId = Guid.NewGuid(); const int orgId = 1; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); await sut.MarkComplete(It.IsAny <int>(), requestId); mockMediator.Verify(x => x.SendAsync(It.Is <RequestStatusChangeCommand>(y => y.RequestId == requestId)), Times.Once); }
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 MarkCompleteReturnsRedirectToAction_WithActionName_Details() { const int orgId = 1; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.MarkComplete(It.IsAny <int>(), It.IsAny <Guid>()); var actionResult = (RedirectToActionResult)result; Assert.Equal("Details", actionResult.ActionName); }
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 AddRequestsSendsAddRequestsCommandWhenThereAreSelectedRequests() { const int orgId = 1; var itineraryId = It.IsAny <int>(); var selectedRequests = new[] { "request1", "request2" }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); await sut.AddRequests(itineraryId, selectedRequests); //TODO: need a way to verify that the RequestIdsToAdd List<string> is the same as the string array selectedRequests. Only problem is that .ToList() is called on selectedRequests in the AddRequests action method, creating a new List<string> //mockMediator.Verify(x => x.SendAsync(It.Is<AddRequestsCommand>(y => y.RequestIdsToAdd == selectedRequests.ToList())), Times.Once); }
public async Task AddTeamMemberRedirectsToCorrectActionWithCorrectRouteValuesWhenOrganizationIdIsNotZero_AndUserIsOrgAdmin_AndIdOrSelectedTeamMemberIsNotZero() { const int itineraryId = 1; const int orgId = 1; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <AddTeamMemberCommand>())).ReturnsAsync(true); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.AddTeamMember(itineraryId, 1) as RedirectToActionResult; Assert.Equal(result.ActionName, nameof(ItineraryController.Details)); Assert.Equal(result.RouteValues, new Dictionary <string, object> { ["id"] = itineraryId }); }
public async Task SelectRequestsPostWithSingleParameterSetsSelectItineraryRequestsModelWithTheCorrectData() { const int organizationId = 4; var itinerary = GetItineraryForSelectRequestHappyPathTests(); var returnedRequests = GetRequestsForSelectRequestHappyPathTests(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <ItineraryDetailQuery>(y => y.ItineraryId == itinerary.Id))).ReturnsAsync(itinerary); mediator.Setup(x => x.SendAsync(It.IsAny <RequestListItemsQuery>())).ReturnsAsync(returnedRequests); mediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(organizationId); var sut = new ItineraryController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var view = await sut.SelectRequests(itinerary.Id, new SelectItineraryRequestsViewModel()); RunSelectRequestsHappyPathTests(view, itinerary, returnedRequests); }
public async Task AddRequestsRedirectsToCorrectActionWithCorrectRouteValuesWhenOrganizationIdIsNotZero_AndUserIsOrgAdmin_AndThereAreSelectedRequests() { const int orgId = 1; var itineraryId = It.IsAny <int>(); var selectedRequests = new[] { "request1", "request2" }; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.AddRequests(itineraryId, selectedRequests) as RedirectToActionResult; Assert.Equal(result.ActionName, nameof(ItineraryController.Details)); Assert.Equal(result.RouteValues, new Dictionary <string, object> { ["id"] = itineraryId }); }
public async Task ConfirmRemoveTeamMemberReturnsTheCorrectViewAndViewModel() { const int orgId = 1; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.SendAsync(It.IsAny <OrganizationIdQuery>())).ReturnsAsync(orgId); mockMediator.Setup(x => x.SendAsync(It.IsAny <TaskSignupSummaryQuery>())).ReturnsAsync(new TaskSignupSummaryViewModel { TaskSignupId = It.IsAny <int>(), VolunteerEmail = "*****@*****.**", VolunteerName = "Test McTesterson" }); var sut = new ItineraryController(mockMediator.Object, null); sut.MakeUserAnOrgAdmin(orgId.ToString()); var result = await sut.ConfirmRemoveTeamMember(It.IsAny <int>(), It.IsAny <int>()) as ViewResult; Assert.Equal(result.ViewName, "ConfirmRemoveTeamMember"); var resultViewModel = result.ViewData.Model; Assert.IsType <TaskSignupSummaryViewModel>(resultViewModel); }