public void UpdateTaskTest_ReturnCorrectUpdated() { #region Arrange User user = new User(1, "Name1", "Email1", "Pass1"); TodoList todoList = new TodoList { Id = 1, UserId = 1, Title = "List1" }; user.TodoLists.Add(todoList); TodoTask todoTask = new TodoTask { Id = 1, Description = "Description1", Title = "List1", ToDoListId = 1, TaskStatus = TodoTask.Status.AWAIT }; UpdateTodoTaskDTO updateToDoTaskDTO = new UpdateTodoTaskDTO { TaskId = todoTask.Id, Description = "New Description", Title = "New title" }; Extensions.Extensions.IsUnitTest = true; model = new Mock <IRepository>(); model.Setup(repo => repo.GetUserById(user.Id)).Returns(Task.FromResult(user)); model.Setup(repo => repo.GetTodoTaskById(updateToDoTaskDTO.TaskId)) .Returns(Task.FromResult(todoTask)); model.Setup(repo => repo.UpdateTodoTask(todoTask)); #endregion #region Act controller = new TodoTasksController(model.Object); var result = controller.UpdateTask(updateToDoTaskDTO); #endregion #region Assert var okObjectResult = Assert.IsType <OkObjectResult>(result.Result); TodoTask updatedTask = okObjectResult.Value as TodoTask; Assert.Equal(updateToDoTaskDTO.TaskId, updatedTask.Id); Assert.Equal(updateToDoTaskDTO.Title, updatedTask.Title); Assert.Equal(updateToDoTaskDTO.Description, updatedTask.Description); Assert.Equal(updateToDoTaskDTO.ToDoListId, updateToDoTaskDTO.ToDoListId); #endregion }
public async Task <IActionResult> UpdateTask([FromBody] UpdateTodoTaskDTO updateToDoTaskDTO) { if (!ModelState.IsValid || updateToDoTaskDTO == null) { return(BadRequest("Error: Model state is not valid.")); } if (updateToDoTaskDTO.TaskId < 1) { return(BadRequest("Error: Task id cannot be an empty.")); } if (updateToDoTaskDTO.Title == null || updateToDoTaskDTO.Title.Length == 0) { return(BadRequest("Error: Task title cannot be an empty.")); } if (updateToDoTaskDTO.Description == null || updateToDoTaskDTO.Description.Length == 0) { return(BadRequest("Error: Task description cannot be an empty.")); } int userId = this.User.GetUserId(); User user = await _context.GetUserById(userId); if (user == null) { return(NotFound("Error: User with this id not found.")); } TodoTask todoTask = await _context.GetTodoTaskById(updateToDoTaskDTO.TaskId); if (todoTask == null) { return(NotFound("Error: Todo task with this id not found.")); } if (user.TodoLists.SingleOrDefault(l => l.Id == todoTask.ToDoListId) == null) { return(NotFound("Error: Todo list with this id not found.")); } todoTask.Description = updateToDoTaskDTO.Description; todoTask.Title = updateToDoTaskDTO.Title; todoTask.ToDoListId = updateToDoTaskDTO.ToDoListId; _context.UpdateTodoTask(todoTask); return(Ok(todoTask)); }
public void UpdateTaskTest_ReturnBadRequestEmptyFields() { #region Arrange User user = new User(1, "Name1", "Email1", "Pass1"); TodoList todoList = new TodoList { Id = 1, UserId = 1, Title = "List1" }; user.TodoLists.Add(todoList); TodoTask todoTask = new TodoTask { Id = 1, Description = "Description1", Title = "List1", ToDoListId = 1, TaskStatus = TodoTask.Status.AWAIT }; UpdateTodoTaskDTO updateToDoTaskDTO = new UpdateTodoTaskDTO { TaskId = 0, Description = "", Title = "" }; Extensions.Extensions.IsUnitTest = true; model = new Mock <IRepository>(); model.Setup(repo => repo.GetUserById(user.Id)).Returns(Task.FromResult(user)); model.Setup(repo => repo.GetTodoTaskById(updateToDoTaskDTO.TaskId)) .Returns(Task.FromResult(todoTask)); model.Setup(repo => repo.UpdateTodoTask(todoTask)); #endregion #region Act controller = new TodoTasksController(model.Object); var result = controller.UpdateTask(updateToDoTaskDTO); #endregion #region Assert var okObjectResult = Assert.IsType <BadRequestObjectResult>(result.Result); #endregion }
public void UpdateTaskTest_ReturnUserNotFound() { #region Arrange User user = null; int userId = 2; TodoList todoList = new TodoList { Id = 1, UserId = 1, Title = "List1" }; TodoTask todoTask = new TodoTask { Id = 1, Description = "Description1", Title = "List1", ToDoListId = 1, TaskStatus = TodoTask.Status.AWAIT }; UpdateTodoTaskDTO updateToDoTaskDTO = new UpdateTodoTaskDTO { TaskId = todoTask.Id, Description = "New Description", Title = "New title" }; Extensions.Extensions.IsUnitTest = true; model = new Mock <IRepository>(); model.Setup(repo => repo.GetUserById(userId)).Returns(Task.FromResult(user)); model.Setup(repo => repo.GetTodoTaskById(updateToDoTaskDTO.TaskId)) .Returns(Task.FromResult(todoTask)); model.Setup(repo => repo.UpdateTodoTask(todoTask)); #endregion #region Act controller = new TodoTasksController(model.Object); var result = controller.UpdateTask(updateToDoTaskDTO); #endregion #region Assert var okObjectResult = Assert.IsType <NotFoundObjectResult>(result.Result); #endregion }
public void UpdateTaskTest_ReturnTodoTaskNotFound() { #region Arrange User user = new User(1, "Name1", "Email1", "Pass1"); TodoList todoList = new TodoList { Id = 1, UserId = 1, Title = "List1" }; user.TodoLists.Add(todoList); UpdateTodoTaskDTO updateToDoTaskDTO = new UpdateTodoTaskDTO { TaskId = 1, Description = "New Description", Title = "New title" }; TodoTask todoTask = null; int todoTaskId = 2; Extensions.Extensions.IsUnitTest = true; model = new Mock <IRepository>(); model.Setup(repo => repo.GetUserById(user.Id)).Returns(Task.FromResult(user)); model.Setup(repo => repo.GetTodoTaskById(todoTaskId)) .Returns(Task.FromResult(todoTask)); model.Setup(repo => repo.UpdateTodoTask(todoTask)); #endregion #region Act controller = new TodoTasksController(model.Object); var result = controller.UpdateTask(updateToDoTaskDTO); #endregion #region Assert var okObjectResult = Assert.IsType <NotFoundObjectResult>(result.Result); #endregion }
public Task <TodoDTO> UpdateSubTodoAsync(string TodoId, UpdateTodoTaskDTO subTodo) { var existingTodo = _todoRepository.FindByIdAsync(TodoId).Result; var findSubTodo = existingTodo.TodoTask.ToList().Find(x => x.TodoTaskId == subTodo.TodoTaskId); if (findSubTodo == null) { return(null); } try { //There is no Replace method for replacing. //_todoRepository.ReplaceOne() return(null); } catch (Exception) { // Do some logging stuff. return(null); } }
private async Task <TodoTaskDTO> UpdateTodoTaskTest(TodoTaskDTO todoTaskDTO , TodoList todoList) { // Arrange UpdateTodoTaskDTO updateToDoTaskDTO = new UpdateTodoTaskDTO { TaskId = todoTaskDTO.Id, ToDoListId = todoTaskDTO.ToDoListId, Title = todoTaskDTO.Title, Description = todoTaskDTO.Description }; updateToDoTaskDTO.Description = "New Description"; updateToDoTaskDTO.ToDoListId = todoList.Id; updateToDoTaskDTO.Title = "New Title"; var content = JsonConvert.SerializeObject(updateToDoTaskDTO); var stringContent = new StringContent(content, Encoding.UTF8, "application/json"); // Act var response = await _client.PutAsync("/api/TodoTasks/", stringContent); // Assert response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); TodoTaskDTO updatedTodoTaskDTO = JsonConvert.DeserializeObject <TodoTaskDTO>(responseString); Assert.NotNull(updatedTodoTaskDTO); Assert.Equal(updateToDoTaskDTO.TaskId, updatedTodoTaskDTO.Id); Assert.Equal(updateToDoTaskDTO.Title, updatedTodoTaskDTO.Title); Assert.Equal(updateToDoTaskDTO.Description, updatedTodoTaskDTO.Description); Assert.Equal(updateToDoTaskDTO.ToDoListId, updatedTodoTaskDTO.ToDoListId); return(updatedTodoTaskDTO); }
public ActionResult <Task <UpdateTodoTaskDTO> > UpdateTodoTask([FromQuery] string TodoId, [FromBody] UpdateTodoTaskDTO subTodoTaskDTO) { try { _todoService.UpdateSubTodoAsync(TodoId, subTodoTaskDTO); } catch (TodoValidationException todoValidationEx) when(todoValidationEx.InnerException is NotFoundUserException) { return(NotFound(todoValidationEx.InnerException.Message)); } return(NoContent()); }