using System.Linq; using Novaloop.PaymoApi.Tasks; using Novaloop.PaymoApi.Tasks.Models; using Xunit; using Xunit.Abstractions; namespace Novaloop.PaymoApi.Tests { public class PaymoTasksApiTests { private readonly ITestOutputHelper _testOutputHelper; private readonly PaymoTasksApi _paymoTasksApi; private readonly PaymoTask _testTask; public PaymoTasksApiTests(ITestOutputHelper testOutputHelper) { _testOutputHelper = testOutputHelper; _paymoTasksApi = new PaymoTasksApi(DependencyFactory.GeneratePaymoApiClient(), DependencyFactory.GenerateOptions()); _testTask = new PaymoTask { Name = "Testtask", Description = "Just a little task" }; } [Fact] public async void GetTasks() { // Arrange // Act var tasks = (await _paymoTasksApi.GetTasks()).ToList(); // Assert Assert.NotEmpty(tasks); _testOutputHelper.WriteLine(string.Join(",", tasks)); } [Fact] public async void GetTask() { // Arrange // Act var tasks = (await _paymoTasksApi.GetTasks()).ToList(); var task = await _paymoTasksApi.GetTask(tasks.First().Id); // Assert Assert.NotNull(task); } [Fact] public async void CreateTask() { // Arrange var existingTaskListId = (await _paymoTasksApi.GetTasks()).First().TasklistId; // Act _testTask.TasklistId = existingTaskListId; var createdTask = await _paymoTasksApi.CreateTask(_testTask); var task = await _paymoTasksApi.GetTask(createdTask.Id); // Assert Assert.Equal(_testTask.Name, task.Name); Assert.Equal(_testTask.Description, task.Description); // Cleanup await _paymoTasksApi.DeleteTask(createdTask.Id); } [Fact] public async void DeleteTask() { // Arrange var existingTaskListId = (await _paymoTasksApi.GetTasks()).First().TasklistId; _testTask.TasklistId = existingTaskListId; var createdTask = await _paymoTasksApi.CreateTask(_testTask); // Act await _paymoTasksApi.DeleteTask(createdTask.Id); var tasks = (await _paymoTasksApi.GetTasks()).ToList(); // Assert Assert.Empty(tasks.Where(c => c.Id == createdTask.Id)); } } }