Moved ScopedRepository into test base class.

This commit is contained in:
Philip Wood 2017-07-18 10:53:57 +01:00
parent c70a90f415
commit d02e921a58
14 changed files with 91 additions and 129 deletions

View File

@ -11,7 +11,6 @@
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
using Ocelot.DownstreamRouteFinder; using Ocelot.DownstreamRouteFinder;
using Ocelot.DownstreamRouteFinder.UrlMatcher; using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.Responses; using Ocelot.Responses;
using Shouldly; using Shouldly;
@ -20,13 +19,11 @@
public class AuthenticationMiddlewareTests : ServerHostedMiddlewareTest public class AuthenticationMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly Mock<IAuthenticationHandlerFactory> _authFactory; private readonly Mock<IAuthenticationHandlerFactory> _authFactory;
private OkResponse<DownstreamRoute> _downstreamRoute; private OkResponse<DownstreamRoute> _downstreamRoute;
public AuthenticationMiddlewareTests() public AuthenticationMiddlewareTests()
{ {
_scopedRepository = new Mock<IRequestScopedDataRepository>();
_authFactory = new Mock<IAuthenticationHandlerFactory>(); _authFactory = new Mock<IAuthenticationHandlerFactory>();
GivenTheTestServerIsConfigured(); GivenTheTestServerIsConfigured();
@ -49,7 +46,7 @@
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_authFactory.Object); services.AddSingleton(_authFactory.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -71,7 +68,7 @@
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }

View File

@ -10,7 +10,6 @@
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
using Ocelot.DownstreamRouteFinder; using Ocelot.DownstreamRouteFinder;
using Ocelot.DownstreamRouteFinder.UrlMatcher; using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.Responses; using Ocelot.Responses;
using TestStack.BDDfy; using TestStack.BDDfy;
@ -18,14 +17,12 @@
public class AuthorisationMiddlewareTests : ServerHostedMiddlewareTest public class AuthorisationMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly Mock<IClaimsAuthoriser> _authService; private readonly Mock<IClaimsAuthoriser> _authService;
private readonly Mock<IScopesAuthoriser> _authScopesService; private readonly Mock<IScopesAuthoriser> _authScopesService;
private OkResponse<DownstreamRoute> _downstreamRoute; private OkResponse<DownstreamRoute> _downstreamRoute;
public AuthorisationMiddlewareTests() public AuthorisationMiddlewareTests()
{ {
_scopedRepository = new Mock<IRequestScopedDataRepository>();
_authService = new Mock<IClaimsAuthoriser>(); _authService = new Mock<IClaimsAuthoriser>();
_authScopesService = new Mock<IScopesAuthoriser>(); _authScopesService = new Mock<IScopesAuthoriser>();
@ -52,7 +49,7 @@
services.AddLogging(); services.AddLogging();
services.AddSingleton(_authService.Object); services.AddSingleton(_authService.Object);
services.AddSingleton(_authScopesService.Object); services.AddSingleton(_authScopesService.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -63,7 +60,7 @@
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }

View File

@ -12,7 +12,6 @@
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
using Ocelot.DownstreamRouteFinder; using Ocelot.DownstreamRouteFinder;
using Ocelot.DownstreamRouteFinder.UrlMatcher; using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.Responses; using Ocelot.Responses;
using TestStack.BDDfy; using TestStack.BDDfy;
@ -21,15 +20,13 @@
public class OutputCacheMiddlewareTests : ServerHostedMiddlewareTest public class OutputCacheMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IOcelotCache<HttpResponseMessage>> _cacheManager; private readonly Mock<IOcelotCache<HttpResponseMessage>> _cacheManager;
private readonly Mock<IRequestScopedDataRepository> _scopedRepo;
private HttpResponseMessage _response; private HttpResponseMessage _response;
public OutputCacheMiddlewareTests() public OutputCacheMiddlewareTests()
{ {
_cacheManager = new Mock<IOcelotCache<HttpResponseMessage>>(); _cacheManager = new Mock<IOcelotCache<HttpResponseMessage>>();
_scopedRepo = new Mock<IRequestScopedDataRepository>();
_scopedRepo ScopedRepository
.Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest")) .Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest"))
.Returns(new OkResponse<HttpRequestMessage>(new HttpRequestMessage(HttpMethod.Get, "https://some.url/blah?abcd=123"))); .Returns(new OkResponse<HttpRequestMessage>(new HttpRequestMessage(HttpMethod.Get, "https://some.url/blah?abcd=123")));
@ -64,7 +61,7 @@
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_cacheManager.Object); services.AddSingleton(_cacheManager.Object);
services.AddSingleton(_scopedRepo.Object); services.AddSingleton(ScopedRepository.Object);
services.AddSingleton<IRegionCreator, RegionCreator>(); services.AddSingleton<IRegionCreator, RegionCreator>();
} }
@ -83,7 +80,7 @@
private void GivenResponseIsNotCached() private void GivenResponseIsNotCached()
{ {
_scopedRepo ScopedRepository
.Setup(x => x.Get<HttpResponseMessage>("HttpResponseMessage")) .Setup(x => x.Get<HttpResponseMessage>("HttpResponseMessage"))
.Returns(new OkResponse<HttpResponseMessage>(new HttpResponseMessage())); .Returns(new OkResponse<HttpResponseMessage>(new HttpResponseMessage()));
} }
@ -98,21 +95,21 @@
var downstreamRoute = new DownstreamRoute(new List<UrlPathPlaceholderNameAndValue>(), reRoute); var downstreamRoute = new DownstreamRoute(new List<UrlPathPlaceholderNameAndValue>(), reRoute);
_scopedRepo ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(new OkResponse<DownstreamRoute>(downstreamRoute)); .Returns(new OkResponse<DownstreamRoute>(downstreamRoute));
} }
private void GivenThereAreNoErrors() private void GivenThereAreNoErrors()
{ {
_scopedRepo ScopedRepository
.Setup(x => x.Get<bool>("OcelotMiddlewareError")) .Setup(x => x.Get<bool>("OcelotMiddlewareError"))
.Returns(new OkResponse<bool>(false)); .Returns(new OkResponse<bool>(false));
} }
private void GivenThereIsADownstreamUrl() private void GivenThereIsADownstreamUrl()
{ {
_scopedRepo ScopedRepository
.Setup(x => x.Get<string>("DownstreamUrl")) .Setup(x => x.Get<string>("DownstreamUrl"))
.Returns(new OkResponse<string>("anything")); .Returns(new OkResponse<string>("anything"));
} }

