public async Task CreateGetSendsCreateTaskQueryAsyncWithTheCorrectEventId() { const int eventId = 1; const int organizationId = 1; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<CreateTaskQueryAsync>())).ReturnsAsync(new EditViewModel { OrganizationId = organizationId }); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(It.IsAny<string>()); var sut = new TaskController(mediator.Object, null) { Url = urlHelper.Object }; sut.MakeUserAnOrgAdmin(organizationId.ToString()); await sut.Create(eventId); mediator.Verify(x => x.SendAsync(It.Is<CreateTaskQueryAsync>(y => y.EventId == eventId)), Times.Once); }
public async Task CreateGetInvokesUrlActionWithTheCorrectParameters() { var model = new EditViewModel { EventId = 1, OrganizationId = 1 }; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<CreateTaskQueryAsync>())).ReturnsAsync(model); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(It.IsAny<string>()); var sut = new TaskController(mediator.Object, null) { Url = urlHelper.Object }; sut.MakeUserAnOrgAdmin(model.OrganizationId.ToString()); await sut.Create(It.IsAny<int>()); urlHelper.Verify(x => x.Action(It.Is<UrlActionContext>(y => y.Action == nameof(EventController.Details) && y.Controller == "Event" && y.Values.ToString() == $"{{ id = {model.EventId}, area = Admin }}")), Times.Once); }
public async Task CreateGetSetCorrectToTitleOnViewBag() { var model = new EditViewModel { EventId = 1, OrganizationId = 1 }; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<CreateTaskQueryAsync>())).ReturnsAsync(model); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(It.IsAny<string>()); var sut = new TaskController(mediator.Object, null) { Url = urlHelper.Object }; sut.MakeUserAnOrgAdmin(model.OrganizationId.ToString()); await sut.Create(It.IsAny<int>()); Assert.Equal(sut.ViewBag.Title, "Create Task"); }
public async Task CreateGetAssignsCancelUrlToModel() { const string cancelUrl = "url"; var model = new EditViewModel { EventId = 1, OrganizationId = 1 }; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<CreateTaskQueryAsync>())).ReturnsAsync(model); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(cancelUrl); var sut = new TaskController(mediator.Object, null) { Url = urlHelper.Object }; sut.MakeUserAnOrgAdmin(model.OrganizationId.ToString()); var result = await sut.Create(It.IsAny<int>()) as ViewResult; var modelResult = result.Model as EditViewModel; Assert.Equal(modelResult.CancelUrl, cancelUrl); }
public async Task MessageAllVolunteersReturnsHttpOkResult() { const int organizationId = 1; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<OrganizationIdByTaskIdQueryAsync>())).ReturnsAsync(organizationId); var sut = new TaskController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.MessageAllVolunteers(new MessageTaskVolunteersViewModel()); Assert.IsType<OkResult>(result); }
public async Task MessageAllVolunteersSendsMessageTaskVolunteersCommandAsyncWithCorrectData() { const int organizationId = 1; var model = new MessageTaskVolunteersViewModel(); var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<OrganizationIdByTaskIdQueryAsync>())).ReturnsAsync(organizationId); var sut = new TaskController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); await sut.MessageAllVolunteers(model); mediator.Verify(x => x.SendAsync(It.Is<MessageTaskVolunteersCommandAsync>(y => y.Model == model)), Times.Once); }
public async Task AssignRedirectsToCorrectRoute() { const int organizationId = 1; const int taskId = 1; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<OrganizationIdByTaskIdQueryAsync>())).ReturnsAsync(organizationId); var sut = new TaskController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.Assign(taskId, null) as RedirectToRouteResult; Assert.Equal(result.RouteValues["controller"], "Task"); Assert.Equal(result.RouteValues["Area"], "Admin"); Assert.Equal(result.RouteValues["action"], nameof(TaskController.Details)); Assert.Equal(result.RouteValues["id"], taskId); }
public async Task AssignSendsAssignTaskCommandAsync() { const int organizationId = 1; const int taskId = 1; var userIds = new List<string> { "1", "2" }; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<OrganizationIdByTaskIdQueryAsync>())).ReturnsAsync(organizationId); var sut = new TaskController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); await sut.Assign(taskId, userIds); mediator.Verify(x => x.SendAsync(It.Is<AssignTaskCommandAsync>(y => y.TaskId == taskId && y.UserIds == userIds)), Times.Once); }
public async Task DeleteConfirmedRedirectsToCorrectAction() { const int organizationId = 1; var deleteViewModel = new DeleteViewModel { OrganizationId = organizationId, EventId = 1, UserIsOrgAdmin = true }; var mediator = new Mock<IMediator>(); var sut = new TaskController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.DeleteConfirmed(deleteViewModel) as RedirectToActionResult; var routeValues = new Dictionary<string, object> { ["id"] = deleteViewModel.EventId }; Assert.Equal(result.ActionName, nameof(EventController.Details)); Assert.Equal(result.ControllerName, "Event"); Assert.Equal(result.RouteValues, routeValues); }
public async Task DeleteReturnsCorrectViewModelAndView() { const int organizationId = 1; var deleteViewModel = new DeleteViewModel { OrganizationId = organizationId }; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<DeleteQueryAsync>())).ReturnsAsync(deleteViewModel); var sut = new TaskController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.Delete(It.IsAny<int>()) as ViewResult; var modelResult = result.ViewData.Model as DeleteViewModel; Assert.IsType<ViewResult>(result); Assert.IsType<DeleteViewModel>(modelResult); Assert.Equal(modelResult, deleteViewModel); }
public async Task DeleteSendsDeleteQueryAsyncWithCorrectTaskId() { const int taskId = 1; const int organizationId = 1; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<DeleteQueryAsync>())).ReturnsAsync(new DeleteViewModel { OrganizationId = organizationId }); var sut = new TaskController(mediator.Object, null); sut.MakeUserAnOrgAdmin(organizationId.ToString()); await sut.Delete(taskId); mediator.Verify(x => x.SendAsync(It.Is<DeleteQueryAsync>(y => y.TaskId == taskId)), Times.Once); }
public async Task EditPostRedirectsToCorrectAction_WhenUpdatingTask() { const int organizationId = 1; var model = new EditViewModel { Id = 1, OrganizationId = organizationId }; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<EditTaskCommandAsync>())).ReturnsAsync(1); var validator = new Mock<ITaskEditViewModelValidator>(); validator.Setup(x => x.Validate(It.IsAny<EditViewModel>())).Returns(new List<KeyValuePair<string, string>>()); var sut = new TaskController(mediator.Object, validator.Object); sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.Edit(model) as RedirectToActionResult; var routeValues = new Dictionary<string, object> { ["id"] = model.Id }; Assert.Equal(result.ControllerName, "Task"); Assert.Equal(result.ActionName, nameof(TaskController.Details)); Assert.Equal(result.RouteValues, routeValues); }
public async Task EditPostSendsEditTaskCommandAsyncWithCorrectModel_WhenModelStateIsValidAndUserIsOrganizationAdmin() { const int organizationId = 1; var model = new EditViewModel { OrganizationId = organizationId }; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<EditTaskCommandAsync>())).ReturnsAsync(1); var validator = new Mock<ITaskEditViewModelValidator>(); validator.Setup(x => x.Validate(It.IsAny<EditViewModel>())).Returns(new List<KeyValuePair<string, string>>()); var sut = new TaskController(mediator.Object, validator.Object); sut.MakeUserAnOrgAdmin(organizationId.ToString()); await sut.Edit(model); mediator.Verify(x => x.SendAsync(It.Is<EditTaskCommandAsync>(y => y.Task == model))); }
public async Task EditGetReturnsCorrectViewModelAndView() { const int organizationId = 1; var editViewModel = new EditViewModel { OrganizationId = organizationId }; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<EditTaskQueryAsync>())).ReturnsAsync(editViewModel); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(It.IsAny<string>()); var sut = new TaskController(mediator.Object, null) { Url = urlHelper.Object }; sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.Edit(It.IsAny<int>()) as ViewResult; var modelResult = result.ViewData.Model as EditViewModel; Assert.IsType<ViewResult>(result); Assert.IsType<EditViewModel>(modelResult); Assert.Equal(modelResult, editViewModel); }
public async Task CreateGetReturnsCorrectView() { const int organizationId = 1; var mediator = new Mock<IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny<CreateTaskQueryAsync>())).ReturnsAsync(new EditViewModel { OrganizationId = organizationId }); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.Action(It.IsAny<UrlActionContext>())).Returns(It.IsAny<string>()); var sut = new TaskController(mediator.Object, null) { Url = urlHelper.Object }; sut.MakeUserAnOrgAdmin(organizationId.ToString()); var result = await sut.Create(It.IsAny<int>()) as ViewResult; Assert.Equal(result.ViewName, "Edit"); }