117 lines
3.6 KiB
C#
117 lines
3.6 KiB
C#
using System.Dynamic;
|
|
using System.Linq;
|
|
using System.Threading;
|
|
using Novaloop.PaymoApi.Shared;
|
|
using Novaloop.PaymoApi.Tasks;
|
|
using Novaloop.PaymoApi.Tasks.Models;
|
|
using Xunit;
|
|
using Xunit.Abstractions;
|
|
|
|
namespace Novaloop.PaymoApi.Tests
|
|
{
|
|
[Collection("IntegrationTests")]
|
|
public class TasksApiTests
|
|
{
|
|
private readonly ITestOutputHelper _testOutputHelper;
|
|
private readonly PaymoTasksApi _paymoTasksApi;
|
|
private readonly PaymoTask _testPaymoTask;
|
|
|
|
public TasksApiTests(ITestOutputHelper testOutputHelper)
|
|
{
|
|
Thread.Sleep(5000);
|
|
_testOutputHelper = testOutputHelper;
|
|
_paymoTasksApi =
|
|
new PaymoTasksApi(new PaymoBaseApi<PaymoTasksResponse, PaymoTask>(DependencyFactory.GeneratePaymoApiClient(),
|
|
DependencyFactory.GenerateOptions()));
|
|
|
|
_testPaymoTask = 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
|
|
_testPaymoTask.TasklistId = existingTaskListId;
|
|
var createdTask = await _paymoTasksApi.CreateTask(_testPaymoTask);
|
|
var task = await _paymoTasksApi.GetTask(createdTask.Id);
|
|
|
|
// Assert
|
|
Assert.Equal(_testPaymoTask.Name, task.Name);
|
|
Assert.Equal(_testPaymoTask.Description, task.Description);
|
|
|
|
// Cleanup
|
|
await _paymoTasksApi.DeleteTask(createdTask.Id);
|
|
}
|
|
|
|
[Fact]
|
|
public async void DeleteTask()
|
|
{
|
|
// Arrange
|
|
var existingTaskListId = (await _paymoTasksApi.GetTasks()).First().TasklistId;
|
|
_testPaymoTask.TasklistId = existingTaskListId;
|
|
var createdTask = await _paymoTasksApi.CreateTask(_testPaymoTask);
|
|
|
|
// Act
|
|
await _paymoTasksApi.DeleteTask(createdTask.Id);
|
|
var tasks = (await _paymoTasksApi.GetTasks()).ToList();
|
|
|
|
|
|
// Assert
|
|
Assert.Empty(tasks.Where(c => c.Id == createdTask.Id));
|
|
}
|
|
|
|
[Fact]
|
|
public async void UpdateTask()
|
|
{
|
|
// Arrange
|
|
var existingTaskListId = (await _paymoTasksApi.GetTasks()).First().TasklistId;
|
|
_testPaymoTask.TasklistId = existingTaskListId;
|
|
var createdTask = await _paymoTasksApi.CreateTask(_testPaymoTask);
|
|
dynamic taskUpdateInfo = new ExpandoObject();
|
|
taskUpdateInfo.Name = "Updated";
|
|
taskUpdateInfo.TaskListId = _testPaymoTask.TasklistId;
|
|
|
|
// Act
|
|
await _paymoTasksApi.UpdateTask(taskUpdateInfo, createdTask.Id);
|
|
var updatedTask = await _paymoTasksApi.GetTask(createdTask.Id);
|
|
|
|
|
|
// Assert
|
|
Assert.Equal(taskUpdateInfo.Name, updatedTask.Name);
|
|
}
|
|
}
|
|
} |