View File

@ -11,7 +11,6 @@
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
using Ocelot.DownstreamRouteFinder; using Ocelot.DownstreamRouteFinder;
using Ocelot.DownstreamRouteFinder.UrlMatcher; using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.Responses; using Ocelot.Responses;
using TestStack.BDDfy; using TestStack.BDDfy;
@ -19,13 +18,11 @@
public class ClaimsBuilderMiddlewareTests : ServerHostedMiddlewareTest public class ClaimsBuilderMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly Mock<IAddClaimsToRequest> _addHeaders; private readonly Mock<IAddClaimsToRequest> _addHeaders;
private Response<DownstreamRoute> _downstreamRoute; private Response<DownstreamRoute> _downstreamRoute;
public ClaimsBuilderMiddlewareTests() public ClaimsBuilderMiddlewareTests()
{ {
_scopedRepository = new Mock<IRequestScopedDataRepository>();
_addHeaders = new Mock<IAddClaimsToRequest>(); _addHeaders = new Mock<IAddClaimsToRequest>();
GivenTheTestServerIsConfigured(); GivenTheTestServerIsConfigured();
@ -56,7 +53,7 @@
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_addHeaders.Object); services.AddSingleton(_addHeaders.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -67,7 +64,7 @@
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }

View File

@ -9,7 +9,6 @@
using Ocelot.DownstreamRouteFinder.Finder; using Ocelot.DownstreamRouteFinder.Finder;
using Ocelot.DownstreamRouteFinder.Middleware; using Ocelot.DownstreamRouteFinder.Middleware;
using Ocelot.DownstreamRouteFinder.UrlMatcher; using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.Responses; using Ocelot.Responses;
using TestStack.BDDfy; using TestStack.BDDfy;
@ -18,13 +17,11 @@
public class DownstreamRouteFinderMiddlewareTests : ServerHostedMiddlewareTest public class DownstreamRouteFinderMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IDownstreamRouteFinder> _downstreamRouteFinder; private readonly Mock<IDownstreamRouteFinder> _downstreamRouteFinder;
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private Response<DownstreamRoute> _downstreamRoute; private Response<DownstreamRoute> _downstreamRoute;
public DownstreamRouteFinderMiddlewareTests() public DownstreamRouteFinderMiddlewareTests()
{ {
_downstreamRouteFinder = new Mock<IDownstreamRouteFinder>(); _downstreamRouteFinder = new Mock<IDownstreamRouteFinder>();
_scopedRepository = new Mock<IRequestScopedDataRepository>();
GivenTheTestServerIsConfigured(); GivenTheTestServerIsConfigured();
} }
@ -49,7 +46,7 @@
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_downstreamRouteFinder.Object); services.AddSingleton(_downstreamRouteFinder.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -67,7 +64,7 @@
private void ThenTheScopedDataRepositoryIsCalledCorrectly() private void ThenTheScopedDataRepositoryIsCalledCorrectly()
{ {
_scopedRepository ScopedRepository
.Verify(x => x.Add("DownstreamRoute", _downstreamRoute.Data), Times.Once()); .Verify(x => x.Add("DownstreamRoute", _downstreamRoute.Data), Times.Once());
} }
} }

