mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 09:55:28 +08:00 
			
		
		
		
	Feature/websockets (#273)
* #212 - hacked websockets proxy together * faffing around * #212 hacking away :( * #212 websockets proxy middleware working * #212 map when for webockets working * #212 some test refactor * #212 temp commit * #212 websockets proxy working, tests passing...need to do some tidying and write docs * #212 more code coverage * #212 docs for websockets * #212 updated readme * #212 tidying up after websockets refactoring * #212 tidying up after websockets refactoring * #212 tidying up after websockets refactoring * stuck a warning in about logging levels into docs!
This commit is contained in:
		@@ -12,24 +12,27 @@ using TestStack.BDDfy;
 | 
			
		||||
using Xunit;
 | 
			
		||||
using System.Net.Http;
 | 
			
		||||
using System;
 | 
			
		||||
using Ocelot.Request.Middleware;
 | 
			
		||||
 | 
			
		||||
namespace Ocelot.UnitTests.QueryStrings
 | 
			
		||||
{
 | 
			
		||||
    public class AddQueriesToRequestTests
 | 
			
		||||
    {
 | 
			
		||||
        private readonly AddQueriesToRequest _addQueriesToRequest;
 | 
			
		||||
        private HttpRequestMessage _downstreamRequest;
 | 
			
		||||
        private DownstreamRequest _downstreamRequest;
 | 
			
		||||
        private readonly Mock<IClaimsParser> _parser;
 | 
			
		||||
        private List<ClaimToThing> _configuration;
 | 
			
		||||
        private List<Claim> _claims;
 | 
			
		||||
        private Response _result;
 | 
			
		||||
        private Response<string> _claimValue;
 | 
			
		||||
        private HttpRequestMessage _request;
 | 
			
		||||
 | 
			
		||||
        public AddQueriesToRequestTests()
 | 
			
		||||
        {
 | 
			
		||||
            _request = new HttpRequestMessage(HttpMethod.Post, "http://my.url/abc?q=123");
 | 
			
		||||
            _parser = new Mock<IClaimsParser>();
 | 
			
		||||
            _addQueriesToRequest = new AddQueriesToRequest(_parser.Object);
 | 
			
		||||
            _downstreamRequest = new HttpRequestMessage(HttpMethod.Post, "http://my.url/abc?q=123");
 | 
			
		||||
            _downstreamRequest = new DownstreamRequest(_request);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Fact]
 | 
			
		||||
@@ -78,7 +81,7 @@ namespace Ocelot.UnitTests.QueryStrings
 | 
			
		||||
 | 
			
		||||
        private void TheTheQueryStringIs(string expected)
 | 
			
		||||
        {
 | 
			
		||||
            _downstreamRequest.RequestUri.Query.ShouldBe(expected);
 | 
			
		||||
            _downstreamRequest.Query.ShouldBe(expected);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Fact]
 | 
			
		||||
@@ -123,7 +126,7 @@ namespace Ocelot.UnitTests.QueryStrings
 | 
			
		||||
 | 
			
		||||
        private void ThenTheQueryIsAdded()
 | 
			
		||||
        {
 | 
			
		||||
            var queries = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(_downstreamRequest.RequestUri.OriginalString);
 | 
			
		||||
            var queries = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(_downstreamRequest.ToHttpRequestMessage().RequestUri.OriginalString);
 | 
			
		||||
            var query = queries.First(x => x.Key == "query-key");
 | 
			
		||||
            query.Value.First().ShouldBe(_claimValue.Data);
 | 
			
		||||
        }
 | 
			
		||||
@@ -140,15 +143,18 @@ namespace Ocelot.UnitTests.QueryStrings
 | 
			
		||||
 | 
			
		||||
        private void GivenTheDownstreamRequestHasQueryString(string queryString)
 | 
			
		||||
        {
 | 
			
		||||
            _downstreamRequest = new HttpRequestMessage(HttpMethod.Post, $"http://my.url/abc{queryString}");
 | 
			
		||||
            _request = new HttpRequestMessage(HttpMethod.Post, $"http://my.url/abc{queryString}");
 | 
			
		||||
            _downstreamRequest = new DownstreamRequest(_request);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void GivenTheDownstreamRequestHasQueryString(string key, string value)
 | 
			
		||||
        {
 | 
			
		||||
            var newUri = Microsoft.AspNetCore.WebUtilities.QueryHelpers
 | 
			
		||||
                .AddQueryString(_downstreamRequest.RequestUri.OriginalString, key, value);
 | 
			
		||||
                .AddQueryString(_downstreamRequest.ToHttpRequestMessage().RequestUri.OriginalString, key, value);
 | 
			
		||||
 | 
			
		||||
            _downstreamRequest.RequestUri = new Uri(newUri);
 | 
			
		||||
            _request.RequestUri = new Uri(newUri);
 | 
			
		||||
            //todo - might not need to instanciate
 | 
			
		||||
            _downstreamRequest = new DownstreamRequest(_request);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void GivenTheClaimParserReturns(Response<string> claimValue)
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ namespace Ocelot.UnitTests.QueryStrings
 | 
			
		||||
    using System.Security.Claims;
 | 
			
		||||
    using Microsoft.AspNetCore.Http;
 | 
			
		||||
    using System.Threading.Tasks;
 | 
			
		||||
    using Ocelot.Request.Middleware;
 | 
			
		||||
 | 
			
		||||
    public class QueryStringBuilderMiddlewareTests
 | 
			
		||||
    {
 | 
			
		||||
@@ -36,7 +37,7 @@ namespace Ocelot.UnitTests.QueryStrings
 | 
			
		||||
            _loggerFactory.Setup(x => x.CreateLogger<QueryStringBuilderMiddleware>()).Returns(_logger.Object);
 | 
			
		||||
            _next = context => Task.CompletedTask;
 | 
			
		||||
            _addQueries = new Mock<IAddQueriesToRequest>();
 | 
			
		||||
            _downstreamContext.DownstreamRequest = new HttpRequestMessage();
 | 
			
		||||
            _downstreamContext.DownstreamRequest = new DownstreamRequest(new HttpRequestMessage(HttpMethod.Get, "http://test.com"));
 | 
			
		||||
            _middleware = new QueryStringBuilderMiddleware(_next, _loggerFactory.Object, _addQueries.Object);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -74,7 +75,7 @@ namespace Ocelot.UnitTests.QueryStrings
 | 
			
		||||
                .Setup(x => x.SetQueriesOnDownstreamRequest(
 | 
			
		||||
                    It.IsAny<List<ClaimToThing>>(),
 | 
			
		||||
                    It.IsAny<IEnumerable<Claim>>(),
 | 
			
		||||
                    It.IsAny<HttpRequestMessage>()))
 | 
			
		||||
                    It.IsAny<DownstreamRequest>()))
 | 
			
		||||
                .Returns(new OkResponse());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user