using System.Linq; using Novaloop.PaymoApi.ClientContacts; using Novaloop.PaymoApi.ClientContacts.Models; using Novaloop.PaymoApi.Clients; using Novaloop.PaymoApi.Clients.Models; using Novaloop.PaymoApi.Shared; using Xunit; namespace Novaloop.PaymoApi.Tests { public class ClientContactsApiTests { private readonly PaymoClientContactsApi _paymoClientContactsApi; private readonly PaymoPaymoClientsApi _paymoPaymoClientsApi; private readonly PaymoClientContact _testPaymoClientContact = new PaymoClientContact { Name = "Testclient", Email = "test@client.de" }; public ClientContactsApiTests() { _paymoClientContactsApi = new PaymoClientContactsApi(new PaymoBaseApi(DependencyFactory.GeneratePaymoApiClient(), DependencyFactory.GenerateOptions())); _paymoPaymoClientsApi = new PaymoPaymoClientsApi(new PaymoBaseApi(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 _paymoPaymoClientsApi.GetClients()).First(); // Act _testPaymoClientContact.ClientId = existingClientContact.Id; var createdClientContact = await _paymoClientContactsApi.CreateClientContact(_testPaymoClientContact); var clientContact = await _paymoClientContactsApi.GetClientContact(createdClientContact.Id); // Assert Assert.Equal(_testPaymoClientContact.Name, clientContact.Name); Assert.Equal(_testPaymoClientContact.Email, clientContact.Email); // Cleanup await _paymoClientContactsApi.DeleteClientContact(createdClientContact.Id); } [Fact] public async void DeleteClientContact() { // Arrange var existingClientContact = (await _paymoPaymoClientsApi.GetClients()).First(); _testPaymoClientContact.ClientId = existingClientContact.Id; var createdClientContact = await _paymoClientContactsApi.CreateClientContact(_testPaymoClientContact); // Act await _paymoClientContactsApi.DeleteClientContact(createdClientContact.Id); var clientContacts = (await _paymoClientContactsApi.GetClientContacts()).ToList(); // Assert Assert.Empty(clientContacts.Where(c => c.Id == createdClientContact.Id)); } } }