View File

@ -23,7 +23,6 @@
public class DownstreamUrlCreatorMiddlewareTests : ServerHostedMiddlewareTest public class DownstreamUrlCreatorMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IDownstreamPathPlaceholderReplacer> _downstreamUrlTemplateVariableReplacer; private readonly Mock<IDownstreamPathPlaceholderReplacer> _downstreamUrlTemplateVariableReplacer;
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly Mock<IUrlBuilder> _urlBuilder; private readonly Mock<IUrlBuilder> _urlBuilder;
private Response<DownstreamRoute> _downstreamRoute; private Response<DownstreamRoute> _downstreamRoute;
private OkResponse<DownstreamPath> _downstreamPath; private OkResponse<DownstreamPath> _downstreamPath;
@ -32,12 +31,11 @@
public DownstreamUrlCreatorMiddlewareTests() public DownstreamUrlCreatorMiddlewareTests()
{ {
_downstreamUrlTemplateVariableReplacer = new Mock<IDownstreamPathPlaceholderReplacer>(); _downstreamUrlTemplateVariableReplacer = new Mock<IDownstreamPathPlaceholderReplacer>();
_scopedRepository = new Mock<IRequestScopedDataRepository>();
_urlBuilder = new Mock<IUrlBuilder>(); _urlBuilder = new Mock<IUrlBuilder>();
_downstreamRequest = new HttpRequestMessage(HttpMethod.Get, "https://my.url/abc/?q=123"); _downstreamRequest = new HttpRequestMessage(HttpMethod.Get, "https://my.url/abc/?q=123");
_scopedRepository ScopedRepository
.Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest")) .Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest"))
.Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest)); .Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest));
@ -67,7 +65,7 @@
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_downstreamUrlTemplateVariableReplacer.Object); services.AddSingleton(_downstreamUrlTemplateVariableReplacer.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
services.AddSingleton(_urlBuilder.Object); services.AddSingleton(_urlBuilder.Object);
} }
@ -79,7 +77,7 @@
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }

View File

