chore: refactoring some code to introduce a common base class for all api classes
This commit is contained in:
109
tests/TasksApiTests.cs
Normal file
109
tests/TasksApiTests.cs
Normal file
@@ -0,0 +1,109 @@
|
||||
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);
|
||||
var taskUpdateInfo = new Task {Name = "Updated", TasklistId = _testTask.TasklistId};
|
||||
|
||||
// Act
|
||||
await _tasksApi.UpdateTask(taskUpdateInfo, createdTask.Id);
|
||||
var updatedTask = await _tasksApi.GetTask(createdTask.Id);
|
||||
|
||||
|
||||
// Assert
|
||||
Assert.Equal(taskUpdateInfo.Name, updatedTask.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user