public async Task Status_not_found_when_deleting_task_that_does_not_exist() { // arrange var taskId = 1; var serviceMock = new Moq.Mock<ITodoService>(); serviceMock.Setup(x => x.DeleteAsync(taskId)).ReturnsAsync(false); var controller = new TodoController(serviceMock.Object); // act var result = await controller.DeleteTodo(taskId); // assert serviceMock.Verify(x => x.DeleteAsync(taskId), Times.Once); Assert.NotNull(result); Assert.Equal(HttpStatusCode.NotFound, result.StatusCode); }
public async Task Change_completeness_of_task() { // arrange var existingTask = new TodoItem() { Id = 2, Completed = true, Title = "Test 1" }; var serviceMock = new Moq.Mock<ITodoService>(); serviceMock.Setup(x => x.UpdateAsync(existingTask.Id, existingTask)).ReturnsAsync(existingTask); var controller = new TodoController(serviceMock.Object); // act var result = await controller.UpdateTodo(existingTask.Id, existingTask); // assert serviceMock.Verify(x => x.UpdateAsync(existingTask.Id, existingTask), Times.Once); Assert.NotNull(result); Assert.Equal(existingTask, result); }
public async Task Delete_task() { // arrange var taskId = 1; var serviceMock = new Moq.Mock<ITodoService>(); serviceMock.Setup(x => x.DeleteAsync(taskId)).ReturnsAsync(true); var controller = new TodoController(serviceMock.Object); // act var result = await controller.DeleteTodo(taskId); // assert serviceMock.Verify(x => x.DeleteAsync(taskId), Times.Once); Assert.NotNull(result); Assert.Equal(HttpStatusCode.OK, result.StatusCode); }
public async Task Get_all_tasks() { // arrange await PrepareDatabase(); var service = new TodoService(); var controller = new TodoController(service); // act var result = await controller.GetAll(); // assert Assert.NotEmpty(result); Assert.Equal(2, result.Count); Assert.Equal(Todos, result); }
public async Task Add_new_task() { // arrange var newTask = new TodoItem() { Completed = false, Title = "Test 3" }; var serviceMock = new Moq.Mock<ITodoService>(); serviceMock.Setup(x => x.AddAsync(newTask)).ReturnsAsync(newTask); var controller = new TodoController(serviceMock.Object); // act var result = await controller.AddTodo(newTask); // assert serviceMock.Verify(x => x.AddAsync(newTask), Times.Once); Assert.NotNull(result); Assert.Equal(newTask, result); }
public void Status_not_found_when_changing_task_that_does_not_exist() { // arrange var taskId = 4; var existingTask = new TodoItem() { Id = 2, Completed = false, Title = "Test 3" }; var serviceMock = new Moq.Mock<ITodoService>(); serviceMock.Setup(x => x.UpdateAsync(taskId, existingTask)).ReturnsAsync(null); var controller = new TodoController(serviceMock.Object); // act var exc = Assert.Throws<AggregateException>(() => controller.UpdateTodo(taskId, existingTask).Result); var result = exc.InnerExceptions.Cast<HttpResponseException>().FirstOrDefault(); // assert serviceMock.Verify(x => x.UpdateAsync(taskId, existingTask), Times.Once); Assert.NotNull(result); Assert.Equal(HttpStatusCode.NotFound, result.Response.StatusCode); }
public async Task Get_all_tasks() { // arrange var list = new List<TodoItem> { new TodoItem() { Id = 1, Completed = false, Title = "Test 1" }, new TodoItem() { Id = 2, Completed = true, Title = "Test 2" } }; var serviceMock = new Moq.Mock<ITodoService>(); serviceMock.Setup(x => x.GetAllAsync()).ReturnsAsync(list); var controller = new TodoController(serviceMock.Object); // act var result = await controller.GetAll(); // assert serviceMock.Verify(x => x.GetAllAsync(), Times.Once); Assert.NotEmpty(result); Assert.Equal(2, result.Count); Assert.Equal(list, result); }
public async Task Clear_all_completed_tasks() { // arrange var list = new List<TodoItem> { new TodoItem() { Id = 1, Completed = false, Title = "Test 1" }, new TodoItem() { Id = 2, Completed = true, Title = "Test 2" } }; var notCompleted = list.Where(x => x.Completed == false).ToList(); var serviceMock = new Moq.Mock<ITodoService>(); serviceMock.Setup(x => x.ClearCompleted()).ReturnsAsync(notCompleted); var controller = new TodoController(serviceMock.Object); // act var result = await controller.ClearCompleted(); // assert serviceMock.Verify(x => x.ClearCompleted(), Times.Once); Assert.NotEmpty(result); Assert.Equal(1, result.Count); Assert.Equal(notCompleted, result); }