@ -11,7 +11,6 @@
using Ocelot.DownstreamRouteFinder.UrlMatcher; using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Headers; using Ocelot.Headers;
using Ocelot.Headers.Middleware; using Ocelot.Headers.Middleware;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.Responses; using Ocelot.Responses;
using TestStack.BDDfy; using TestStack.BDDfy;
@ -19,18 +18,16 @@
public class HttpRequestHeadersBuilderMiddlewareTests : ServerHostedMiddlewareTest public class HttpRequestHeadersBuilderMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly Mock<IAddHeadersToRequest> _addHeaders; private readonly Mock<IAddHeadersToRequest> _addHeaders;
private readonly HttpRequestMessage _downstreamRequest; private readonly HttpRequestMessage _downstreamRequest;
private Response<DownstreamRoute> _downstreamRoute; private Response<DownstreamRoute> _downstreamRoute;
public HttpRequestHeadersBuilderMiddlewareTests() public HttpRequestHeadersBuilderMiddlewareTests()
{ {
_scopedRepository = new Mock<IRequestScopedDataRepository>();
_addHeaders = new Mock<IAddHeadersToRequest>(); _addHeaders = new Mock<IAddHeadersToRequest>();
_downstreamRequest = new HttpRequestMessage(); _downstreamRequest = new HttpRequestMessage();
_scopedRepository ScopedRepository
.Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest")) .Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest"))
.Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest)); .Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest));
@ -62,7 +59,7 @@
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_addHeaders.Object); services.AddSingleton(_addHeaders.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -73,7 +70,7 @@
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }

View File

@ -8,7 +8,6 @@ namespace Ocelot.UnitTests.LoadBalancer
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
using Ocelot.DownstreamRouteFinder; using Ocelot.DownstreamRouteFinder;
using Ocelot.Errors; using Ocelot.Errors;
using Ocelot.Infrastructure.RequestData;
using Ocelot.LoadBalancer.LoadBalancers; using Ocelot.LoadBalancer.LoadBalancers;
using Ocelot.LoadBalancer.Middleware; using Ocelot.LoadBalancer.Middleware;
using Ocelot.Logging; using Ocelot.Logging;
@ -21,7 +20,6 @@ namespace Ocelot.UnitTests.LoadBalancer
public class LoadBalancerMiddlewareTests : ServerHostedMiddlewareTest public class LoadBalancerMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<ILoadBalancerHouse> _loadBalancerHouse; private readonly Mock<ILoadBalancerHouse> _loadBalancerHouse;
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly Mock<ILoadBalancer> _loadBalancer; private readonly Mock<ILoadBalancer> _loadBalancer;
private HostAndPort _hostAndPort; private HostAndPort _hostAndPort;
private OkResponse<DownstreamRoute> _downstreamRoute; private OkResponse<DownstreamRoute> _downstreamRoute;
@ -32,12 +30,12 @@ namespace Ocelot.UnitTests.LoadBalancer
public LoadBalancerMiddlewareTests() public LoadBalancerMiddlewareTests()
{ {
_loadBalancerHouse = new Mock<ILoadBalancerHouse>(); _loadBalancerHouse = new Mock<ILoadBalancerHouse>();
_scopedRepository = new Mock<IRequestScopedDataRepository>();
_loadBalancer = new Mock<ILoadBalancer>(); _loadBalancer = new Mock<ILoadBalancer>();
_loadBalancerHouse = new Mock<ILoadBalancerHouse>(); _loadBalancerHouse = new Mock<ILoadBalancerHouse>();
_downstreamRequest = new HttpRequestMessage(HttpMethod.Get, ""); _downstreamRequest = new HttpRequestMessage(HttpMethod.Get, "");
_scopedRepository
ScopedRepository
.Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest")) .Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest"))
.Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest)); .Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest));
@ -99,7 +97,7 @@ namespace Ocelot.UnitTests.LoadBalancer
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_loadBalancerHouse.Object); services.AddSingleton(_loadBalancerHouse.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -131,7 +129,7 @@ namespace Ocelot.UnitTests.LoadBalancer
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }
@ -157,28 +155,28 @@ namespace Ocelot.UnitTests.LoadBalancer
private void ThenAnErrorStatingLoadBalancerCouldNotBeFoundIsSetOnPipeline() private void ThenAnErrorStatingLoadBalancerCouldNotBeFoundIsSetOnPipeline()
{ {
_scopedRepository ScopedRepository
.Verify(x => x.Add("OcelotMiddlewareError", true), Times.Once); .Verify(x => x.Add("OcelotMiddlewareError", true), Times.Once);
_scopedRepository ScopedRepository
.Verify(x => x.Add("OcelotMiddlewareErrors", _getLoadBalancerHouseError.Errors), Times.Once); .Verify(x => x.Add("OcelotMiddlewareErrors", _getLoadBalancerHouseError.Errors), Times.Once);
} }
private void ThenAnErrorSayingReleaseFailedIsSetOnThePipeline() private void ThenAnErrorSayingReleaseFailedIsSetOnThePipeline()
{ {
_scopedRepository ScopedRepository
.Verify(x => x.Add("OcelotMiddlewareError", true), Times.Once); .Verify(x => x.Add("OcelotMiddlewareError", true), Times.Once);
_scopedRepository ScopedRepository
.Verify(x => x.Add("OcelotMiddlewareErrors", It.IsAny<List<Error>>()), Times.Once); .Verify(x => x.Add("OcelotMiddlewareErrors", It.IsAny<List<Error>>()), Times.Once);
} }
private void ThenAnErrorStatingHostAndPortCouldNotBeFoundIsSetOnPipeline() private void ThenAnErrorStatingHostAndPortCouldNotBeFoundIsSetOnPipeline()
{ {
_scopedRepository ScopedRepository
.Verify(x => x.Add("OcelotMiddlewareError", true), Times.Once); .Verify(x => x.Add("OcelotMiddlewareError", true), Times.Once);
_scopedRepository ScopedRepository
.Verify(x => x.Add("OcelotMiddlewareErrors", _getHostAndPortError.Errors), Times.Once); .Verify(x => x.Add("OcelotMiddlewareErrors", _getHostAndPortError.Errors), Times.Once);
} }

