more tests and docs

This commit is contained in:
TomPallister 2020-04-13 16:48:28 +01:00
parent 6c20b1173f
commit b7cfac9336
3 changed files with 21 additions and 5 deletions

View File

@ -85,6 +85,7 @@ Ocelot allows placeholders that can be used in header transformation.
{BaseUrl} - This will use Ocelot's base url e.g. http://localhost:5000 as its value. {BaseUrl} - This will use Ocelot's base url e.g. http://localhost:5000 as its value.
{DownstreamBaseUrl} - This will use the downstream services base url e.g. http://localhost:5000 as its value. This only works for DownstreamHeaderTransform at the moment. {DownstreamBaseUrl} - This will use the downstream services base url e.g. http://localhost:5000 as its value. This only works for DownstreamHeaderTransform at the moment.
{TraceId} - This will use the Butterfly APM Trace Id. This only works for DownstreamHeaderTransform at the moment. {TraceId} - This will use the Butterfly APM Trace Id. This only works for DownstreamHeaderTransform at the moment.
{UpstreamHost} - This will look for the incoming Host header.
Handling 302 Redirects Handling 302 Redirects
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^

View File

@ -32,7 +32,7 @@ namespace Ocelot.Infrastructure
_requestPlaceholders = new Dictionary<string, Func<DownstreamRequest, string>> _requestPlaceholders = new Dictionary<string, Func<DownstreamRequest, string>>
{ {
{ "{DownstreamBaseUrl}", GetDownstreamBaseUrl() } { "{DownstreamBaseUrl}", GetDownstreamBaseUrl() },
}; };
} }
@ -143,11 +143,9 @@ namespace Ocelot.Infrastructure
{ {
return new OkResponse<string>(upstreamHost.First()); return new OkResponse<string>(upstreamHost.First());
} }
else
{
return new ErrorResponse<string>(new CouldNotFindPlaceholderError("{UpstreamHost}")); return new ErrorResponse<string>(new CouldNotFindPlaceholderError("{UpstreamHost}"));
} }
}
catch catch
{ {
return new ErrorResponse<string>(new CouldNotFindPlaceholderError("{UpstreamHost}")); return new ErrorResponse<string>(new CouldNotFindPlaceholderError("{UpstreamHost}"));

View File

@ -134,5 +134,22 @@ namespace Ocelot.UnitTests.Infrastructure
var result = _placeholders.Get("{UpstreamHost}"); var result = _placeholders.Get("{UpstreamHost}");
result.Data.ShouldBe(upstreamHost); result.Data.ShouldBe(upstreamHost);
} }
[Fact]
public void should_return_error_when_finding_upstbecause_Host_not_set()
{
var httpContext = new DefaultHttpContext();
_accessor.Setup(x => x.HttpContext).Returns(httpContext);
var result = _placeholders.Get("{UpstreamHost}");
result.IsError.ShouldBeTrue();
}
[Fact]
public void should_return_error_when_finding_upstream_host_because_exception_thrown()
{
_accessor.Setup(x => x.HttpContext).Throws(new Exception());
var result = _placeholders.Get("{UpstreamHost}");
result.IsError.ShouldBeTrue();
}
} }
} }