all acceptance tests passing

This commit is contained in:
TomPallister 2020-02-19 09:18:01 +00:00
parent e969e9ff0b
commit 2772ce406d
23 changed files with 94 additions and 35 deletions

View File

@ -13,13 +13,15 @@ namespace Ocelot.Configuration.Creator
private readonly IHttpHandlerOptionsCreator _httpHandlerOptionsCreator; private readonly IHttpHandlerOptionsCreator _httpHandlerOptionsCreator;
private readonly IAdministrationPath _adminPath; private readonly IAdministrationPath _adminPath;
private readonly ILoadBalancerOptionsCreator _loadBalancerOptionsCreator; private readonly ILoadBalancerOptionsCreator _loadBalancerOptionsCreator;
private readonly IVersionCreator _versionCreator;
public ConfigurationCreator( public ConfigurationCreator(
IServiceProviderConfigurationCreator serviceProviderConfigCreator, IServiceProviderConfigurationCreator serviceProviderConfigCreator,
IQoSOptionsCreator qosOptionsCreator, IQoSOptionsCreator qosOptionsCreator,
IHttpHandlerOptionsCreator httpHandlerOptionsCreator, IHttpHandlerOptionsCreator httpHandlerOptionsCreator,
IServiceProvider serviceProvider, IServiceProvider serviceProvider,
ILoadBalancerOptionsCreator loadBalancerOptionsCreator ILoadBalancerOptionsCreator loadBalancerOptionsCreator,
IVersionCreator versionCreator
) )
{ {
_adminPath = serviceProvider.GetService<IAdministrationPath>(); _adminPath = serviceProvider.GetService<IAdministrationPath>();
@ -27,6 +29,7 @@ namespace Ocelot.Configuration.Creator
_serviceProviderConfigCreator = serviceProviderConfigCreator; _serviceProviderConfigCreator = serviceProviderConfigCreator;
_qosOptionsCreator = qosOptionsCreator; _qosOptionsCreator = qosOptionsCreator;
_httpHandlerOptionsCreator = httpHandlerOptionsCreator; _httpHandlerOptionsCreator = httpHandlerOptionsCreator;
_versionCreator = versionCreator;
} }
public InternalConfiguration Create(FileConfiguration fileConfiguration, List<ReRoute> reRoutes) public InternalConfiguration Create(FileConfiguration fileConfiguration, List<ReRoute> reRoutes)
@ -41,6 +44,8 @@ namespace Ocelot.Configuration.Creator
var adminPath = _adminPath != null ? _adminPath.Path : null; var adminPath = _adminPath != null ? _adminPath.Path : null;
var version = _versionCreator.Create(fileConfiguration.GlobalConfiguration.DownstreamHttpVersion);
return new InternalConfiguration(reRoutes, return new InternalConfiguration(reRoutes,
adminPath, adminPath,
serviceProviderConfiguration, serviceProviderConfiguration,
@ -48,7 +53,8 @@ namespace Ocelot.Configuration.Creator
lbOptions, lbOptions,
fileConfiguration.GlobalConfiguration.DownstreamScheme, fileConfiguration.GlobalConfiguration.DownstreamScheme,
qosOptions, qosOptions,
httpHandlerOptions httpHandlerOptions,
version
); );
} }
} }

View File