View File

@ -8,7 +8,6 @@
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
using Ocelot.DownstreamRouteFinder; using Ocelot.DownstreamRouteFinder;
using Ocelot.DownstreamRouteFinder.UrlMatcher; using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.QueryStrings; using Ocelot.QueryStrings;
using Ocelot.QueryStrings.Middleware; using Ocelot.QueryStrings.Middleware;
@ -20,18 +19,16 @@
public class QueryStringBuilderMiddlewareTests : ServerHostedMiddlewareTest public class QueryStringBuilderMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly Mock<IAddQueriesToRequest> _addQueries; private readonly Mock<IAddQueriesToRequest> _addQueries;
private readonly HttpRequestMessage _downstreamRequest; private readonly HttpRequestMessage _downstreamRequest;
private Response<DownstreamRoute> _downstreamRoute; private Response<DownstreamRoute> _downstreamRoute;
public QueryStringBuilderMiddlewareTests() public QueryStringBuilderMiddlewareTests()
{ {
_scopedRepository = new Mock<IRequestScopedDataRepository>();
_addQueries = new Mock<IAddQueriesToRequest>(); _addQueries = new Mock<IAddQueriesToRequest>();
_downstreamRequest = new HttpRequestMessage(); _downstreamRequest = new HttpRequestMessage();
_scopedRepository.Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest")) ScopedRepository.Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest"))
.Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest)); .Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest));
GivenTheTestServerIsConfigured(); GivenTheTestServerIsConfigured();
@ -62,7 +59,7 @@
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_addQueries.Object); services.AddSingleton(_addQueries.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -92,7 +89,7 @@
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }

View File

