mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 20:30:50 +08:00 
			
		
		
		
	all acceptance tests passing
This commit is contained in:
		@@ -19,6 +19,7 @@ namespace Ocelot.UnitTests.Configuration
 | 
			
		||||
        private readonly Mock<IQoSOptionsCreator> _qosCreator;
 | 
			
		||||
        private readonly Mock<IHttpHandlerOptionsCreator> _hhoCreator;
 | 
			
		||||
        private readonly Mock<ILoadBalancerOptionsCreator> _lboCreator;
 | 
			
		||||
        private readonly Mock<IVersionCreator> _vCreator;
 | 
			
		||||
        private FileConfiguration _fileConfig;
 | 
			
		||||
        private List<ReRoute> _reRoutes;
 | 
			
		||||
        private ServiceProviderConfiguration _spc;
 | 
			
		||||
@@ -30,6 +31,7 @@ namespace Ocelot.UnitTests.Configuration
 | 
			
		||||
 | 
			
		||||
        public ConfigurationCreatorTests()
 | 
			
		||||
        {
 | 
			
		||||
            _vCreator = new Mock<IVersionCreator>();
 | 
			
		||||
            _lboCreator = new Mock<ILoadBalancerOptionsCreator>();
 | 
			
		||||
            _hhoCreator = new Mock<IHttpHandlerOptionsCreator>();
 | 
			
		||||
            _qosCreator = new Mock<IQoSOptionsCreator>();
 | 
			
		||||
@@ -117,7 +119,7 @@ namespace Ocelot.UnitTests.Configuration
 | 
			
		||||
        private void WhenICreate()
 | 
			
		||||
        {
 | 
			
		||||
            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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
namespace Ocelot.UnitTests.Configuration
 | 
			
		||||
{
 | 
			
		||||
    using System;
 | 
			
		||||
    using Moq;
 | 
			
		||||
    using Ocelot.Configuration;
 | 
			
		||||
    using Ocelot.Configuration.Builder;
 | 
			
		||||
@@ -14,15 +15,18 @@
 | 
			
		||||
    {
 | 
			
		||||
        private readonly DynamicsCreator _creator;
 | 
			
		||||
        private readonly Mock<IRateLimitOptionsCreator> _rloCreator;
 | 
			
		||||
        private readonly Mock<IVersionCreator> _versionCreator;
 | 
			
		||||
        private List<ReRoute> _result;
 | 
			
		||||
        private FileConfiguration _fileConfig;
 | 
			
		||||
        private RateLimitOptions _rlo1;
 | 
			
		||||
        private RateLimitOptions _rlo2;
 | 
			
		||||
        private Version _version;
 | 
			
		||||
 | 
			
		||||
        public DynamicsCreatorTests()
 | 
			
		||||
        {
 | 
			
		||||
            _versionCreator = new Mock<IVersionCreator>();
 | 
			
		||||
            _rloCreator = new Mock<IRateLimitOptionsCreator>();
 | 
			
		||||
            _creator = new DynamicsCreator(_rloCreator.Object);
 | 
			
		||||
            _creator = new DynamicsCreator(_rloCreator.Object, _versionCreator.Object);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Fact]
 | 
			
		||||
@@ -50,7 +54,8 @@
 | 
			
		||||
                        RateLimitRule = new FileRateLimitRule
 | 
			
		||||
                        {
 | 
			
		||||
                            EnableRateLimiting = false
 | 
			
		||||
                        }
 | 
			
		||||
                        },
 | 
			
		||||
                        DownstreamHttpVersion = "1.1"
 | 
			
		||||
                    },
 | 
			
		||||
                    new FileDynamicReRoute
 | 
			
		||||
                    {
 | 
			
		||||
@@ -58,16 +63,19 @@
 | 
			
		||||
                        RateLimitRule = new FileRateLimitRule
 | 
			
		||||
                        {
 | 
			
		||||
                            EnableRateLimiting = true
 | 
			
		||||
                        }
 | 
			
		||||
                        },
 | 
			
		||||
                        DownstreamHttpVersion = "2.0"
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            this.Given(_ => GivenThe(fileConfig))
 | 
			
		||||
                .And(_ => GivenTheRloCreatorReturns())
 | 
			
		||||
                .And(_ => GivenTheVersionCreatorReturns())
 | 
			
		||||
                .When(_ => WhenICreate())
 | 
			
		||||
                .Then(_ => ThenTheReRoutesAreReturned())
 | 
			
		||||
                .And(_ => ThenTheRloCreatorIsCalledCorrectly())
 | 
			
		||||
                .And(_ => ThenTheVersionCreatorIsCalledCorrectly())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -80,18 +88,32 @@
 | 
			
		||||
                _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()
 | 
			
		||||
        {
 | 
			
		||||
            _result.Count.ShouldBe(2);
 | 
			
		||||
            _result[0].DownstreamReRoute[0].EnableEndpointEndpointRateLimiting.ShouldBeFalse();
 | 
			
		||||
            _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[1].DownstreamReRoute[0].EnableEndpointEndpointRateLimiting.ShouldBeTrue();
 | 
			
		||||
            _result[1].DownstreamReRoute[0].RateLimitOptions.ShouldBe(_rlo2);
 | 
			
		||||
            _result[1].DownstreamReRoute[0].DownstreamHttpVersion.ShouldBe(_version);
 | 
			
		||||
            _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()
 | 
			
		||||
        {
 | 
			
		||||
            _rlo1 = new RateLimitOptionsBuilder().Build();
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,8 @@ using Xunit;
 | 
			
		||||
 | 
			
		||||
namespace Ocelot.UnitTests.Configuration
 | 
			
		||||
{
 | 
			
		||||
    using System;
 | 
			
		||||
 | 
			
		||||
    public class FileConfigurationSetterTests
 | 
			
		||||
    {
 | 
			
		||||
        private FileConfiguration _fileConfiguration;
 | 
			
		||||
@@ -38,7 +40,7 @@ namespace Ocelot.UnitTests.Configuration
 | 
			
		||||
        {
 | 
			
		||||
            var fileConfig = new FileConfiguration();
 | 
			
		||||
            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))
 | 
			
		||||
                .And(x => GivenTheRepoReturns(new OkResponse()))
 | 
			
		||||
 
 | 
			
		||||
@@ -87,7 +87,7 @@
 | 
			
		||||
            _reRoutes = new List<ReRoute> { new ReRouteBuilder().Build() };
 | 
			
		||||
            _aggregates = 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);
 | 
			
		||||
            _aggregatesCreator.Setup(x => x.Create(It.IsAny<FileConfiguration>(), It.IsAny<List<ReRoute>>())).Returns(_aggregates);
 | 
			
		||||
 
 | 
			
		||||
@@ -120,6 +120,7 @@ namespace Ocelot.UnitTests.Configuration
 | 
			
		||||
            public string DownstreamScheme { get; }
 | 
			
		||||
            public QoSOptions QoSOptions { get; }
 | 
			
		||||
            public HttpHandlerOptions HttpHandlerOptions { get; }
 | 
			
		||||
            public Version DownstreamHttpVersion { get; }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user