예제 #1
0
		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);
		}
예제 #2
0
		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);
		}
예제 #3
0
		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);
		}
예제 #5
0
		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);
		}
예제 #6
0
		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);
		}
예제 #7
0
		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);
		}
예제 #8
0
		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);
		}