@ -1,39 +1,30 @@
using Microsoft.AspNetCore.Hosting; namespace Ocelot.UnitTests.RateLimit
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.TestHost;
using Microsoft.AspNetCore.Http;
using Moq;
using Ocelot.Infrastructure.RequestData;
using Ocelot.RateLimit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Ocelot.Logging;
using System.IO;
using Ocelot.RateLimit.Middleware;
using Ocelot.DownstreamRouteFinder;
using Ocelot.Responses;
using Xunit;
using TestStack.BDDfy;
using Ocelot.Configuration.Builder;
using Shouldly;
using Ocelot.Configuration;
namespace Ocelot.UnitTests.RateLimit
{ {
using System.Collections.Generic;
using System.Net.Http;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Moq;
using Ocelot.Configuration;
using Ocelot.Configuration.Builder;
using Ocelot.DownstreamRouteFinder;
using Ocelot.Logging;
using Ocelot.RateLimit;
using Ocelot.RateLimit.Middleware;
using Ocelot.Responses;
using Shouldly;
using TestStack.BDDfy;
using Xunit;
public class ClientRateLimitMiddlewareTests : ServerHostedMiddlewareTest public class ClientRateLimitMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private OkResponse<DownstreamRoute> _downstreamRoute; private OkResponse<DownstreamRoute> _downstreamRoute;
private int responseStatusCode; private int responseStatusCode;
public ClientRateLimitMiddlewareTests() public ClientRateLimitMiddlewareTests()
{ {
_scopedRepository = new Mock<IRequestScopedDataRepository>();
GivenTheTestServerIsConfigured(); GivenTheTestServerIsConfigured();
} }
@ -75,7 +66,7 @@ namespace Ocelot.UnitTests.RateLimit
services.AddLogging(); services.AddLogging();
services.AddMemoryCache(); services.AddMemoryCache();
services.AddSingleton<IRateLimitCounterHandler, MemoryCacheRateLimitCounterHandler>(); services.AddSingleton<IRateLimitCounterHandler, MemoryCacheRateLimitCounterHandler>();
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -91,7 +82,7 @@ namespace Ocelot.UnitTests.RateLimit
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }

View File

@ -12,7 +12,6 @@
using Ocelot.Configuration.Builder; using Ocelot.Configuration.Builder;
using Ocelot.DownstreamRouteFinder; using Ocelot.DownstreamRouteFinder;
using Ocelot.DownstreamRouteFinder.UrlMatcher; using Ocelot.DownstreamRouteFinder.UrlMatcher;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.RequestId.Middleware; using Ocelot.RequestId.Middleware;
using Ocelot.Responses; using Ocelot.Responses;
@ -22,7 +21,6 @@
public class RequestIdMiddlewareTests : ServerHostedMiddlewareTest public class RequestIdMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly HttpRequestMessage _downstreamRequest; private readonly HttpRequestMessage _downstreamRequest;
private Response<DownstreamRoute> _downstreamRoute; private Response<DownstreamRoute> _downstreamRoute;
private string _value; private string _value;
@ -32,8 +30,7 @@
{ {
_downstreamRequest = new HttpRequestMessage(); _downstreamRequest = new HttpRequestMessage();
_scopedRepository = new Mock<IRequestScopedDataRepository>(); ScopedRepository
_scopedRepository
.Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest")) .Setup(sr => sr.Get<HttpRequestMessage>("DownstreamRequest"))
.Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest)); .Returns(new OkResponse<HttpRequestMessage>(_downstreamRequest));
@ -79,7 +76,7 @@
{ {
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -96,7 +93,7 @@
private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute) private void GivenTheDownStreamRouteIs(DownstreamRoute downstreamRoute)
{ {
_downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute); _downstreamRoute = new OkResponse<DownstreamRoute>(downstreamRoute);
_scopedRepository ScopedRepository
.Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>())) .Setup(x => x.Get<DownstreamRoute>(It.IsAny<string>()))
.Returns(_downstreamRoute); .Returns(_downstreamRoute);
} }

View File

