using System.Linq; using Novaloop.PaymoApi.Clients; using Novaloop.PaymoApi.Clients.Models; using Xunit; namespace Novaloop.PaymoApi.Tests { public class PaymoClientsApiTests { private readonly PaymoClientsApi _paymoClientsApi; private readonly PaymoClient _testClient = new PaymoClient { Name = "Testclient", Email = "test@client.de" }; public PaymoClientsApiTests() { _paymoClientsApi = new PaymoClientsApi(DependencyFactory.GeneratePaymoApiClient(), DependencyFactory.GenerateOptions()); } [Fact] public async void GetClients() { // Arrange // Act var clients = (await _paymoClientsApi.GetClients()).ToList(); // Assert Assert.NotEmpty(clients); } [Fact] public async void GetClient() { // Arrange // Act var clients = (await _paymoClientsApi.GetClients()).ToList(); var client = await _paymoClientsApi.GetClient(clients.First().Id); // Assert Assert.NotNull(client); } [Fact] public async void CreateClient() { // Arrange // Act var createdClient = await _paymoClientsApi.CreateClient(_testClient); var client = await _paymoClientsApi.GetClient(createdClient.Id); // Assert Assert.Equal(_testClient.Name, client.Name); Assert.Equal(_testClient.Email, client.Email); // Cleanup await _paymoClientsApi.DeleteClient(createdClient.Id); } [Fact] public async void DeleteClient() { // Arrange var createdClient = await _paymoClientsApi.CreateClient(_testClient); // Act await _paymoClientsApi.DeleteClient(createdClient.Id); var clients = (await _paymoClientsApi.GetClients()).ToList(); // Assert Assert.Empty(clients.Where(c => c.Id == createdClient.Id)); } } }