using System.Linq; using Novaloop.PaymoApi.ClientContacts; using Novaloop.PaymoApi.ClientContacts.Models; using Novaloop.PaymoApi.Clients; using Xunit; namespace Novaloop.PaymoApi.Tests { public class PaymoClientContactsApiTests { private readonly PaymoClientContactsApi _paymoClientContactsApi; private readonly PaymoClientsApi _paymoClientsApi; private readonly PaymoClientContact _testClientContact = new PaymoClientContact { Name = "Testclient", Email = "test@client.de" }; public PaymoClientContactsApiTests() { _paymoClientContactsApi = new PaymoClientContactsApi(DependencyFactory.GeneratePaymoApiClient(), DependencyFactory.GenerateOptions()); _paymoClientsApi = new PaymoClientsApi(DependencyFactory.GeneratePaymoApiClient(), DependencyFactory.GenerateOptions()); } [Fact] public async void GetClientContacts() { // Arrange // Act var clientContacts = (await _paymoClientContactsApi.GetClientContacts()).ToList(); // Assert Assert.NotEmpty(clientContacts); } [Fact] public async void GetClientContact() { // Arrange // Act var clientContacts = (await _paymoClientContactsApi.GetClientContacts()).ToList(); var clientContact = await _paymoClientContactsApi.GetClientContact(clientContacts.First().Id); // Assert Assert.NotNull(clientContact); } [Fact] public async void CreateClientContact() { // Arrange var existingClientContact = (await _paymoClientsApi.GetClients()).First(); // Act _testClientContact.ClientId = existingClientContact.Id; var createdClientContact = await _paymoClientContactsApi.CreateClientContact(_testClientContact); var clientContact = await _paymoClientContactsApi.GetClientContact(createdClientContact.Id); // Assert Assert.Equal(_testClientContact.Name, clientContact.Name); Assert.Equal(_testClientContact.Email, clientContact.Email); // Cleanup await _paymoClientContactsApi.DeleteClientContact(createdClientContact.Id); } [Fact] public async void DeleteClientContact() { // Arrange var existingClientContact = (await _paymoClientsApi.GetClients()).First(); _testClientContact.ClientId = existingClientContact.Id; var createdClientContact = await _paymoClientContactsApi.CreateClientContact(_testClientContact); // Act await _paymoClientContactsApi.DeleteClientContact(createdClientContact.Id); var clientContacts = (await _paymoClientContactsApi.GetClientContacts()).ToList(); // Assert Assert.Empty(clientContacts.Where(c => c.Id == createdClientContact.Id)); } } }