public void HttpRequestMessageFactory_AcceptsCustomDelegate()
{
Configuration configuration = new Configuration(
Environment.DEVELOPMENT,
"integration_merchant_id",
"integration_public_key",
"integration_private_key"
);
#if netcore
configuration.HttpRequestMessageFactory =
delegate (HttpMethod method, string requestUriString)
{
HttpRequestMessage httpRequestMessage = new HttpRequestMessage(method, requestUriString);
httpRequestMessage.Headers.Range = new RangeHeaderValue(1024, 2048);
return httpRequestMessage;
};
Assert.IsNotNull(configuration.HttpRequestMessageFactory);
var btWebRequest = configuration.HttpRequestMessageFactory(HttpMethod.Get, configuration.Environment.GatewayURL + "/merchants/integration_merchant_id");
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, "http://webrequest.com");
Assert.IsInstanceOf(requestMessage.GetType(), btWebRequest);
var headerValue = btWebRequest.Headers.Range;
StringAssert.Contains("1024", btWebRequest.Headers.Range.ToString());
#else
configuration.HttpWebRequestFactory =
delegate(String requestUriString)
{
var webRequest = WebRequest.Create(requestUriString) as HttpWebRequest;
webRequest.AddRange(1024);
return webRequest;
};
Assert.IsNotNull(configuration.HttpWebRequestFactory);
var btWebRequest = configuration.HttpWebRequestFactory(configuration.Environment.GatewayURL + "/merchants/integration_merchant_id");
HttpWebRequest httpWebRequest = WebRequest.Create("http://webrequest.com") as HttpWebRequest;
Assert.IsInstanceOf(httpWebRequest.GetType(), btWebRequest);
StringAssert.Contains("1024", btWebRequest.Headers["Range"]);
#endif
}
}