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 ClientContactsApi _clientContactsApi; private readonly ClientsApi _clientsApi; private readonly ClientContact _testClientContact = new ClientContact { Name = "Testclient", Email = "test@client.de" }; public ClientContactsApiTests() { _clientContactsApi = new ClientContactsApi(new BaseApi(DependencyFactory.GeneratePaymoApiClient(), DependencyFactory.GenerateOptions())); _clientsApi = new ClientsApi(new BaseApi(DependencyFactory.GeneratePaymoApiClient(), DependencyFactory.GenerateOptions())); } [Fact] public async void GetClientContacts() { // Arrange // Act var clientContacts = (await _clientContactsApi.GetClientContacts()).ToList(); // Assert Assert.NotEmpty(clientContacts); } [Fact] public async void GetClientContact() { // Arrange // Act var clientContacts = (await _clientContactsApi.GetClientContacts()).ToList(); var clientContact = await _clientContactsApi.GetClientContact(clientContacts.First().Id); // Assert Assert.NotNull(clientContact); } [Fact] public async void CreateClientContact() { // Arrange var existingClientContact = (await _clientsApi.GetClients()).First(); // Act _testClientContact.ClientId = existingClientContact.Id; var createdClientContact = await _clientContactsApi.CreateClientContact(_testClientContact); var clientContact = await _clientContactsApi.GetClientContact(createdClientContact.Id); // Assert Assert.Equal(_testClientContact.Name, clientContact.Name); Assert.Equal(_testClientContact.Email, clientContact.Email); // Cleanup await _clientContactsApi.DeleteClientContact(createdClientContact.Id); } [Fact] public async void DeleteClientContact() { // Arrange var existingClientContact = (await _clientsApi.GetClients()).First(); _testClientContact.ClientId = existingClientContact.Id; var createdClientContact = await _clientContactsApi.CreateClientContact(_testClientContact); // Act await _clientContactsApi.DeleteClientContact(createdClientContact.Id); var clientContacts = (await _clientContactsApi.GetClientContacts()).ToList(); // Assert Assert.Empty(clientContacts.Where(c => c.Id == createdClientContact.Id)); } } }