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 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
        }