mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-06-19 18:08:16 +08:00
all acceptance tests passing
This commit is contained in:
@ -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();
|
||||
|
Reference in New Issue
Block a user