@ -8,10 +8,12 @@ namespace Ocelot.Configuration.Creator
public class DynamicsCreator : IDynamicsCreator public class DynamicsCreator : IDynamicsCreator
{ {
private readonly IRateLimitOptionsCreator _rateLimitOptionsCreator; private readonly IRateLimitOptionsCreator _rateLimitOptionsCreator;
private readonly IVersionCreator _versionCreator;
public DynamicsCreator(IRateLimitOptionsCreator rateLimitOptionsCreator) public DynamicsCreator(IRateLimitOptionsCreator rateLimitOptionsCreator, IVersionCreator versionCreator)
{ {
_rateLimitOptionsCreator = rateLimitOptionsCreator; _rateLimitOptionsCreator = rateLimitOptionsCreator;
_versionCreator = versionCreator;
} }
public List<ReRoute> Create(FileConfiguration fileConfiguration) public List<ReRoute> Create(FileConfiguration fileConfiguration)
@ -26,10 +28,13 @@ namespace Ocelot.Configuration.Creator
var rateLimitOption = _rateLimitOptionsCreator var rateLimitOption = _rateLimitOptionsCreator
.Create(fileDynamicReRoute.RateLimitRule, globalConfiguration); .Create(fileDynamicReRoute.RateLimitRule, globalConfiguration);
var version = _versionCreator.Create(fileDynamicReRoute.DownstreamHttpVersion);
var downstreamReRoute = new DownstreamReRouteBuilder() var downstreamReRoute = new DownstreamReRouteBuilder()
.WithEnableRateLimiting(rateLimitOption.EnableRateLimiting) .WithEnableRateLimiting(rateLimitOption.EnableRateLimiting)
.WithRateLimitOptions(rateLimitOption) .WithRateLimitOptions(rateLimitOption)
.WithServiceName(fileDynamicReRoute.ServiceName) .WithServiceName(fileDynamicReRoute.ServiceName)
.WithDownstreamHttpVersion(version)
.Build(); .Build();
var reRoute = new ReRouteBuilder() var reRoute = new ReRouteBuilder()

View File

@ -4,5 +4,6 @@ namespace Ocelot.Configuration.File
{ {
public string ServiceName { get; set; } public string ServiceName { get; set; }
public FileRateLimitRule RateLimitRule { get; set; } public FileRateLimitRule RateLimitRule { get; set; }
public string DownstreamHttpVersion { get; set; }
} }
} }

View File

@ -26,5 +26,7 @@
public string DownstreamScheme { get; set; } public string DownstreamScheme { get; set; }
public FileHttpHandlerOptions HttpHandlerOptions { get; set; } public FileHttpHandlerOptions HttpHandlerOptions { get; set; }
public string DownstreamHttpVersion { get; set; }
} }
} }

View File

@ -2,6 +2,8 @@ using System.Collections.Generic;
namespace Ocelot.Configuration namespace Ocelot.Configuration
{ {
using System;
public interface IInternalConfiguration public interface IInternalConfiguration
{ {
List<ReRoute> ReRoutes { get; } List<ReRoute> ReRoutes { get; }
@ -19,5 +21,7 @@ namespace Ocelot.Configuration
QoSOptions QoSOptions { get; } QoSOptions QoSOptions { get; }
HttpHandlerOptions HttpHandlerOptions { get; } HttpHandlerOptions HttpHandlerOptions { get; }
Version DownstreamHttpVersion { get; }
} }
} }

View File

@ -2,6 +2,8 @@ using System.Collections.Generic;
namespace Ocelot.Configuration namespace Ocelot.Configuration
{ {
using System;
public class InternalConfiguration : IInternalConfiguration public class InternalConfiguration : IInternalConfiguration
{ {
public InternalConfiguration( public InternalConfiguration(
@ -12,7 +14,8 @@ namespace Ocelot.Configuration
LoadBalancerOptions loadBalancerOptions, LoadBalancerOptions loadBalancerOptions,
string downstreamScheme, string downstreamScheme,
QoSOptions qoSOptions, QoSOptions qoSOptions,
HttpHandlerOptions httpHandlerOptions) HttpHandlerOptions httpHandlerOptions,
Version downstreamHttpVersion)
{ {
ReRoutes = reRoutes; ReRoutes = reRoutes;
AdministrationPath = administrationPath; AdministrationPath = administrationPath;
@ -22,6 +25,7 @@ namespace Ocelot.Configuration
DownstreamScheme = downstreamScheme; DownstreamScheme = downstreamScheme;
QoSOptions = qoSOptions; QoSOptions = qoSOptions;
HttpHandlerOptions = httpHandlerOptions; HttpHandlerOptions = httpHandlerOptions;
DownstreamHttpVersion = downstreamHttpVersion;
} }
public List<ReRoute> ReRoutes { get; } public List<ReRoute> ReRoutes { get; }
@ -32,5 +36,7 @@ namespace Ocelot.Configuration
public string DownstreamScheme { get; } public string DownstreamScheme { get; }
public QoSOptions QoSOptions { get; } public QoSOptions QoSOptions { get; }
public HttpHandlerOptions HttpHandlerOptions { get; } public HttpHandlerOptions HttpHandlerOptions { get; }
public Version DownstreamHttpVersion { get; }
} }
} }

View File

