112 lines
3.3 KiB
C#
112 lines
3.3 KiB
C#
using System.Dynamic;
|
|
using System.Linq;
|
|
using Novaloop.PaymoApi.Shared;
|
|
using Novaloop.PaymoApi.Tasks;
|
|
using Novaloop.PaymoApi.Tasks.Models;
|
|
using Xunit;
|
|
using Xunit.Abstractions;
|
|
|
|
namespace Novaloop.PaymoApi.Tests
|
|
{
|
|
public class TasksApiTests
|
|
{
|
|
private readonly ITestOutputHelper _testOutputHelper;
|
|
private readonly TasksApi _tasksApi;
|
|
private readonly Task _testTask;
|
|
|
|
public TasksApiTests(ITestOutputHelper testOutputHelper)
|
|
{
|
|
_testOutputHelper = testOutputHelper;
|
|
_tasksApi = new TasksApi(new BaseApi<TasksResponse, Task>(DependencyFactory.GeneratePaymoApiClient(), DependencyFactory.GenerateOptions()));
|
|
|
|
_testTask = new Task
|
|
{
|
|
Name = "Testtask",
|
|
Description = "Just a little task"
|
|
};
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public async void GetTasks()
|
|
{
|
|
// Arrange
|
|
|
|
// Act
|
|
var tasks = (await _tasksApi.GetTasks()).ToList();
|
|
|
|
// Assert
|
|
Assert.NotEmpty(tasks);
|
|
_testOutputHelper.WriteLine(string.Join(",", tasks));
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetTask()
|
|
{
|
|
// Arrange
|
|
|
|
// Act
|
|
var tasks = (await _tasksApi.GetTasks()).ToList();
|
|
var task = await _tasksApi.GetTask(tasks.First().Id);
|
|
|
|
// Assert
|
|
Assert.NotNull(task);
|
|
}
|
|
|
|
[Fact]
|
|
public async void CreateTask()
|
|
{
|
|
// Arrange
|
|
var existingTaskListId = (await _tasksApi.GetTasks()).First().TasklistId;
|
|
|
|
// Act
|
|
_testTask.TasklistId = existingTaskListId;
|
|
var createdTask = await _tasksApi.CreateTask(_testTask);
|
|
var task = await _tasksApi.GetTask(createdTask.Id);
|
|
|
|
// Assert
|
|
Assert.Equal(_testTask.Name, task.Name);
|
|
Assert.Equal(_testTask.Description, task.Description);
|
|
|
|
// Cleanup
|
|
await _tasksApi.DeleteTask(createdTask.Id);
|
|
}
|
|
|
|
[Fact]
|
|
public async void DeleteTask()
|
|
{
|
|
// Arrange
|
|
var existingTaskListId = (await _tasksApi.GetTasks()).First().TasklistId;
|
|
_testTask.TasklistId = existingTaskListId;
|
|
var createdTask = await _tasksApi.CreateTask(_testTask);
|
|
|
|
// Act
|
|
await _tasksApi.DeleteTask(createdTask.Id);
|
|
var tasks = (await _tasksApi.GetTasks()).ToList();
|
|
|
|
|
|
// Assert
|
|
Assert.Empty(tasks.Where(c => c.Id == createdTask.Id));
|
|
}
|
|
|
|
[Fact]
|
|
public async void UpdateTask()
|
|
{
|
|
// Arrange
|
|
var existingTaskListId = (await _tasksApi.GetTasks()).First().TasklistId;
|
|
_testTask.TasklistId = existingTaskListId;
|
|
var createdTask = await _tasksApi.CreateTask(_testTask);
|
|
dynamic taskUpdateInfo = new ExpandoObject();
|
|
taskUpdateInfo.Name = "Updated";
|
|
taskUpdateInfo.TaskListId = _testTask.TasklistId;
|
|
|
|
// Act
|
|
await _tasksApi.UpdateTask(taskUpdateInfo, createdTask.Id);
|
|
var updatedTask = await _tasksApi.GetTask(createdTask.Id);
|
|
|
|
|
|
// Assert
|
|
Assert.Equal(taskUpdateInfo.Name, updatedTask.Name);
|
|
}
|
|
}
|
|
} |