mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 20:30:50 +08:00 
			
		
		
		
	* Make rate-limiting client whitelist dynamic * Refactor `RateLimitOptions.ClientWhiteList` * Fix typo in variable `enbleRateLimiting` * Fix case in variable `clientIdheader` author Taiwo Otubamowo <totubamowo@deloitte.co.uk> * fix 1045 * #492 log 500 with error log level, acceptance test, unit test * #492 minor changes * initial commit for new feature #1077 allow to limit the number of concurrent tcp connection to a downstream service * protect code against value not in accurate range add unit test * Do not crash host on Dispose * Add test * Pin GitVersion.CommandLine package version * #683 validate if there are duplicated placeholders in UpstreamPathTemplate * Use registered scheme from Eureka (#1087) * extra test * very brief mention MaxConnectionsPerServer in docs * build develop like a PR * more docs * test Co-authored-by: Taiwo O. <44668623+totubamowo@users.noreply.github.com> Co-authored-by: Catcher Wong <catcher_hwq@outlook.com> Co-authored-by: jlukawska <56401969+jlukawska@users.noreply.github.com> Co-authored-by: buretjph <58700930+buretjph@users.noreply.github.com> Co-authored-by: Jonathan Mezach <jonathanmezach@gmail.com> Co-authored-by: 彭伟 <pengweiqhca@sina.com>
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
namespace Ocelot.AcceptanceTests
 | 
						|
{
 | 
						|
    using Ocelot.Configuration.File;
 | 
						|
    using System;
 | 
						|
    using System.Collections.Generic;
 | 
						|
    using System.Net;
 | 
						|
    using TestStack.BDDfy;
 | 
						|
    using Xunit;
 | 
						|
 | 
						|
    public class ResponseCodeTests : IDisposable
 | 
						|
    {
 | 
						|
        private readonly Steps _steps;
 | 
						|
        private readonly ServiceHandler _serviceHandler;
 | 
						|
 | 
						|
        public ResponseCodeTests()
 | 
						|
        {
 | 
						|
            _serviceHandler = new ServiceHandler();
 | 
						|
            _steps = new Steps();
 | 
						|
        }
 | 
						|
 | 
						|
        [Fact]
 | 
						|
        public void should_return_response_304_when_service_returns_304()
 | 
						|
        {
 | 
						|
            var configuration = new FileConfiguration
 | 
						|
            {
 | 
						|
                ReRoutes = new List<FileReRoute>
 | 
						|
                    {
 | 
						|
                        new FileReRoute
 | 
						|
                        {
 | 
						|
                            DownstreamPathTemplate = "/{everything}",
 | 
						|
                            DownstreamScheme = "http",
 | 
						|
                            DownstreamHostAndPorts = new List<FileHostAndPort>
 | 
						|
                            {
 | 
						|
                                new FileHostAndPort
 | 
						|
                                {
 | 
						|
                                    Host = "localhost",
 | 
						|
                                    Port = 51092,
 | 
						|
                                }
 | 
						|
                            },
 | 
						|
                            UpstreamPathTemplate = "/{everything}",
 | 
						|
                            UpstreamHttpMethod = new List<string> { "Get" },
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
            };
 | 
						|
 | 
						|
            this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51092", "/inline.132.bundle.js", 304))
 | 
						|
                .And(x => _steps.GivenThereIsAConfiguration(configuration))
 | 
						|
                .And(x => _steps.GivenOcelotIsRunning())
 | 
						|
                .When(x => _steps.WhenIGetUrlOnTheApiGateway("/inline.132.bundle.js"))
 | 
						|
                .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.NotModified))
 | 
						|
                .BDDfy();
 | 
						|
        }
 | 
						|
 | 
						|
        private void GivenThereIsAServiceRunningOn(string baseUrl, string basePath, int statusCode)
 | 
						|
        {
 | 
						|
            _serviceHandler.GivenThereIsAServiceRunningOn(baseUrl, basePath, async context =>
 | 
						|
            {
 | 
						|
                context.Response.StatusCode = statusCode;
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        public void Dispose()
 | 
						|
        {
 | 
						|
            _serviceHandler?.Dispose();
 | 
						|
            _steps.Dispose();
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |