Feature/#574 look at httpclient cache key (#589)

* #574 consolidate some code, man the config stuff is a mess!

* #574 just use the downstream re route and the key for caching http clients

* #574 added benchmark, i was suprised to learn using a complex type was faster than a string in benchmark .net dictionary tests, hey ho probably dont have enough data in the type...
This commit is contained in:
Tom Pallister
2018-09-01 13:10:45 +01:00
committed by GitHub
parent 55277cac45
commit 66b68fc685
40 changed files with 672 additions and 289 deletions

View File

@ -50,6 +50,8 @@ namespace Ocelot.UnitTests.Requester
[Fact]
public void should_call_request_correctly()
{
var upstreamTemplate = new UpstreamPathTemplateBuilder().WithOriginalValue("").Build();
var qosOptions = new QoSOptionsBuilder()
.Build();
@ -57,6 +59,7 @@ namespace Ocelot.UnitTests.Requester
.WithQosOptions(qosOptions)
.WithHttpHandlerOptions(new HttpHandlerOptions(false, false, false, true))
.WithLoadBalancerKey("")
.WithUpstreamTemplatePattern(upstreamTemplate)
.WithQosOptions(new QoSOptionsBuilder().Build())
.Build();
@ -76,6 +79,8 @@ namespace Ocelot.UnitTests.Requester
[Fact]
public void should_call_request_unable_to_complete_request()
{
var upstreamTemplate = new UpstreamPathTemplateBuilder().WithOriginalValue("").Build();
var qosOptions = new QoSOptionsBuilder()
.Build();
@ -83,6 +88,7 @@ namespace Ocelot.UnitTests.Requester
.WithQosOptions(qosOptions)
.WithHttpHandlerOptions(new HttpHandlerOptions(false, false, false, true))
.WithLoadBalancerKey("")
.WithUpstreamTemplatePattern(upstreamTemplate)
.WithQosOptions(new QoSOptionsBuilder().Build())
.Build();
@ -101,6 +107,8 @@ namespace Ocelot.UnitTests.Requester
[Fact]
public void http_client_request_times_out()
{
var upstreamTemplate = new UpstreamPathTemplateBuilder().WithOriginalValue("").Build();
var qosOptions = new QoSOptionsBuilder()
.Build();
@ -108,6 +116,7 @@ namespace Ocelot.UnitTests.Requester
.WithQosOptions(qosOptions)
.WithHttpHandlerOptions(new HttpHandlerOptions(false, false, false, true))
.WithLoadBalancerKey("")
.WithUpstreamTemplatePattern(upstreamTemplate)
.WithQosOptions(new QoSOptionsBuilder().WithTimeoutValue(1).Build())
.Build();
@ -132,7 +141,7 @@ namespace Ocelot.UnitTests.Requester
private void WhenIGetResponse()
{
_response = _httpClientRequester.GetResponse(_request).Result;
_response = _httpClientRequester.GetResponse(_request).GetAwaiter().GetResult();
}
private void ThenTheResponseIsCalledCorrectly()