@ -1,5 +1,6 @@
namespace Ocelot.DownstreamRouteFinder.Finder namespace Ocelot.DownstreamRouteFinder.Finder
{ {
using System;
using Configuration; using Configuration;
using Configuration.Builder; using Configuration.Builder;
using Configuration.Creator; using Configuration.Creator;
@ -54,6 +55,7 @@
.WithQosOptions(qosOptions) .WithQosOptions(qosOptions)
.WithDownstreamScheme(configuration.DownstreamScheme) .WithDownstreamScheme(configuration.DownstreamScheme)
.WithLoadBalancerOptions(configuration.LoadBalancerOptions) .WithLoadBalancerOptions(configuration.LoadBalancerOptions)
.WithDownstreamHttpVersion(configuration.DownstreamHttpVersion)
.WithUpstreamPathTemplate(upstreamPathTemplate); .WithUpstreamPathTemplate(upstreamPathTemplate);
var rateLimitOptions = configuration.ReRoutes != null var rateLimitOptions = configuration.ReRoutes != null

View File

@ -27,7 +27,7 @@ namespace Ocelot.AcceptanceTests
public void should_load_balance_request_with_least_connection() public void should_load_balance_request_with_least_connection()
{ {
int portOne = 50591; int portOne = 50591;
int portTwo = 51482; int portTwo = 54483;
var downstreamServiceOneUrl = $"http://localhost:{portOne}"; var downstreamServiceOneUrl = $"http://localhost:{portOne}";
var downstreamServiceTwoUrl = $"http://localhost:{portTwo}"; var downstreamServiceTwoUrl = $"http://localhost:{portTwo}";

View File

@ -392,6 +392,7 @@ namespace Ocelot.AcceptanceTests
_ocelotServer = new TestServer(_webHostBuilder); _ocelotServer = new TestServer(_webHostBuilder);
_ocelotClient = _ocelotServer.CreateClient(); _ocelotClient = _ocelotServer.CreateClient();
Thread.Sleep(1000);
} }
public void WhenIGetUrlOnTheApiGatewayWaitingForTheResponseToBeOk(string url) public void WhenIGetUrlOnTheApiGatewayWaitingForTheResponseToBeOk(string url)

View File

@ -59,7 +59,7 @@ namespace Ocelot.Benchmarks
_downstreamContext = new DownstreamContext(httpContext) _downstreamContext = new DownstreamContext(httpContext)
{ {
Configuration = new InternalConfiguration(new List<ReRoute>(), null, null, null, null, null, null, null) Configuration = new InternalConfiguration(new List<ReRoute>(), null, null, null, null, null, null, null, null)
}; };
} }

View File

@ -19,6 +19,7 @@ namespace Ocelot.UnitTests.Configuration
private readonly Mock<IQoSOptionsCreator> _qosCreator; private readonly Mock<IQoSOptionsCreator> _qosCreator;
private readonly Mock<IHttpHandlerOptionsCreator> _hhoCreator; private readonly Mock<IHttpHandlerOptionsCreator> _hhoCreator;
private readonly Mock<ILoadBalancerOptionsCreator> _lboCreator; private readonly Mock<ILoadBalancerOptionsCreator> _lboCreator;
private readonly Mock<IVersionCreator> _vCreator;
private FileConfiguration _fileConfig; private FileConfiguration _fileConfig;
private List<ReRoute> _reRoutes; private List<ReRoute> _reRoutes;
private ServiceProviderConfiguration _spc; private ServiceProviderConfiguration _spc;
@ -30,6 +31,7 @@ namespace Ocelot.UnitTests.Configuration
public ConfigurationCreatorTests() public ConfigurationCreatorTests()
{ {
_vCreator = new Mock<IVersionCreator>();
_lboCreator = new Mock<ILoadBalancerOptionsCreator>(); _lboCreator = new Mock<ILoadBalancerOptionsCreator>();
_hhoCreator = new Mock<IHttpHandlerOptionsCreator>(); _hhoCreator = new Mock<IHttpHandlerOptionsCreator>();
_qosCreator = new Mock<IQoSOptionsCreator>(); _qosCreator = new Mock<IQoSOptionsCreator>();
@ -117,7 +119,7 @@ namespace Ocelot.UnitTests.Configuration
private void WhenICreate() private void WhenICreate()
{ {
var serviceProvider = _serviceCollection.BuildServiceProvider(); var serviceProvider = _serviceCollection.BuildServiceProvider();
_creator = new ConfigurationCreator(_spcCreator.Object, _qosCreator.Object, _hhoCreator.Object, serviceProvider, _lboCreator.Object); _creator = new ConfigurationCreator(_spcCreator.Object, _qosCreator.Object, _hhoCreator.Object, serviceProvider, _lboCreator.Object, _vCreator.Object);
_result = _creator.Create(_fileConfig, _reRoutes); _result = _creator.Create(_fileConfig, _reRoutes);
} }
} }

