/// <summary> /// Our Company API lets you lookup company data via a domain name. /// </summary> /// <param name="enrichmentRequest"></param> /// <returns></returns> public async Task <RestResponse <Company> > GetEnrichmentCompanyAsync(EnrichmentCompanyRequest enrichmentRequest) { if (enrichmentRequest == null) { throw new ArgumentNullException(nameof(enrichmentRequest)); } var request = new RestRequest(EnrichmentCompanyUrl, ContentTypes.Json); request.AddQueryString("domain", enrichmentRequest.CompanyDomain); BuildRequestQueryString(request, enrichmentRequest, new string[] { nameof(EnrichmentCompanyRequest.CompanyDomain) }); return(await SendAsync <Company>(request).ConfigureAwait(false)); }
public void BuildRequestQueryString_UsesCorrectNames() { var client = new ClearbitClient(Configuration["ClearbitApiKey"]); var enrichmentRequest = new EnrichmentCompanyRequest("nimbleapps.cloud") { CompanyName = "CloudNimble" }; var request = new RestRequest(""); client.BuildRequestQueryString(request, enrichmentRequest, new string[] { }); var prop = typeof(RestRequest).GetProperty("UrlSegments", BindingFlags.NonPublic | BindingFlags.Instance); var getter = prop.GetGetMethod(nonPublic: true); var parameters = (IList)getter.Invoke(request, null); parameters.Should().HaveCount(2); var one = ToDynamic(parameters[1]); ((string)one.Key).Should().Be("domain"); }