public void UpdateTodoOnPut()
        {
            var controller = new TodosController(_mockRepository.Object, Mapper.Engine);

            var todo = new TodoModel
            {
                id = 5,
                task = "My task"
            };

            var updatedTodo = new TodoModel
            {
                id = 5,
                task = "Updated task"
            };

            _mockRepository.Setup(x => x.Update(updatedTodo)).Returns(true);

            var response = controller.Put(todo.id, updatedTodo) as OkResult;
            response.ShouldNotBeNull();

            _mockRepository.Verify(x => x.Update(updatedTodo), Times.Once);
        }
        public void ReturnBadRequestWhenPutCantUpdate()
        {
            var controller = new TodosController(_mockRepository.Object, Mapper.Engine);

            _mockRepository.Setup(x => x.Update(It.IsAny<TodoModel>())).Returns(false);

            var response = controller.Put(5, new TodoModel { id = 5 }) as BadRequestErrorMessageResult;
            response.ShouldNotBeNull();
            _mockRepository.Verify(x => x.Update(It.IsAny<TodoModel>()), Times.Once);
        }
        public void ReturnBadRequestWhenPutIdDoesntMatchTodo()
        {
            var controller = new TodosController(_mockRepository.Object, Mapper.Engine);

            var response = controller.Put(5, new TodoModel {id = 4}) as BadRequestErrorMessageResult;
            response.ShouldNotBeNull();
        }
 public void ReturnBadRequestIfEmptyBodyOnPut()
 {
     var controller = new TodosController(_mockRepository.Object, Mapper.Engine);
     var response = controller.Put(1, null) as BadRequestErrorMessageResult;
     response.ShouldNotBeNull();
 }