/// <summary> /// Sets the User Agent request header if supplied and not already configured. /// </summary> /// <param name="client">The <see cref="HttpClient"/> instance being used in the typed client.</param> /// <param name="settings">The optional <see cref="EmailRepClientSettings"/> instance.</param> public static void SetUserAgent(this HttpClient client, EmailRepClientSettings settings) { if (!client.IsUserAgentConfigured() && (settings != null && settings.UserAgentSpecified)) { client.DefaultRequestHeaders.UserAgent.TryParseAdd(settings.UserAgent); } }
/// <summary> /// Sets the Api request header if supplied and not already configured. /// </summary> /// <param name="client">The <see cref="HttpClient"/> instance being used in the typed client.</param> /// <param name="settings">The optional <see cref="EmailRepClientSettings"/> instance.</param> public static void SetApiHeader(this HttpClient client, EmailRepClientSettings settings) { if (!client.IsApiHeaderConfigured() && (settings != null && settings.ApiKeySpecified)) { client.DefaultRequestHeaders.Add(ApiKeyHeader, settings.ApiKey); } }
/// <summary> /// Sets the BaseAddress if supplied and not already configured. /// </summary> /// <param name="client">The <see cref="HttpClient"/> instance being used in the typed client.</param> /// <param name="settings">The optional <see cref="EmailRepClientSettings"/> instance.</param> public static void SetBaseAddress(this HttpClient client, EmailRepClientSettings settings) { if (!client.IsBaseAddressConfigured() && (settings != null && settings.BaseUrlSpecified)) { client.BaseAddress = new Uri(settings.BaseUrl); } }
/// <summary> /// Add email rep client and register associated settings through configuration for the client. /// </summary> /// <param name="services">The instance of <see cref="IServiceCollection"/> on which the services are to be registered with.</param> /// <param name="configuration">The configuration section which contains the email rep configuration section.</param> /// <param name="sectionName">The configuration section name to use. Default: "EmailRepNet".</param> /// <returns></returns> public static IServiceCollection AddEmailRep(this IServiceCollection services, IConfiguration configuration, string sectionName = "EmailRepNet") { var settings = new EmailRepClientSettings(); configuration.GetSection(sectionName).Bind(settings); services.AddSingleton(settings); services.AddHttpClient <IEmailRepClient, EmailRepClient>(); return(services); }
public void Validate_HappyPath(EmailRepClientSettings settings, HttpClient client) { // Arrange client.SetUserAgent(settings); // Act Action result = () => client.Validate(); // Assert result.Should().NotThrow <EmailRepConfigurationException>(); }
public void SetBaseAddress(EmailRepClientSettings settings, HttpClient sut) { // Arrange sut.BaseAddress = new Uri("https://localhost/"); // Act sut.SetBaseAddress(settings); // Assert sut.BaseAddress.Host.Should().Be("localhost"); }
public void SetupApiHeader_NotSet_NoApiKeySpecified(HttpClient sut) { // Arrange var settings = new EmailRepClientSettings(); // Act sut.SetApiHeader(settings); // Assert sut.DefaultRequestHeaders.TryGetValues("Key", out _).Should().BeFalse(); }
public void SetBaseAddress_NotSet(EmailRepClientSettings settings, HttpClient sut) { // Arrange sut.BaseAddress = null; settings.BaseUrl = null; // Act sut.SetBaseAddress(settings); // Assert sut.BaseAddress.Should().BeNull(); }
public void SetBaseAddress_FromSettings(EmailRepClientSettings settings, HttpClient sut) { // Arrange sut.BaseAddress = null; settings.BaseUrl = "https://example.com/"; // Act sut.SetBaseAddress(settings); // Assert sut.BaseAddress.Host.Should().Be("example.com"); }
public void SetupApiHeader_SettingsValueWins(EmailRepClientSettings settings, HttpClient sut) { // Arrange // Act sut.SetApiHeader(settings); // Assert var values = sut.DefaultRequestHeaders.GetValues("Key"); values.Count().Should().Be(1); values.FirstOrDefault().Should().Be(settings.ApiKey); }
public void SetupApiHeader_HeaderValueWins(string headerValue, EmailRepClientSettings settings, HttpClient sut) { // Arrange sut.DefaultRequestHeaders.Add("Key", headerValue); // Act sut.SetApiHeader(settings); // Assert var values = sut.DefaultRequestHeaders.GetValues("Key"); values.Count().Should().Be(1); values.FirstOrDefault().Should().Be(headerValue); }
public void SetupUserAgent_HeaderValueWins(string headerValue, EmailRepClientSettings settings, HttpClient sut) { // Arrange sut.DefaultRequestHeaders.Add("User-Agent", headerValue); // Act sut.SetUserAgent(settings); // Assert var values = sut.DefaultRequestHeaders.UserAgent; values.Count().Should().Be(1); values.FirstOrDefault().Product.Name.Should().Be(headerValue); }
public void SetupUserAgent_SettingsValueWins(EmailRepClientSettings settings, HttpClient sut) { // Arrange settings.UserAgent = "settings-useragent"; sut.DefaultRequestHeaders.Remove("User-Agent"); // Act sut.SetUserAgent(settings); // Assert var values = sut.DefaultRequestHeaders.UserAgent; values.Count().Should().Be(1); values.FirstOrDefault().Product.Name.Should().Be(settings.UserAgent); }