From 0d59b57493a83428f3f1e3d5d5bd87a9ef17ff50 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sat, 19 May 2018 09:02:31 +0200 Subject: [PATCH 1/6] Allow all headers to be set as Response headers --- src/WireMock.Net/Owin/OwinResponseMapper.cs | 74 ++++++++++++------- src/WireMock.Net/WireMock.Net.csproj | 4 - .../FluentMockServerTests.cs | 54 +++++--------- test/WireMock.Net.Tests/ResponseTests.cs | 10 ++- 4 files changed, 72 insertions(+), 70 deletions(-) diff --git a/src/WireMock.Net/Owin/OwinResponseMapper.cs b/src/WireMock.Net/Owin/OwinResponseMapper.cs index fd9a36605..b310753b8 100644 --- a/src/WireMock.Net/Owin/OwinResponseMapper.cs +++ b/src/WireMock.Net/Owin/OwinResponseMapper.cs @@ -24,48 +24,41 @@ public class OwinResponseMapper // https://msdn.microsoft.com/en-us/library/78h415ay(v=vs.110).aspx #if !NETSTANDARD - private static readonly IDictionary>> RestrictedResponseHeaders = new Dictionary>>(StringComparer.OrdinalIgnoreCase) { + private static readonly IDictionary>> ResponseHeadersToFix = new Dictionary>>(StringComparer.OrdinalIgnoreCase) { #else - private static readonly IDictionary>> RestrictedResponseHeaders = new Dictionary>>(StringComparer.OrdinalIgnoreCase) { + private static readonly IDictionary>> ResponseHeadersToFix = new Dictionary>>(StringComparer.OrdinalIgnoreCase) { #endif - { HttpKnownHeaderNames.Accept, null }, - { HttpKnownHeaderNames.Connection, null }, - { HttpKnownHeaderNames.ContentLength, null }, - { HttpKnownHeaderNames.ContentType, (r, v) => r.ContentType = v.FirstOrDefault() }, - { HttpKnownHeaderNames.Date, null }, - { HttpKnownHeaderNames.Expect, null }, - { HttpKnownHeaderNames.Host, null }, - { HttpKnownHeaderNames.IfModifiedSince, null }, - { HttpKnownHeaderNames.KeepAlive, null }, - { HttpKnownHeaderNames.Range, null }, - { HttpKnownHeaderNames.Referer, null }, - { HttpKnownHeaderNames.TransferEncoding, null }, - { HttpKnownHeaderNames.UserAgent, null }, - { HttpKnownHeaderNames.ProxyConnection, null }, - { HttpKnownHeaderNames.WWWAuthenticate, null } + //{ HttpKnownHeaderNames.Accept, null }, + //{ HttpKnownHeaderNames.Connection, null }, + //{ HttpKnownHeaderNames.ContentLength, null }, + { HttpKnownHeaderNames.ContentType, (r, v) => r.ContentType = v.FirstOrDefault() } + //{ HttpKnownHeaderNames.Date, null }, + //{ HttpKnownHeaderNames.Expect, null }, + //{ HttpKnownHeaderNames.Host, null }, + //{ HttpKnownHeaderNames.IfModifiedSince, null }, + //{ HttpKnownHeaderNames.KeepAlive, null }, + //{ HttpKnownHeaderNames.Range, null }, + //{ HttpKnownHeaderNames.Referer, null }, + //{ HttpKnownHeaderNames.TransferEncoding, null }, + //{ HttpKnownHeaderNames.UserAgent, null }, + //{ HttpKnownHeaderNames.ProxyConnection, null }, + //{ HttpKnownHeaderNames.WWWAuthenticate, null } }; - /// - /// MapAsync ResponseMessage to OwinResponse - /// - /// - /// - public async Task MapAsync(ResponseMessage responseMessage + private void SetResponseHeaders(ResponseMessage responseMessage #if !NETSTANDARD , IOwinResponse response #else , HttpResponse response #endif - ) + ) { - response.StatusCode = responseMessage.StatusCode; - // Set headers foreach (var pair in responseMessage.Headers) { - if (RestrictedResponseHeaders.ContainsKey(pair.Key)) + if (ResponseHeadersToFix.ContainsKey(pair.Key)) { - RestrictedResponseHeaders[pair.Key]?.Invoke(response, pair.Value); + ResponseHeadersToFix[pair.Key]?.Invoke(response, pair.Value); } else { @@ -76,15 +69,34 @@ public async Task MapAsync(ResponseMessage responseMessage #endif } } + } + + /// + /// MapAsync ResponseMessage to OwinResponse + /// + /// + /// + public async Task MapAsync(ResponseMessage responseMessage +#if !NETSTANDARD + , IOwinResponse response +#else + , HttpResponse response +#endif + ) + { + response.StatusCode = responseMessage.StatusCode; if (responseMessage.Body == null && responseMessage.BodyAsBytes == null && responseMessage.BodyAsFile == null && responseMessage.BodyAsJson == null) { + SetResponseHeaders(responseMessage, response); return; } if (responseMessage.BodyAsBytes != null) { await response.Body.WriteAsync(responseMessage.BodyAsBytes, 0, responseMessage.BodyAsBytes.Length); + + SetResponseHeaders(responseMessage, response); return; } @@ -93,6 +105,8 @@ public async Task MapAsync(ResponseMessage responseMessage byte[] bytes = File.ReadAllBytes(responseMessage.BodyAsFile); await response.Body.WriteAsync(bytes, 0, bytes.Length); + + SetResponseHeaders(responseMessage, response); return; } @@ -103,6 +117,8 @@ public async Task MapAsync(ResponseMessage responseMessage using (var writer = new StreamWriter(response.Body, responseMessage.BodyEncoding ?? _utf8NoBom)) { await writer.WriteAsync(jsonBody); + + SetResponseHeaders(responseMessage, response); } return; @@ -111,6 +127,8 @@ public async Task MapAsync(ResponseMessage responseMessage using (var writer = new StreamWriter(response.Body, responseMessage.BodyEncoding ?? _utf8NoBom)) { await writer.WriteAsync(responseMessage.Body); + + SetResponseHeaders(responseMessage, response); } } } diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj index 00f63d1b9..51732fb95 100644 --- a/src/WireMock.Net/WireMock.Net.csproj +++ b/src/WireMock.Net/WireMock.Net.csproj @@ -36,10 +36,6 @@ - - - - All diff --git a/test/WireMock.Net.Tests/FluentMockServerTests.cs b/test/WireMock.Net.Tests/FluentMockServerTests.cs index 8c080da81..4092c8adf 100644 --- a/test/WireMock.Net.Tests/FluentMockServerTests.cs +++ b/test/WireMock.Net.Tests/FluentMockServerTests.cs @@ -351,8 +351,11 @@ public async Task FluentMockServer_Should_respond_to_request_bodyAsBytes() Check.That(responseAsBytes).ContainsExactly(new byte[] { 48, 49 }); } - public static IEnumerable ValidMatchersForHelloServerJsonMessage => - new List + [Fact] + public async Task FluentMockServer_Should_respond_to_valid_matchers_when_sent_json() + { + // Assign + var validMatchersForHelloServerJsonMessage = new List { new object[] { new WildcardMatcher("*Hello server*"), "application/json" }, new object[] { new WildcardMatcher("*Hello server*"), "text/plain" }, @@ -364,24 +367,25 @@ public async Task FluentMockServer_Should_respond_to_request_bodyAsBytes() new object[] { new JsonPathMatcher("$..[?(@.message == 'Hello server')]"), "text/plain" } }; - [Theory] - [MemberData(nameof(ValidMatchersForHelloServerJsonMessage))] - public async Task FluentMockServer_Should_respond_to_valid_matchers_when_sent_json(IMatcher matcher, string contentType) - { - // Assign _server = FluentMockServer.Start(); - _server - .Given(Request.Create().WithPath("/foo").WithBody(matcher)) - .RespondWith(Response.Create().WithBody("Hello client")); + foreach (var item in validMatchersForHelloServerJsonMessage) + { + _server + .Given(Request.Create().WithPath("/foo").WithBody((IMatcher)item[0])) + .RespondWith(Response.Create().WithBody("Hello client")); - // Act - var content = new StringContent(jsonRequestMessage, Encoding.UTF8, contentType); - var response = await new HttpClient().PostAsync("http://localhost:" + _server.Ports[0] + "/foo", content); + // Act + var content = new StringContent(jsonRequestMessage, Encoding.UTF8, (string)item[1]); + var response = await new HttpClient().PostAsync("http://localhost:" + _server.Ports[0] + "/foo", content); - // Assert - var responseString = await response.Content.ReadAsStringAsync(); - Check.That(responseString).Equals("Hello client"); + // Assert + var responseString = await response.Content.ReadAsStringAsync(); + Check.That(responseString).Equals("Hello client"); + + _server.ResetMappings(); + _server.ResetLogEntries(); + } } [Fact] @@ -581,24 +585,6 @@ public async Task FluentMockServer_Should_respond_to_request_callback() Check.That(response).IsEqualTo("/fooBar"); } - [Fact] - public async Task FluentMockServer_Should_IgnoreRestrictedHeader() - { - // Assign - _server = FluentMockServer.Start(); - _server - .Given(Request.Create().WithPath("/head").UsingHead()) - .RespondWith(Response.Create().WithHeader("Content-Length", "1024")); - - var request = new HttpRequestMessage(HttpMethod.Head, "http://localhost:" + _server.Ports[0] + "/head"); - - // Act - var response = await new HttpClient().SendAsync(request); - - // Assert - Check.That(response.Content.Headers.GetValues("Content-Length")).ContainsExactly("0"); - } - public void Dispose() { _server?.Stop(); diff --git a/test/WireMock.Net.Tests/ResponseTests.cs b/test/WireMock.Net.Tests/ResponseTests.cs index 700ca009b..1bac85064 100644 --- a/test/WireMock.Net.Tests/ResponseTests.cs +++ b/test/WireMock.Net.Tests/ResponseTests.cs @@ -9,18 +9,20 @@ public class ResponseTests { private const string ClientIp = "::1"; - [Fact] - public async void Response_Create_WithHeader_ContentLength() + [Theory] + [InlineData("Content-Length", "1024")] + [InlineData("Transfer-Encoding", "identity")] + public async void Response_Create_WithHeader(string headerName, string headerValue) { // Assign var requestMock = new RequestMessage(new Uri("http://localhost/foo"), "PUT", ClientIp); - IResponseBuilder builder = Response.Create().WithHeader("Content-Length", "1024"); + IResponseBuilder builder = Response.Create().WithHeader(headerName, headerValue); // Act var response = await builder.ProvideResponseAsync(requestMock); // Assert - Check.That(response.Headers["Content-Length"].ToString()).Equals("1024"); + Check.That(response.Headers[headerName].ToString()).Equals(headerValue); } } } \ No newline at end of file From da46d300d72780f33ba951a874709bbb5f16c443 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sat, 19 May 2018 16:19:44 +0200 Subject: [PATCH 2/6] RunTestDifferentPort --- .../Program.cs | 28 ++++++++++++++++++- src/WireMock.Net/Owin/AspNetCoreSelfHost.cs | 2 -- src/WireMock.Net/Server/FluentMockServer.cs | 2 ++ 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/examples/WireMock.Net.Console.Proxy.NETCoreApp2/Program.cs b/examples/WireMock.Net.Console.Proxy.NETCoreApp2/Program.cs index 96c67ee12..461f66a48 100644 --- a/examples/WireMock.Net.Console.Proxy.NETCoreApp2/Program.cs +++ b/examples/WireMock.Net.Console.Proxy.NETCoreApp2/Program.cs @@ -1,4 +1,10 @@ -using Newtonsoft.Json; +using System.Linq; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Newtonsoft.Json; +using WireMock.RequestBuilders; +using WireMock.ResponseBuilders; using WireMock.Server; using WireMock.Settings; @@ -8,6 +14,9 @@ class Program { static void Main(string[] args) { + RunTestDifferentPort().Wait(20000); // prints "1" + RunTestDifferentPort().Wait(20000); // prints "1" + var server = FluentMockServer.Start(new FluentMockServerSettings { Urls = new[] { "http://localhost:9091", "https://localhost:9443" }, @@ -32,5 +41,22 @@ static void Main(string[] args) System.Console.ReadKey(); server.Stop(); } + + private static async Task RunTestDifferentPort() + { + var server = FluentMockServer.Start(); + + server.Given(Request.Create().WithPath("/").UsingGet()) + .RespondWith(Response.Create().WithStatusCode(200).WithBody("Hello")); + + Thread.Sleep(1000); + + var response = await new HttpClient().GetAsync(server.Urls[0]); + response.EnsureSuccessStatusCode(); + + System.Console.WriteLine("RunTestDifferentPort - server.LogEntries.Count() = " + server.LogEntries.Count()); + + server.Stop(); + } } } diff --git a/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs b/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs index 917d76fce..a651f230b 100644 --- a/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs +++ b/src/WireMock.Net/Owin/AspNetCoreSelfHost.cs @@ -94,8 +94,6 @@ public Task StartAsync() #endif .Build(); - IsStarted = true; - return Task.Run(() => { StartServers(); diff --git a/src/WireMock.Net/Server/FluentMockServer.cs b/src/WireMock.Net/Server/FluentMockServer.cs index cd4148242..7804a4342 100644 --- a/src/WireMock.Net/Server/FluentMockServer.cs +++ b/src/WireMock.Net/Server/FluentMockServer.cs @@ -195,11 +195,13 @@ private FluentMockServer(IFluentMockServerSettings settings) { throw new Exception($"Service start failed with error: {_httpServer.RunningException.Message}", _httpServer.RunningException); } + // Respect start timeout setting by throwing TimeoutException if (ctsStartTimeout.IsCancellationRequested) { throw new TimeoutException($"Service start timed out after {TimeSpan.FromMilliseconds(settings.StartTimeout)}"); } + ctsStartTimeout.Token.WaitHandle.WaitOne(ServerStartDelay); } } From c82e0377ba522a1f9e1386febc8a5857664fd48a Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sun, 20 May 2018 11:37:17 +0200 Subject: [PATCH 3/6] Fix Proxy_Should_change_absolute_location_header_in_proxied_response test --- .../FluentMockServerTests.Proxy.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs b/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs index e031d3887..1bd2398fa 100644 --- a/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs +++ b/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs @@ -3,6 +3,7 @@ using System.Net; using System.Net.Http; using System.Net.Http.Headers; +using System.Threading; using System.Threading.Tasks; using NFluent; using WireMock.Matchers.Request; @@ -190,7 +191,7 @@ public async Task FluentMockServer_Proxy_Should_preserve_content_header_in_proxi [Fact] public async Task FluentMockServer_Proxy_Should_change_absolute_location_header_in_proxied_response() { - // given + // Assign _serverForProxyForwarding = FluentMockServer.Start(); _serverForProxyForwarding .Given(Request.Create().WithPath("/*")) @@ -198,21 +199,25 @@ public async Task FluentMockServer_Proxy_Should_change_absolute_location_header_ .WithStatusCode(HttpStatusCode.Redirect) .WithHeader("Location", _serverForProxyForwarding.Urls[0] + "testpath")); + Thread.Sleep(1000); + _server = FluentMockServer.Start(); _server - .Given(Request.Create().WithPath("/*")) + .Given(Request.Create().WithPath("/prx")) .RespondWith(Response.Create().WithProxy(_serverForProxyForwarding.Urls[0])); - // when + Thread.Sleep(1000); + + // Act var requestMessage = new HttpRequestMessage { Method = HttpMethod.Get, - RequestUri = new Uri(_server.Urls[0]) + RequestUri = new Uri(_server.Urls[0] + "/prx") }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var response = await new HttpClient(httpClientHandler).SendAsync(requestMessage); - // then + // Assert Check.That(response.Headers.Contains("Location")).IsTrue(); Check.That(response.Headers.GetValues("Location")).ContainsExactly(_server.Urls[0] + "testpath"); } From 446194e76cd683225cf245eeb70a265c744cae86 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sun, 20 May 2018 20:05:07 +0200 Subject: [PATCH 4/6] Fix OwinResponseMapper --- src/WireMock.Net/Owin/OwinResponseMapper.cs | 62 +++++-------------- .../FluentMockServerTests.Proxy.cs | 21 +++++-- test/WireMock.Net.Tests/ResponseTests.cs | 1 + 3 files changed, 31 insertions(+), 53 deletions(-) diff --git a/src/WireMock.Net/Owin/OwinResponseMapper.cs b/src/WireMock.Net/Owin/OwinResponseMapper.cs index b310753b8..85e3f627d 100644 --- a/src/WireMock.Net/Owin/OwinResponseMapper.cs +++ b/src/WireMock.Net/Owin/OwinResponseMapper.cs @@ -28,21 +28,7 @@ public class OwinResponseMapper #else private static readonly IDictionary>> ResponseHeadersToFix = new Dictionary>>(StringComparer.OrdinalIgnoreCase) { #endif - //{ HttpKnownHeaderNames.Accept, null }, - //{ HttpKnownHeaderNames.Connection, null }, - //{ HttpKnownHeaderNames.ContentLength, null }, { HttpKnownHeaderNames.ContentType, (r, v) => r.ContentType = v.FirstOrDefault() } - //{ HttpKnownHeaderNames.Date, null }, - //{ HttpKnownHeaderNames.Expect, null }, - //{ HttpKnownHeaderNames.Host, null }, - //{ HttpKnownHeaderNames.IfModifiedSince, null }, - //{ HttpKnownHeaderNames.KeepAlive, null }, - //{ HttpKnownHeaderNames.Range, null }, - //{ HttpKnownHeaderNames.Referer, null }, - //{ HttpKnownHeaderNames.TransferEncoding, null }, - //{ HttpKnownHeaderNames.UserAgent, null }, - //{ HttpKnownHeaderNames.ProxyConnection, null }, - //{ HttpKnownHeaderNames.WWWAuthenticate, null } }; private void SetResponseHeaders(ResponseMessage responseMessage @@ -72,7 +58,7 @@ private void SetResponseHeaders(ResponseMessage responseMessage } /// - /// MapAsync ResponseMessage to OwinResponse + /// Map ResponseMessage to OwinResponse/HttpResponse /// /// /// @@ -86,49 +72,31 @@ public async Task MapAsync(ResponseMessage responseMessage { response.StatusCode = responseMessage.StatusCode; - if (responseMessage.Body == null && responseMessage.BodyAsBytes == null && responseMessage.BodyAsFile == null && responseMessage.BodyAsJson == null) - { - SetResponseHeaders(responseMessage, response); - return; - } - + byte[] bytes = null; if (responseMessage.BodyAsBytes != null) { - await response.Body.WriteAsync(responseMessage.BodyAsBytes, 0, responseMessage.BodyAsBytes.Length); - - SetResponseHeaders(responseMessage, response); - return; + bytes = responseMessage.BodyAsBytes; } - - if (responseMessage.BodyAsFile != null) + else if (responseMessage.BodyAsFile != null) { - byte[] bytes = File.ReadAllBytes(responseMessage.BodyAsFile); - - await response.Body.WriteAsync(bytes, 0, bytes.Length); - - SetResponseHeaders(responseMessage, response); - return; + bytes = File.ReadAllBytes(responseMessage.BodyAsFile); } - - if (responseMessage.BodyAsJson != null) + else if (responseMessage.BodyAsJson != null) { Formatting formatting = responseMessage.BodyAsJsonIndented == true ? Formatting.Indented : Formatting.None; string jsonBody = JsonConvert.SerializeObject(responseMessage.BodyAsJson, new JsonSerializerSettings { Formatting = formatting, NullValueHandling = NullValueHandling.Ignore }); - using (var writer = new StreamWriter(response.Body, responseMessage.BodyEncoding ?? _utf8NoBom)) - { - await writer.WriteAsync(jsonBody); - - SetResponseHeaders(responseMessage, response); - } - - return; + bytes = (responseMessage.BodyEncoding ?? _utf8NoBom).GetBytes(jsonBody); } - - using (var writer = new StreamWriter(response.Body, responseMessage.BodyEncoding ?? _utf8NoBom)) + else if (responseMessage.Body != null) { - await writer.WriteAsync(responseMessage.Body); + bytes = (responseMessage.BodyEncoding ?? _utf8NoBom).GetBytes(responseMessage.Body); + } + + SetResponseHeaders(responseMessage, response); - SetResponseHeaders(responseMessage, response); + if (bytes != null) + { + await response.Body.WriteAsync(bytes, 0, bytes.Length); } } } diff --git a/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs b/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs index 1bd2398fa..9a37840a8 100644 --- a/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs +++ b/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.IO; using System.Linq; using System.Net; using System.Net.Http; @@ -192,22 +194,22 @@ public async Task FluentMockServer_Proxy_Should_preserve_content_header_in_proxi public async Task FluentMockServer_Proxy_Should_change_absolute_location_header_in_proxied_response() { // Assign - _serverForProxyForwarding = FluentMockServer.Start(); + var settings = new FluentMockServerSettings + { + AllowPartialMapping = false + }; + _serverForProxyForwarding = FluentMockServer.Start(settings); _serverForProxyForwarding .Given(Request.Create().WithPath("/*")) .RespondWith(Response.Create() .WithStatusCode(HttpStatusCode.Redirect) .WithHeader("Location", _serverForProxyForwarding.Urls[0] + "testpath")); - Thread.Sleep(1000); - - _server = FluentMockServer.Start(); + _server = FluentMockServer.Start(settings); _server .Given(Request.Create().WithPath("/prx")) .RespondWith(Response.Create().WithProxy(_serverForProxyForwarding.Urls[0])); - Thread.Sleep(1000); - // Act var requestMessage = new HttpRequestMessage { @@ -217,6 +219,13 @@ public async Task FluentMockServer_Proxy_Should_change_absolute_location_header_ var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var response = await new HttpClient(httpClientHandler).SendAsync(requestMessage); + var l = new List(); + foreach (var h in response.Headers) + { + l.Add("h = " + h.Key + "___" + h.Value.FirstOrDefault()); + } + File.WriteAllLines("c:\\temp\\x.txt", l); + // Assert Check.That(response.Headers.Contains("Location")).IsTrue(); Check.That(response.Headers.GetValues("Location")).ContainsExactly(_server.Urls[0] + "testpath"); diff --git a/test/WireMock.Net.Tests/ResponseTests.cs b/test/WireMock.Net.Tests/ResponseTests.cs index 1bac85064..fad94de31 100644 --- a/test/WireMock.Net.Tests/ResponseTests.cs +++ b/test/WireMock.Net.Tests/ResponseTests.cs @@ -12,6 +12,7 @@ public class ResponseTests [Theory] [InlineData("Content-Length", "1024")] [InlineData("Transfer-Encoding", "identity")] + [InlineData("Location", "http://test")] public async void Response_Create_WithHeader(string headerName, string headerValue) { // Assign From a155f51a62777be3e3b8d78231c0b2709f1807e2 Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sun, 20 May 2018 20:10:09 +0200 Subject: [PATCH 5/6] Fix test --- .../FluentMockServerTests.Proxy.cs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs b/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs index 9a37840a8..1015bc7a6 100644 --- a/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs +++ b/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs @@ -194,10 +194,7 @@ public async Task FluentMockServer_Proxy_Should_preserve_content_header_in_proxi public async Task FluentMockServer_Proxy_Should_change_absolute_location_header_in_proxied_response() { // Assign - var settings = new FluentMockServerSettings - { - AllowPartialMapping = false - }; + var settings = new FluentMockServerSettings { AllowPartialMapping = false }; _serverForProxyForwarding = FluentMockServer.Start(settings); _serverForProxyForwarding .Given(Request.Create().WithPath("/*")) @@ -219,13 +216,6 @@ public async Task FluentMockServer_Proxy_Should_change_absolute_location_header_ var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var response = await new HttpClient(httpClientHandler).SendAsync(requestMessage); - var l = new List(); - foreach (var h in response.Headers) - { - l.Add("h = " + h.Key + "___" + h.Value.FirstOrDefault()); - } - File.WriteAllLines("c:\\temp\\x.txt", l); - // Assert Check.That(response.Headers.Contains("Location")).IsTrue(); Check.That(response.Headers.GetValues("Location")).ContainsExactly(_server.Urls[0] + "testpath"); From e4ff8a61eba35cd6b3587850b73e58f4c74c2c3b Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Fri, 25 May 2018 21:03:14 +0200 Subject: [PATCH 6/6] 1.0.3.18 --- src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj | 2 +- src/WireMock.Net/WireMock.Net.csproj | 2 +- test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs | 4 ---- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj b/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj index 0c462bc5f..6b7c22359 100644 --- a/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj +++ b/src/WireMock.Net.StandAlone/WireMock.Net.StandAlone.csproj @@ -3,7 +3,7 @@ Lightweight StandAlone Http Mocking Server for .Net. WireMock.Net.StandAlone - 1.0.3.17 + 1.0.3.18 Stef Heyenrath net452;net46;netstandard1.3;netstandard2.0 true diff --git a/src/WireMock.Net/WireMock.Net.csproj b/src/WireMock.Net/WireMock.Net.csproj index 51732fb95..4f730cb18 100644 --- a/src/WireMock.Net/WireMock.Net.csproj +++ b/src/WireMock.Net/WireMock.Net.csproj @@ -3,7 +3,7 @@ Lightweight Http Mocking Server for .Net, inspired by WireMock from the Java landscape. WireMock.Net - 1.0.3.17 + 1.0.3.18 Stef Heyenrath net452;net46;netstandard1.3;netstandard2.0 true diff --git a/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs b/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs index 1015bc7a6..a3a8b0197 100644 --- a/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs +++ b/test/WireMock.Net.Tests/FluentMockServerTests.Proxy.cs @@ -1,14 +1,10 @@ using System; -using System.Collections.Generic; -using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; -using System.Threading; using System.Threading.Tasks; using NFluent; -using WireMock.Matchers.Request; using WireMock.RequestBuilders; using WireMock.ResponseBuilders; using WireMock.Server;