public void AddHmacHeadersWithGeneratorWithContentTest() { Authentication.Hmac.HttpClientAuthenticationExtensions.RegisterHeaderGenerator(null); Mock <HmacSignatureGenerator> signatureGeneratorProxy = new Mock <HmacSignatureGenerator>(MockBehavior.Strict, customNameSpace); Mock <HmacHeaderGenerator> headerGeneratorProxy = new Mock <HmacHeaderGenerator>(MockBehavior.Strict, signatureGeneratorProxy.Object, customNameSpace); using (HttpClient client = new HttpClient()) { Uri resource = new Uri(requestedResource); Assert.Throws <NullReferenceException>(() => client.AddHmacHeadersWithGenerator(resource, method, content, null)); headerGeneratorProxy.Setup(x => x.AddHmacHeaders(client, resource, method, content)); client.AddHmacHeadersWithGenerator(resource, method, content, headerGeneratorProxy.Object); headerGeneratorProxy.Verify(x => x.AddHmacHeaders(client, resource, method, content)); } Authentication.Hmac.HttpClientAuthenticationExtensions.RegisterHeaderGenerator(null); }
/// <summary> /// Adds an HMAC header to a HttpClient using the provided header generator /// </summary> /// <param name="client">The client that will be used to make the request</param> /// <param name="requestUri">The Uri that the request will be sent to</param> /// <param name="method">The method that the request will be used</param> /// <param name="headerGenerator">The header generator to use (this will not be registered)</param> /// <exception cref="NullReferenceException">If no valid header generator was passed</exception> public static void AddHmacHeadersWithGenerator(this HttpClient client, Uri requestUri, HttpMethod method, HmacHeaderGenerator headerGenerator) { if (headerGenerator == null) { throw new NullReferenceException("No valid header generator passed."); } client.AddHmacHeadersWithGenerator(requestUri, method, null, headerGenerator); }