@ -4,7 +4,6 @@
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Moq; using Moq;
using Ocelot.Infrastructure.RequestData;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.Requester; using Ocelot.Requester;
using Ocelot.Requester.Middleware; using Ocelot.Requester.Middleware;
@ -16,14 +15,12 @@
public class HttpRequesterMiddlewareTests : ServerHostedMiddlewareTest public class HttpRequesterMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly Mock<IHttpRequester> _requester; private readonly Mock<IHttpRequester> _requester;
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private OkResponse<HttpResponseMessage> _response; private OkResponse<HttpResponseMessage> _response;
private OkResponse<Ocelot.Request.Request> _request; private OkResponse<Ocelot.Request.Request> _request;
public HttpRequesterMiddlewareTests() public HttpRequesterMiddlewareTests()
{ {
_requester = new Mock<IHttpRequester>(); _requester = new Mock<IHttpRequester>();
_scopedRepository = new Mock<IRequestScopedDataRepository>();
GivenTheTestServerIsConfigured(); GivenTheTestServerIsConfigured();
} }
@ -44,7 +41,7 @@
services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>(); services.AddSingleton<IOcelotLoggerFactory, AspDotNetLoggerFactory>();
services.AddLogging(); services.AddLogging();
services.AddSingleton(_requester.Object); services.AddSingleton(_requester.Object);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -55,7 +52,7 @@
private void GivenTheRequestIs(Ocelot.Request.Request request) private void GivenTheRequestIs(Ocelot.Request.Request request)
{ {
_request = new OkResponse<Ocelot.Request.Request>(request); _request = new OkResponse<Ocelot.Request.Request>(request);
_scopedRepository ScopedRepository
.Setup(x => x.Get<Ocelot.Request.Request>(It.IsAny<string>())) .Setup(x => x.Get<Ocelot.Request.Request>(It.IsAny<string>()))
.Returns(_request); .Returns(_request);
} }
@ -70,14 +67,14 @@
private void GivenTheScopedRepoReturns() private void GivenTheScopedRepoReturns()
{ {
_scopedRepository ScopedRepository
.Setup(x => x.Add(It.IsAny<string>(), _response.Data)) .Setup(x => x.Add(It.IsAny<string>(), _response.Data))
.Returns(new OkResponse()); .Returns(new OkResponse());
} }
private void ThenTheScopedRepoIsCalledCorrectly() private void ThenTheScopedRepoIsCalledCorrectly()
{ {
_scopedRepository ScopedRepository
.Verify(x => x.Add("HttpResponseMessage", _response.Data), Times.Once()); .Verify(x => x.Add("HttpResponseMessage", _response.Data), Times.Once());
} }
} }

View File

