public async Task UpdateTodo_PayloadMissing_ReturnsBadRequest() { // Arrange var todoId = 1; var mockService = new Mock <ITodosService>(); var controller = new TodosController(mockService.Object); // Action var result = await controller.UpdateTodo(todoId, null); // Assert Assert.NotNull(result); Assert.IsType <BadRequestObjectResult>(result); }
public async Task UpdateTodo_IdOnRouteDoesNotMatchPayload_ReturnsBadRequest() { // Arrange var todoId = 1; var updatedTodoDTO = new UpdatedTodoDTO() { Id = 2, Name = "Todo 1", IsComplete = true }; var mockService = new Mock <ITodosService>(); var controller = new TodosController(mockService.Object); // Action var result = await controller.UpdateTodo(todoId, updatedTodoDTO); // Assert Assert.NotNull(result); Assert.IsType <BadRequestObjectResult>(result); }
public async Task UpdateTodo_ModelStateError_ReturnsBadRequest() { // Arrange var todoId = 1; var updatedTodoDTO = new UpdatedTodoDTO() { Name = "Todo 1", IsComplete = true }; var mockService = new Mock <ITodosService>(); var controller = new TodosController(mockService.Object); // Action controller.ModelState.AddModelError("updatedTodoDTO.Id", "ModelState error"); var result = await controller.UpdateTodo(todoId, updatedTodoDTO); // Assert Assert.NotNull(result); Assert.IsType <BadRequestObjectResult>(result); }
public async Task UpdateTodo_ValidTodoToUpdate_ReturnsNoContentResult() { // Arrange var todoId = 1; var updatedTodoDTO = new UpdatedTodoDTO() { Id = todoId, Name = "Todo 1", IsComplete = true }; var mockService = new Mock <ITodosService>(); mockService.Setup(ts => ts.UpdateTodoAsync(updatedTodoDTO)); var controller = new TodosController(mockService.Object); // Action var result = await controller.UpdateTodo(todoId, updatedTodoDTO); // Assert Assert.NotNull(result); Assert.IsType <NoContentResult>(result); mockService.Verify(ts => ts.UpdateTodoAsync(updatedTodoDTO), Times.Once()); }