public async Task PutSendsUpdateTaskCommandAsyncWithCorrectAllReadyTask() { var allReadyTask = new AllReadyTask(); var model = new TaskViewModel { Name = "name", Description = "description", StartDateTime = DateTime.UtcNow, EndDateTime = DateTime.UtcNow }; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <TaskByTaskIdQuery>())).Returns(allReadyTask); var determineIfATaskIsEditable = new Mock <IDetermineIfATaskIsEditable>(); determineIfATaskIsEditable.Setup(x => x.For(It.IsAny <ClaimsPrincipal>(), It.IsAny <AllReadyTask>(), null)).Returns(true); var sut = new TaskApiController(mediator.Object, determineIfATaskIsEditable.Object, null); await sut.Put(It.IsAny <int>(), model); mediator.Verify(x => x.SendAsync(It.Is <UpdateTaskCommandAsync>(y => y.AllReadyTask == allReadyTask)), Times.Once); }
public async Task PostSendsTaskByTaskIdQueryWithCorrectTaskId() { var model = new TaskViewModel { EventId = 1, Id = 1 }; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <EventByIdQuery>())).Returns(new Event()); mediator.Setup(x => x.Send(It.IsAny <TaskByTaskIdQuery>())).Returns(new AllReadyTask()); var provider = new Mock <IDetermineIfATaskIsEditable>(); provider.Setup(x => x.For(It.IsAny <ClaimsPrincipal>(), It.IsAny <AllReadyTask>(), null)).Returns(true); var sut = new TaskApiController(mediator.Object, provider.Object, null); await sut.Post(model); mediator.Verify(x => x.Send(It.Is <TaskByTaskIdQuery>(y => y.TaskId == model.Id))); }
public async Task PostReturnsHttpStatusCodeResultOf201() { var model = new TaskViewModel { EventId = 1, Id = 0 }; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <EventByIdQuery>())).Returns(new Event()); var provider = new Mock <IDetermineIfATaskIsEditable>(); provider.Setup(x => x.For(It.IsAny <ClaimsPrincipal>(), It.IsAny <AllReadyTask>(), null)).Returns(true); var sut = new TaskApiController(mediator.Object, provider.Object, null); var result = await sut.Post(model) as StatusCodeResult; Assert.IsType <StatusCodeResult>(result); Assert.Equal(result.StatusCode, 201); }
public async Task PutReturnsHttpStatusCodeResultOf204() { var allReadyTask = new AllReadyTask(); var model = new TaskViewModel { Name = "name", Description = "description", StartDateTime = DateTime.UtcNow, EndDateTime = DateTime.UtcNow }; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <TaskByTaskIdQuery>())).Returns(allReadyTask); var determineIfATaskIsEditable = new Mock <IDetermineIfATaskIsEditable>(); determineIfATaskIsEditable.Setup(x => x.For(It.IsAny <ClaimsPrincipal>(), It.IsAny <AllReadyTask>())).Returns(true); var sut = new TaskApiController(null, mediator.Object, determineIfATaskIsEditable.Object); var result = await sut.Put(It.IsAny <int>(), model) as HttpStatusCodeResult; Assert.IsType <HttpStatusCodeResult>(result); Assert.Equal(result.StatusCode, 204); }
public async Task UnregisterTaskReturnsNullForTaskWhenResultTaskIsNull() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <TaskUnenrollCommand>())).ReturnsAsync(new TaskUnenrollResult()); var userManager = MockHelper.CreateUserManagerMock(); userManager.Setup(x => x.GetUserId(It.IsAny <ClaimsPrincipal>())).Returns(It.IsAny <string>()); var sut = new TaskApiController(mediator.Object, null, userManager.Object); sut.SetDefaultHttpContext(); var jsonResult = await sut.UnregisterTask(It.IsAny <int>()); var result = jsonResult.GetValueForProperty <string>("Task"); Assert.IsType <JsonResult>(jsonResult); Assert.Null(result); }
public async Task UnregisterTaskSendsTaskUnenrollCommandWithCorrectTaskIdAndUserId() { const string userId = "1"; const int taskId = 1; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <TaskUnenrollCommand>())).ReturnsAsync(new TaskUnenrollResult()); var userManager = MockHelper.CreateUserManagerMock(); userManager.Setup(x => x.GetUserId(It.IsAny <ClaimsPrincipal>())).Returns(userId); var sut = new TaskApiController(mediator.Object, null, userManager.Object); sut.SetFakeUser(userId); await sut.UnregisterTask(taskId); mediator.Verify(x => x.SendAsync(It.Is <TaskUnenrollCommand>(y => y.TaskId == taskId && y.UserId == userId))); }
public async Task ChangeStatusReturnsCorrectStatus() { const string status = "status"; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <TaskStatusChangeCommandAsync>())).Returns(() => Task.FromResult(new TaskChangeResult { Status = status })); var sut = new TaskApiController(null, mediator.Object, null); sut.SetDefaultHttpContext(); var jsonResult = await sut.ChangeStatus(new TaskChangeModel()); var result = jsonResult.GetValueForProperty <string>("Status"); Assert.IsType <JsonResult>(jsonResult); Assert.IsType <string>(result); Assert.Equal(result, status); }
public async Task UnregisterTaskReturnsCorrectStatus() { const string status = "status"; var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <TaskUnenrollCommand>())).ReturnsAsync(new TaskUnenrollResult { Status = status }); var sut = new TaskApiController(null, mediator.Object, null); sut.SetDefaultHttpContext(); var jsonResult = await sut.UnregisterTask(It.IsAny <int>()); var result = jsonResult.GetValueForProperty <string>("Status"); Assert.IsType <JsonResult>(jsonResult); Assert.IsType <string>(result); Assert.Equal(result, status); }
public async Task PostSendsTaskByTaskIdQueryWithCorrectTaskId() { var model = new TaskViewModel { ActivityId = 1, Id = 1 }; var dataAccess = new Mock <IAllReadyDataAccess>(); dataAccess.Setup(x => x.GetActivity(It.IsAny <int>())).Returns(new Activity()); dataAccess.Setup(x => x.GetTask(It.IsAny <int>())).Returns(new AllReadyTask()); var mediator = new Mock <IMediator>(); var provider = new Mock <IDetermineIfATaskIsEditable>(); provider.Setup(x => x.For(It.IsAny <ClaimsPrincipal>(), It.IsAny <AllReadyTask>())).Returns(true); var sut = new TaskApiController(dataAccess.Object, mediator.Object, provider.Object); await sut.Post(model); mediator.Verify(x => x.Send(It.Is <TaskByTaskIdQuery>(y => y.TaskId == model.Id))); }
public async Task PostSendsAddTaskCommandAsyncWithCorrectData() { var model = new TaskViewModel { EventId = 1, Id = 1 }; var allReadyTask = new AllReadyTask(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.IsAny <EventByEventIdQuery>())).ReturnsAsync(new Event()); mediator.SetupSequence(x => x.SendAsync(It.IsAny <TaskByTaskIdQuery>())) .ReturnsAsync(allReadyTask).ReturnsAsync(null); var determineIfATaskIsEditable = new Mock <IDetermineIfATaskIsEditable>(); determineIfATaskIsEditable.Setup(x => x.For(It.IsAny <ClaimsPrincipal>(), It.IsAny <AllReadyTask>(), null)).Returns(true); var sut = new TaskApiController(mediator.Object, determineIfATaskIsEditable.Object, null); await sut.Post(model); mediator.Verify(x => x.SendAsync(It.Is <AddTaskCommand>(y => y.AllReadyTask == allReadyTask)), Times.Once); }
public async Task PostSendsAddTaskCommandAsyncWithCorrectData() { var model = new TaskViewModel { ActivityId = 1, Id = 1 }; var allReadyTask = new AllReadyTask(); var dataAccess = new Mock <IAllReadyDataAccess>(); dataAccess.Setup(x => x.GetActivity(It.IsAny <int>())).Returns(new Activity()); dataAccess.Setup(x => x.GetTask(It.IsAny <int>())).Returns(allReadyTask); var mediator = new Mock <IMediator>(); var determineIfATaskIsEditable = new Mock <IDetermineIfATaskIsEditable>(); determineIfATaskIsEditable.Setup(x => x.For(It.IsAny <ClaimsPrincipal>(), It.IsAny <AllReadyTask>())).Returns(true); var sut = new TaskApiController(dataAccess.Object, mediator.Object, determineIfATaskIsEditable.Object); await sut.Post(model); mediator.Verify(x => x.SendAsync(It.Is <AddTaskCommandAsync>(y => y.AllReadyTask == allReadyTask)), Times.Once); }
public async Task PostReturnsHttpStatusCodeResultOf201() { var model = new TaskViewModel { ActivityId = 1, Id = 1 }; var dataAccess = new Mock <IAllReadyDataAccess>(); dataAccess.Setup(x => x.GetActivity(It.IsAny <int>())).Returns(new Activity()); dataAccess.Setup(x => x.GetTask(It.IsAny <int>())).Returns(new AllReadyTask()); var mediator = new Mock <IMediator>(); var provider = new Mock <IDetermineIfATaskIsEditable>(); provider.Setup(x => x.For(It.IsAny <ClaimsPrincipal>(), It.IsAny <AllReadyTask>())).Returns(true); var sut = new TaskApiController(dataAccess.Object, mediator.Object, provider.Object); var result = await sut.Post(model) as HttpStatusCodeResult; Assert.IsType <HttpStatusCodeResult>(result); Assert.Equal(result.StatusCode, 201); }
// deprecate further down... public Pipeline CreateNew(string name, string organisation, string email, string telephone, string subject, string comment, int nodeId = 0, double value = 0, int probability = 50, int statusId = 0, Dictionary <string, dynamic> customProps = null) { var newPipeline = new Pipeline(); // we need at least name, email and organisation if (String.IsNullOrEmpty(name) || String.IsNullOrEmpty(email)) { return(newPipeline); } var taskController = new TaskApiController(); var orgController = new OrganisationApiController(); var contactController = new ContactApiController(); var pipelineController = new PipelineApiController(); int currentOrgId = 0; if (!string.IsNullOrEmpty(organisation)) { // check if we have an org with that email, if not create one var currentOrg = orgController.GetByName(organisation); if (currentOrg == null) // organisation is optional { currentOrg = orgController.PostSave(new Organisation() { Id = 0, UserId = 0, Name = organisation, DateCreated = DateTime.Now, Email = email }); currentOrgId = currentOrg.Id; } } // check if we have a member with that email, if not create one var contact = contactController.GetByEmail(email); if (contact == null) { var newContact = new Contact() { Id = 0, OrganisationIds = currentOrgId.ToString(), Name = name, Telephone = telephone, Email = email }; contact = contactController.PostSave(newContact); } // install cookie for personalised content HttpCookie cookie = new HttpCookie("PipelineContactId"); cookie.Value = contact.Id.ToString(); cookie.Expires = DateTime.MaxValue; HttpContext.Current.Response.SetCookie(cookie); //finally, create a new pipeline and note newPipeline = pipelineController.PostSave(new Pipeline() { Name = subject, DateCreated = DateTime.Now, StatusId = statusId, OrganisationId = currentOrgId, ContactId = contact.Id, Value = value, DateComplete = DateTime.Now, Probability = probability, // todo: read from node }); if (customProps != null) { newPipeline.UpdateProperties(customProps); } if (!String.IsNullOrEmpty(comment)) { var newNote = taskController.PostSave(new GrowCreate.PipelineCRM.Models.Task() { Description = comment, PipelineId = newPipeline.Id, UserId = -1 }); } return(newPipeline); }