@ -1,29 +1,27 @@
using System.Net.Http; namespace Ocelot.UnitTests.Responder
{
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Moq; using Moq;
using Ocelot.Infrastructure.RequestData; using Ocelot.Errors;
using Ocelot.Headers;
using Ocelot.Logging; using Ocelot.Logging;
using Ocelot.Responder; using Ocelot.Responder;
using Ocelot.Responder.Middleware; using Ocelot.Responder.Middleware;
using Ocelot.Responses; using Ocelot.Responses;
using Shouldly;
using System.Collections.Generic;
using System.Net;
using TestStack.BDDfy; using TestStack.BDDfy;
using Xunit; using Xunit;
using Microsoft.AspNetCore.Builder;
using Shouldly;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using System.Collections.Generic;
using Ocelot.Errors;
using System.Net;
using Ocelot.Headers;
namespace Ocelot.UnitTests.Responder
{
public class ResponderMiddlewareTests : ServerHostedMiddlewareTest public class ResponderMiddlewareTests : ServerHostedMiddlewareTest
{ {
private readonly IHttpResponder _responder; private readonly IHttpResponder _responder;
private readonly Mock<IRequestScopedDataRepository> _scopedRepository;
private readonly Mock<IErrorsToHttpStatusCodeMapper> _codeMapper; private readonly Mock<IErrorsToHttpStatusCodeMapper> _codeMapper;
private readonly Mock<IRemoveOutputHeaders> _outputHeaderRemover; private readonly Mock<IRemoveOutputHeaders> _outputHeaderRemover;
private HttpStatusCode _httpStatusFromController; private HttpStatusCode _httpStatusFromController;
@ -35,10 +33,10 @@ namespace Ocelot.UnitTests.Responder
public ResponderMiddlewareTests() public ResponderMiddlewareTests()
{ {
_outputHeaderRemover = new Mock<IRemoveOutputHeaders>(); _outputHeaderRemover = new Mock<IRemoveOutputHeaders>();
_responder = new HttpContextResponder(_outputHeaderRemover.Object);
_scopedRepository = new Mock<IRequestScopedDataRepository>();
_codeMapper = new Mock<IErrorsToHttpStatusCodeMapper>(); _codeMapper = new Mock<IErrorsToHttpStatusCodeMapper>();
_responder = new HttpContextResponder(_outputHeaderRemover.Object);
GivenTheTestServerIsConfigured(); GivenTheTestServerIsConfigured();
} }
@ -71,7 +69,7 @@ namespace Ocelot.UnitTests.Responder
services.AddLogging(); services.AddLogging();
services.AddSingleton(_codeMapper.Object); services.AddSingleton(_codeMapper.Object);
services.AddSingleton(_responder); services.AddSingleton(_responder);
services.AddSingleton(_scopedRepository.Object); services.AddSingleton(ScopedRepository.Object);
} }
protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app) protected override void GivenTheTestServerPipelineIsConfigured(IApplicationBuilder app)
@ -102,11 +100,11 @@ namespace Ocelot.UnitTests.Responder
{ {
_pipelineErrors = pipelineErrors; _pipelineErrors = pipelineErrors;
_scopedRepository ScopedRepository
.Setup(x => x.Get<bool>("OcelotMiddlewareError")) .Setup(x => x.Get<bool>("OcelotMiddlewareError"))
.Returns(new OkResponse<bool>(_pipelineErrors.Count != 0)); .Returns(new OkResponse<bool>(_pipelineErrors.Count != 0));
_scopedRepository ScopedRepository
.Setup(sr => sr.Get<List<Error>>("OcelotMiddlewareErrors")) .Setup(sr => sr.Get<List<Error>>("OcelotMiddlewareErrors"))
.Returns(new OkResponse<List<Error>>(_pipelineErrors)); .Returns(new OkResponse<List<Error>>(_pipelineErrors));
} }
@ -114,7 +112,7 @@ namespace Ocelot.UnitTests.Responder
private void GivenTheIncomingHttpResponseMessageIs(HttpResponseMessage response) private void GivenTheIncomingHttpResponseMessageIs(HttpResponseMessage response)
{ {
_response = new OkResponse<HttpResponseMessage>(response); _response = new OkResponse<HttpResponseMessage>(response);
_scopedRepository ScopedRepository
.Setup(x => x.Get<HttpResponseMessage>(It.IsAny<string>())) .Setup(x => x.Get<HttpResponseMessage>(It.IsAny<string>()))
.Returns(_response); .Returns(_response);
} }

View File

@ -7,6 +7,8 @@
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Moq;
using Ocelot.Infrastructure.RequestData;
public abstract class ServerHostedMiddlewareTest : IDisposable public abstract class ServerHostedMiddlewareTest : IDisposable
{ {
@ -14,10 +16,12 @@
protected HttpClient Client { get; private set; } protected HttpClient Client { get; private set; }
protected string Url { get; private set; } protected string Url { get; private set; }
protected HttpResponseMessage ResponseMessage { get; private set; } protected HttpResponseMessage ResponseMessage { get; private set; }
protected Mock<IRequestScopedDataRepository> ScopedRepository { get; private set; }
public ServerHostedMiddlewareTest() public ServerHostedMiddlewareTest()
{ {
Url = "http://localhost:51879"; Url = "http://localhost:51879";
ScopedRepository = new Mock<IRequestScopedDataRepository>();
} }
protected virtual void GivenTheTestServerIsConfigured() protected virtual void GivenTheTestServerIsConfigured()