View File

@ -1,5 +1,6 @@
namespace Ocelot.UnitTests.Configuration namespace Ocelot.UnitTests.Configuration
{ {
using System;
using Moq; using Moq;
using Ocelot.Configuration; using Ocelot.Configuration;
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
@ -14,15 +15,18 @@
{ {
private readonly DynamicsCreator _creator; private readonly DynamicsCreator _creator;
private readonly Mock<IRateLimitOptionsCreator> _rloCreator; private readonly Mock<IRateLimitOptionsCreator> _rloCreator;
private readonly Mock<IVersionCreator> _versionCreator;
private List<ReRoute> _result; private List<ReRoute> _result;
private FileConfiguration _fileConfig; private FileConfiguration _fileConfig;
private RateLimitOptions _rlo1; private RateLimitOptions _rlo1;
private RateLimitOptions _rlo2; private RateLimitOptions _rlo2;
private Version _version;
public DynamicsCreatorTests() public DynamicsCreatorTests()
{ {
_versionCreator = new Mock<IVersionCreator>();
_rloCreator = new Mock<IRateLimitOptionsCreator>(); _rloCreator = new Mock<IRateLimitOptionsCreator>();
_creator = new DynamicsCreator(_rloCreator.Object); _creator = new DynamicsCreator(_rloCreator.Object, _versionCreator.Object);
} }
[Fact] [Fact]
@ -50,7 +54,8 @@
RateLimitRule = new FileRateLimitRule RateLimitRule = new FileRateLimitRule
{ {
EnableRateLimiting = false EnableRateLimiting = false
} },
DownstreamHttpVersion = "1.1"
}, },
new FileDynamicReRoute new FileDynamicReRoute
{ {
@ -58,16 +63,19 @@
RateLimitRule = new FileRateLimitRule RateLimitRule = new FileRateLimitRule
{ {
EnableRateLimiting = true EnableRateLimiting = true
} },
DownstreamHttpVersion = "2.0"
} }
} }
}; };
this.Given(_ => GivenThe(fileConfig)) this.Given(_ => GivenThe(fileConfig))
.And(_ => GivenTheRloCreatorReturns()) .And(_ => GivenTheRloCreatorReturns())
.And(_ => GivenTheVersionCreatorReturns())
.When(_ => WhenICreate()) .When(_ => WhenICreate())
.Then(_ => ThenTheReRoutesAreReturned()) .Then(_ => ThenTheReRoutesAreReturned())
.And(_ => ThenTheRloCreatorIsCalledCorrectly()) .And(_ => ThenTheRloCreatorIsCalledCorrectly())
.And(_ => ThenTheVersionCreatorIsCalledCorrectly())
.BDDfy(); .BDDfy();
} }
@ -80,18 +88,32 @@
_fileConfig.GlobalConfiguration), Times.Once); _fileConfig.GlobalConfiguration), Times.Once);
} }
private void ThenTheVersionCreatorIsCalledCorrectly()
{
_versionCreator.Verify(x => x.Create(_fileConfig.DynamicReRoutes[0].DownstreamHttpVersion), Times.Once);
_versionCreator.Verify(x => x.Create(_fileConfig.DynamicReRoutes[1].DownstreamHttpVersion), Times.Once);
}
private void ThenTheReRoutesAreReturned() private void ThenTheReRoutesAreReturned()
{ {
_result.Count.ShouldBe(2); _result.Count.ShouldBe(2);
_result[0].DownstreamReRoute[0].EnableEndpointEndpointRateLimiting.ShouldBeFalse(); _result[0].DownstreamReRoute[0].EnableEndpointEndpointRateLimiting.ShouldBeFalse();
_result[0].DownstreamReRoute[0].RateLimitOptions.ShouldBe(_rlo1); _result[0].DownstreamReRoute[0].RateLimitOptions.ShouldBe(_rlo1);
_result[0].DownstreamReRoute[0].DownstreamHttpVersion.ShouldBe(_version);
_result[0].DownstreamReRoute[0].ServiceName.ShouldBe(_fileConfig.DynamicReRoutes[0].ServiceName); _result[0].DownstreamReRoute[0].ServiceName.ShouldBe(_fileConfig.DynamicReRoutes[0].ServiceName);
_result[1].DownstreamReRoute[0].EnableEndpointEndpointRateLimiting.ShouldBeTrue(); _result[1].DownstreamReRoute[0].EnableEndpointEndpointRateLimiting.ShouldBeTrue();
_result[1].DownstreamReRoute[0].RateLimitOptions.ShouldBe(_rlo2); _result[1].DownstreamReRoute[0].RateLimitOptions.ShouldBe(_rlo2);
_result[1].DownstreamReRoute[0].DownstreamHttpVersion.ShouldBe(_version);
_result[1].DownstreamReRoute[0].ServiceName.ShouldBe(_fileConfig.DynamicReRoutes[1].ServiceName); _result[1].DownstreamReRoute[0].ServiceName.ShouldBe(_fileConfig.DynamicReRoutes[1].ServiceName);
} }
private void GivenTheVersionCreatorReturns()
{
_version = new Version("1.1");
_versionCreator.Setup(x => x.Create(It.IsAny<string>())).Returns(_version);
}
private void GivenTheRloCreatorReturns() private void GivenTheRloCreatorReturns()
{ {
_rlo1 = new RateLimitOptionsBuilder().Build(); _rlo1 = new RateLimitOptionsBuilder().Build();

View File

@ -15,6 +15,8 @@ using Xunit;
namespace Ocelot.UnitTests.Configuration namespace Ocelot.UnitTests.Configuration
{ {
using System;
public class FileConfigurationSetterTests public class FileConfigurationSetterTests
{ {
private FileConfiguration _fileConfiguration; private FileConfiguration _fileConfiguration;
@ -38,7 +40,7 @@ namespace Ocelot.UnitTests.Configuration
{ {
var fileConfig = new FileConfiguration(); var fileConfig = new FileConfiguration();
var serviceProviderConfig = new ServiceProviderConfigurationBuilder().Build(); var serviceProviderConfig = new ServiceProviderConfigurationBuilder().Build();
var config = new InternalConfiguration(new List<ReRoute>(), string.Empty, serviceProviderConfig, "asdf", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build()); var config = new InternalConfiguration(new List<ReRoute>(), string.Empty, serviceProviderConfig, "asdf", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build(), new Version("1.1"));
this.Given(x => GivenTheFollowingConfiguration(fileConfig)) this.Given(x => GivenTheFollowingConfiguration(fileConfig))
.And(x => GivenTheRepoReturns(new OkResponse())) .And(x => GivenTheRepoReturns(new OkResponse()))

View File

@ -87,7 +87,7 @@
_reRoutes = new List<ReRoute> { new ReRouteBuilder().Build() }; _reRoutes = new List<ReRoute> { new ReRouteBuilder().Build() };
_aggregates = new List<ReRoute> { new ReRouteBuilder().Build() }; _aggregates = new List<ReRoute> { new ReRouteBuilder().Build() };
_dynamics = new List<ReRoute> { new ReRouteBuilder().Build() }; _dynamics = new List<ReRoute> { new ReRouteBuilder().Build() };
_internalConfig = new InternalConfiguration(null, "", null, "", null, "", null, null); _internalConfig = new InternalConfiguration(null, "", null, "", null, "", null, null, null);
_reRoutesCreator.Setup(x => x.Create(It.IsAny<FileConfiguration>())).Returns(_reRoutes); _reRoutesCreator.Setup(x => x.Create(It.IsAny<FileConfiguration>())).Returns(_reRoutes);
_aggregatesCreator.Setup(x => x.Create(It.IsAny<FileConfiguration>(), It.IsAny<List<ReRoute>>())).Returns(_aggregates); _aggregatesCreator.Setup(x => x.Create(It.IsAny<FileConfiguration>(), It.IsAny<List<ReRoute>>())).Returns(_aggregates);

View File

@ -120,6 +120,7 @@ namespace Ocelot.UnitTests.Configuration
public string DownstreamScheme { get; } public string DownstreamScheme { get; }
public QoSOptions QoSOptions { get; } public QoSOptions QoSOptions { get; }
public HttpHandlerOptions HttpHandlerOptions { get; } public HttpHandlerOptions HttpHandlerOptions { get; }
public Version DownstreamHttpVersion { get; }
} }
} }
} }

View File

@ -1,5 +1,6 @@
namespace Ocelot.UnitTests.DownstreamRouteFinder namespace Ocelot.UnitTests.DownstreamRouteFinder
{ {
using System;
using Moq; using Moq;
using Ocelot.Configuration; using Ocelot.Configuration;
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
@ -44,7 +45,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
[Fact] [Fact]
public void should_create_downstream_route() public void should_create_downstream_route()
{ {
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration)) this.Given(_ => GivenTheConfiguration(configuration))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -71,7 +72,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
var reRoutes = new List<ReRoute> { reRoute }; var reRoutes = new List<ReRoute> { reRoute };
var configuration = new InternalConfiguration(reRoutes, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(reRoutes, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration)) this.Given(_ => GivenTheConfiguration(configuration))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -83,7 +84,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
[Fact] [Fact]
public void should_cache_downstream_route() public void should_cache_downstream_route()
{ {
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration, "/geoffisthebest/")) this.Given(_ => GivenTheConfiguration(configuration, "/geoffisthebest/"))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -96,7 +97,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
[Fact] [Fact]
public void should_not_cache_downstream_route() public void should_not_cache_downstream_route()
{ {
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration, "/geoffistheworst/")) this.Given(_ => GivenTheConfiguration(configuration, "/geoffistheworst/"))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -110,7 +111,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
public void should_create_downstream_route_with_no_path() public void should_create_downstream_route_with_no_path()
{ {
var upstreamUrlPath = "/auth/"; var upstreamUrlPath = "/auth/";
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration, upstreamUrlPath)) this.Given(_ => GivenTheConfiguration(configuration, upstreamUrlPath))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -122,7 +123,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
public void should_create_downstream_route_with_only_first_segment_no_traling_slash() public void should_create_downstream_route_with_only_first_segment_no_traling_slash()
{ {
var upstreamUrlPath = "/auth"; var upstreamUrlPath = "/auth";
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration, upstreamUrlPath)) this.Given(_ => GivenTheConfiguration(configuration, upstreamUrlPath))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -134,7 +135,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
public void should_create_downstream_route_with_segments_no_traling_slash() public void should_create_downstream_route_with_segments_no_traling_slash()
{ {
var upstreamUrlPath = "/auth/test"; var upstreamUrlPath = "/auth/test";
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration, upstreamUrlPath)) this.Given(_ => GivenTheConfiguration(configuration, upstreamUrlPath))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -146,7 +147,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
public void should_create_downstream_route_and_remove_query_string() public void should_create_downstream_route_and_remove_query_string()
{ {
var upstreamUrlPath = "/auth/test?test=1&best=2"; var upstreamUrlPath = "/auth/test?test=1&best=2";
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration, upstreamUrlPath)) this.Given(_ => GivenTheConfiguration(configuration, upstreamUrlPath))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -158,7 +159,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
public void should_create_downstream_route_for_sticky_sessions() public void should_create_downstream_route_for_sticky_sessions()
{ {
var loadBalancerOptions = new LoadBalancerOptionsBuilder().WithType(nameof(CookieStickySessions)).WithKey("boom").WithExpiryInMs(1).Build(); var loadBalancerOptions = new LoadBalancerOptionsBuilder().WithType(nameof(CookieStickySessions)).WithKey("boom").WithExpiryInMs(1).Build();
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration)) this.Given(_ => GivenTheConfiguration(configuration))
.When(_ => WhenICreate()) .When(_ => WhenICreate())
@ -174,7 +175,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
.WithTimeoutValue(1) .WithTimeoutValue(1)
.Build(); .Build();
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration)) this.Given(_ => GivenTheConfiguration(configuration))
.And(_ => GivenTheQosCreatorReturns(qoSOptions)) .And(_ => GivenTheQosCreatorReturns(qoSOptions))
@ -186,7 +187,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
[Fact] [Fact]
public void should_create_downstream_route_with_handler_options() public void should_create_downstream_route_with_handler_options()
{ {
var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions); var configuration = new InternalConfiguration(null, "doesnt matter", null, "doesnt matter", _loadBalancerOptions, "http", _qoSOptions, _handlerOptions, new Version("1.1"));
this.Given(_ => GivenTheConfiguration(configuration)) this.Given(_ => GivenTheConfiguration(configuration))
.When(_ => WhenICreate()) .When(_ => WhenICreate())

View File

@ -1,5 +1,6 @@
namespace Ocelot.UnitTests.DownstreamRouteFinder namespace Ocelot.UnitTests.DownstreamRouteFinder
{ {
using System;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Moq; using Moq;
using Ocelot.Configuration; using Ocelot.Configuration;
@ -48,7 +49,7 @@
[Fact] [Fact]
public void should_call_scoped_data_repository_correctly() public void should_call_scoped_data_repository_correctly()
{ {
var config = new InternalConfiguration(null, null, new ServiceProviderConfigurationBuilder().Build(), "", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build()); var config = new InternalConfiguration(null, null, new ServiceProviderConfigurationBuilder().Build(), "", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build(), new Version("1.1"));
var downstreamReRoute = new DownstreamReRouteBuilder() var downstreamReRoute = new DownstreamReRouteBuilder()
.WithDownstreamPathTemplate("any old string") .WithDownstreamPathTemplate("any old string")

View File

@ -13,6 +13,8 @@ using Xunit;
namespace Ocelot.UnitTests.DownstreamRouteFinder namespace Ocelot.UnitTests.DownstreamRouteFinder
{ {
using System;
public class DownstreamRouteFinderTests public class DownstreamRouteFinderTests
{ {
private readonly IDownstreamRouteProvider _downstreamRouteFinder; private readonly IDownstreamRouteProvider _downstreamRouteFinder;
@ -739,7 +741,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
private void GivenTheConfigurationIs(List<ReRoute> reRoutesConfig, string adminPath, ServiceProviderConfiguration serviceProviderConfig) private void GivenTheConfigurationIs(List<ReRoute> reRoutesConfig, string adminPath, ServiceProviderConfiguration serviceProviderConfig)
{ {
_reRoutesConfig = reRoutesConfig; _reRoutesConfig = reRoutesConfig;
_config = new InternalConfiguration(_reRoutesConfig, adminPath, serviceProviderConfig, "", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build()); _config = new InternalConfiguration(_reRoutesConfig, adminPath, serviceProviderConfig, "", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build(), new Version("1.1"));
} }
private void GivenThereIsAnUpstreamUrlPath(string upstreamUrlPath) private void GivenThereIsAnUpstreamUrlPath(string upstreamUrlPath)

View File

@ -1,5 +1,6 @@
namespace Ocelot.UnitTests.DownstreamRouteFinder namespace Ocelot.UnitTests.DownstreamRouteFinder
{ {
using System;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Moq; using Moq;
using Ocelot.Configuration; using Ocelot.Configuration;
@ -140,12 +141,12 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
private void GivenTheReRoutes(List<ReRoute> reRoutes) private void GivenTheReRoutes(List<ReRoute> reRoutes)
{ {
_config = new InternalConfiguration(reRoutes, "", null, "", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build()); _config = new InternalConfiguration(reRoutes, "", null, "", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build(), new Version("1.1"));
} }
private void GivenTheReRoutes(List<ReRoute> reRoutes, ServiceProviderConfiguration config) private void GivenTheReRoutes(List<ReRoute> reRoutes, ServiceProviderConfiguration config)
{ {
_config = new InternalConfiguration(reRoutes, "", config, "", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build()); _config = new InternalConfiguration(reRoutes, "", config, "", new LoadBalancerOptionsBuilder().Build(), "", new QoSOptionsBuilder().Build(), new HttpHandlerOptionsBuilder().Build(), new Version("1.1"));
} }
} }
} }

View File

@ -382,7 +382,7 @@
private void GivenTheServiceProviderConfigIs(ServiceProviderConfiguration config) private void GivenTheServiceProviderConfigIs(ServiceProviderConfiguration config)
{ {
var configuration = new InternalConfiguration(null, null, config, null, null, null, null, null); var configuration = new InternalConfiguration(null, null, config, null, null, null, null, null, null);
_downstreamContext.Configuration = configuration; _downstreamContext.Configuration = configuration;
} }

View File

@ -52,7 +52,7 @@ namespace Ocelot.UnitTests.Errors
[Fact] [Fact]
public void NoDownstreamException() public void NoDownstreamException()
{ {
var config = new InternalConfiguration(null, null, null, null, null, null, null, null); var config = new InternalConfiguration(null, null, null, null, null, null, null, null, null);
this.Given(_ => GivenAnExceptionWillNotBeThrownDownstream()) this.Given(_ => GivenAnExceptionWillNotBeThrownDownstream())
.And(_ => GivenTheConfigurationIs(config)) .And(_ => GivenTheConfigurationIs(config))
@ -65,7 +65,7 @@ namespace Ocelot.UnitTests.Errors
[Fact] [Fact]
public void DownstreamException() public void DownstreamException()
{ {
var config = new InternalConfiguration(null, null, null, null, null, null, null, null); var config = new InternalConfiguration(null, null, null, null, null, null, null, null, null);
this.Given(_ => GivenAnExceptionWillBeThrownDownstream()) this.Given(_ => GivenAnExceptionWillBeThrownDownstream())
.And(_ => GivenTheConfigurationIs(config)) .And(_ => GivenTheConfigurationIs(config))
@ -77,7 +77,7 @@ namespace Ocelot.UnitTests.Errors
[Fact] [Fact]
public void ShouldSetRequestId() public void ShouldSetRequestId()
{ {
var config = new InternalConfiguration(null, null, null, "requestidkey", null, null, null, null); var config = new InternalConfiguration(null, null, null, "requestidkey", null, null, null, null, null);
this.Given(_ => GivenAnExceptionWillNotBeThrownDownstream()) this.Given(_ => GivenAnExceptionWillNotBeThrownDownstream())
.And(_ => GivenTheConfigurationIs(config)) .And(_ => GivenTheConfigurationIs(config))
@ -90,7 +90,7 @@ namespace Ocelot.UnitTests.Errors
[Fact] [Fact]
public void ShouldSetAspDotNetRequestId() public void ShouldSetAspDotNetRequestId()
{ {
var config = new InternalConfiguration(null, null, null, null, null, null, null, null); var config = new InternalConfiguration(null, null, null, null, null, null, null, null, null);
this.Given(_ => GivenAnExceptionWillNotBeThrownDownstream()) this.Given(_ => GivenAnExceptionWillNotBeThrownDownstream())
.And(_ => GivenTheConfigurationIs(config)) .And(_ => GivenTheConfigurationIs(config))

View File

@ -20,7 +20,7 @@
{ {
var configRepo = new Mock<IInternalConfigurationRepository>(); var configRepo = new Mock<IInternalConfigurationRepository>();
configRepo.Setup(x => x.Get()) configRepo.Setup(x => x.Get())
.Returns(new OkResponse<IInternalConfiguration>(new InternalConfiguration(null, null, null, null, null, null, null, null))); .Returns(new OkResponse<IInternalConfiguration>(new InternalConfiguration(null, null, null, null, null, null, null, null, null)));
var services = new ServiceCollection(); var services = new ServiceCollection();
services.AddSingleton<IInternalConfigurationRepository>(configRepo.Object); services.AddSingleton<IInternalConfigurationRepository>(configRepo.Object);
var sp = services.BuildServiceProvider(); var sp = services.BuildServiceProvider();
@ -35,7 +35,7 @@
var client = new Mock<IDiscoveryClient>(); var client = new Mock<IDiscoveryClient>();
var configRepo = new Mock<IInternalConfigurationRepository>(); var configRepo = new Mock<IInternalConfigurationRepository>();
configRepo.Setup(x => x.Get()) configRepo.Setup(x => x.Get())
.Returns(new OkResponse<IInternalConfiguration>(new InternalConfiguration(null, null, serviceProviderConfig, null, null, null, null, null))); .Returns(new OkResponse<IInternalConfiguration>(new InternalConfiguration(null, null, serviceProviderConfig, null, null, null, null, null, null)));
var services = new ServiceCollection(); var services = new ServiceCollection();
services.AddSingleton<IInternalConfigurationRepository>(configRepo.Object); services.AddSingleton<IInternalConfigurationRepository>(configRepo.Object);
services.AddSingleton<IDiscoveryClient>(client.Object); services.AddSingleton<IDiscoveryClient>(client.Object);

View File

@ -139,7 +139,7 @@ namespace Ocelot.UnitTests.LoadBalancer
private void GivenTheConfigurationIs(ServiceProviderConfiguration config) private void GivenTheConfigurationIs(ServiceProviderConfiguration config)
{ {
_config = config; _config = config;
var configuration = new InternalConfiguration(null, null, config, null, null, null, null, null); var configuration = new InternalConfiguration(null, null, config, null, null, null, null, null, null);
_downstreamContext.Configuration = configuration; _downstreamContext.Configuration = configuration;
} }