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
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
 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());
 }