From d46bae655bc09d64071cfc66a191de8ef2261cbe Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sat, 14 Feb 2026 09:30:24 +0100 Subject: [PATCH] using var httpClient = new HttpClient(); --- .../AdminApi/WireMockAdminApiTests.cs | 39 +++++------ .../WireMockServer.Proxy.cs | 62 +++++++++++------ .../WireMockServer.Proxy2.cs | 66 +++++++++---------- 3 files changed, 89 insertions(+), 78 deletions(-) diff --git a/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.cs b/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.cs index 6e5e9b23..4151484d 100644 --- a/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.cs +++ b/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.cs @@ -1,21 +1,13 @@ // Copyright © WireMock.Net -//#if !(NET452 || NET461 || NETCOREAPP3_1) -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.Text; -using System.Threading.Tasks; using FluentAssertions; using Moq; using NFluent; using RestEase; -using VerifyTests; -using VerifyXunit; using WireMock.Admin.Mappings; using WireMock.Admin.Scenarios; using WireMock.Admin.Settings; @@ -31,7 +23,6 @@ using WireMock.Server; using WireMock.Settings; using WireMock.Types; using WireMock.Util; -using Xunit; namespace WireMock.Net.Tests.AdminApi; @@ -200,7 +191,8 @@ public partial class WireMockAdminApiTests .RespondWith(Response.Create()); var serverUrl = "http://localhost:" + server.Ports[0]; - await new HttpClient().GetAsync(serverUrl + "/foo"); + using var httpClient = new HttpClient(); + await httpClient.GetAsync(serverUrl + "/foo"); var api = RestClient.For(serverUrl); // Act @@ -270,7 +262,8 @@ public partial class WireMockAdminApiTests .RespondWith(Response.Create()); var serverUrl = "http://localhost:" + server.Ports[0]; - await new HttpClient().GetAsync(serverUrl + "/foo"); + using var httpClient = new HttpClient(); + await httpClient.GetAsync(serverUrl + "/foo"); var api = RestClient.For(serverUrl); // Act @@ -307,7 +300,8 @@ public partial class WireMockAdminApiTests Logger = new WireMockNullLogger() }); var serverUrl = "http://localhost:" + server.Ports[0]; - await new HttpClient().GetAsync(serverUrl + "/foo"); + using var httpClient = new HttpClient(); + await httpClient.GetAsync(serverUrl + "/foo"); var api = RestClient.For(serverUrl); // Act @@ -341,7 +335,8 @@ public partial class WireMockAdminApiTests request.Content = new StringContent(data); request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(jsonApiContentType); - var response = await new HttpClient().SendAsync(request); + using var client = new HttpClient(); + var response = await client.SendAsync(request); Check.That(response).IsNotNull(); var api = RestClient.For(serverUrl); @@ -394,7 +389,7 @@ public partial class WireMockAdminApiTests var getMappingResult = await api.GetMappingAsync(guid); - await Verifier.Verify(getMappingResult, VerifySettings).DontScrubGuids(); + await Verify(getMappingResult, VerifySettings).DontScrubGuids(); server.Stop(); } @@ -445,7 +440,7 @@ public partial class WireMockAdminApiTests var getMappingResult = await api.GetMappingAsync(guid); - await Verifier.Verify(getMappingResult, VerifySettings).DontScrubGuids(); + await Verify(getMappingResult, VerifySettings).DontScrubGuids(); server.Stop(); } @@ -494,7 +489,7 @@ public partial class WireMockAdminApiTests var getMappingResult = await api.GetMappingAsync(guid).ConfigureAwait(false); - await Verifier.Verify(getMappingResult, VerifySettings).DontScrubGuids(); + await Verify(getMappingResult, VerifySettings).DontScrubGuids(); server.Stop(); } @@ -518,7 +513,8 @@ public partial class WireMockAdminApiTests request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(jsonAcceptHeader)); request.Content = new StringContent(data); request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(jsonApiContentType); - var response = await new HttpClient().SendAsync(request); + using var client = new HttpClient(); + var response = await client.SendAsync(request); Check.That(response).IsNotNull(); var api = RestClient.For(serverUrl); @@ -872,7 +868,7 @@ public partial class WireMockAdminApiTests var mapping = server.Mappings.FirstOrDefault(m => m.Guid == guid); mapping.Should().NotBeNull(); - await Verifier.Verify(getMappingResult, VerifySettings).DontScrubGuids(); + await Verify(getMappingResult, VerifySettings).DontScrubGuids(); server.Stop(); } @@ -907,7 +903,7 @@ public partial class WireMockAdminApiTests var code = await api.GetMappingCodeAsync(guid); // Assert - await Verifier.Verify(code).DontScrubDateTimes().DontScrubGuids(); + await Verify(code).DontScrubDateTimes().DontScrubGuids(); server.Stop(); } @@ -1029,7 +1025,7 @@ text var code = await api.GetMappingsCodeAsync(); // Assert - await Verifier.Verify(code).DontScrubDateTimes().DontScrubGuids(); + await Verify(code).DontScrubDateTimes().DontScrubGuids(); server.Stop(); } @@ -1128,5 +1124,4 @@ text { return File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "__admin", "mappings", filename)); } -} -//#endif \ No newline at end of file +} \ No newline at end of file diff --git a/test/WireMock.Net.Tests/WireMockServer.Proxy.cs b/test/WireMock.Net.Tests/WireMockServer.Proxy.cs index 49555c84..2515479a 100644 --- a/test/WireMock.Net.Tests/WireMockServer.Proxy.cs +++ b/test/WireMock.Net.Tests/WireMockServer.Proxy.cs @@ -49,7 +49,8 @@ public class WireMockServerProxyTests RequestUri = new Uri(server.Urls[0]) }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + await httpClient.SendAsync(requestMessage); // Assert Check.That(server.Mappings).HasSize(2); @@ -74,7 +75,7 @@ public class WireMockServerProxyTests // Act var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - var client = new HttpClient(httpClientHandler); + using var client = new HttpClient(httpClientHandler); for (int i = 0; i < 5; i++) { var requestMessage = new HttpRequestMessage @@ -115,7 +116,8 @@ public class WireMockServerProxyTests RequestUri = new Uri(server.Url!) }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + await httpClient.SendAsync(requestMessage); } // Assert @@ -205,7 +207,8 @@ public class WireMockServerProxyTests RequestUri = new Uri(server.Urls[0]) }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + await httpClient.SendAsync(requestMessage); // Assert server.Mappings.Should().HaveCount(1); @@ -241,7 +244,8 @@ public class WireMockServerProxyTests RequestUri = new Uri(server.Urls[0]) }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + await httpClient.SendAsync(requestMessage); // Assert server.Mappings.Should().HaveCount(1); @@ -280,7 +284,8 @@ public class WireMockServerProxyTests RequestUri = new Uri(server.Urls[0]) }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + await httpClient.SendAsync(requestMessage); // Assert server.Mappings.Should().HaveCount(1); @@ -311,7 +316,8 @@ public class WireMockServerProxyTests RequestUri = new Uri(server.Urls[0]) }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + await httpClient.SendAsync(requestMessage); // Assert server.Mappings.Should().HaveCount(2); @@ -335,7 +341,8 @@ public class WireMockServerProxyTests RequestUri = new Uri($"{server.Urls[0]}{path}") }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - var response = await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + var response = await httpClient.SendAsync(requestMessage); string content = await response.Content.ReadAsStringAsync(); // Assert @@ -376,7 +383,8 @@ public class WireMockServerProxyTests }; requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain"); requestMessage.Content.Headers.Add("bbb", "test"); - await new HttpClient().SendAsync(requestMessage); + using var httpClient = new HttpClient(); + await httpClient.SendAsync(requestMessage); // Assert var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage; @@ -471,7 +479,8 @@ public class WireMockServerProxyTests }; requestMessage.Headers.Add("foobar", "exact_match"); requestMessage.Headers.Add("ok", "ok-value"); - await new HttpClient().SendAsync(requestMessage); + using var httpClient = new HttpClient(); + await httpClient.SendAsync(requestMessage); // Assert var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid); @@ -518,7 +527,8 @@ public class WireMockServerProxyTests cookieContainer.Add(new Uri("http://localhost"), new Cookie("GoodCookie", "I_should_pass")); var handler = new HttpClientHandler { CookieContainer = cookieContainer }; - await new HttpClient(handler).SendAsync(requestMessage); + using var httpClient = new HttpClient(handler); + await httpClient.SendAsync(requestMessage); // Assert var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid); @@ -562,7 +572,8 @@ public class WireMockServerProxyTests RequestUri = new Uri($"{server.Urls[0]}{path}{param01}{param02}"), Content = new StringContent("stringContent"), }; - await new HttpClient().SendAsync(requestMessage); + using var httpClient = new HttpClient(); + await httpClient.SendAsync(requestMessage); // Assert var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid); @@ -609,7 +620,8 @@ public class WireMockServerProxyTests }; var handler = new HttpClientHandler(); - await new HttpClient(handler).SendAsync(requestMessage); + using var httpClient = new HttpClient(handler); + await httpClient.SendAsync(requestMessage); // Assert var mapping = serverForProxyForwarding.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid); @@ -641,7 +653,8 @@ public class WireMockServerProxyTests Content = new StringContent("") }; requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain"); - await new HttpClient().SendAsync(requestMessage); + using var httpClient = new HttpClient(); + await httpClient.SendAsync(requestMessage); // Assert var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage; @@ -673,7 +686,8 @@ public class WireMockServerProxyTests Method = HttpMethod.Get, RequestUri = new Uri($"{server.Urls[0]}{path}") }; - var response = await new HttpClient().SendAsync(requestMessage); + using var httpClient = new HttpClient(); + var response = await httpClient.SendAsync(requestMessage); // Assert Check.That(await response.Content.ReadAsStringAsync()).IsEqualTo("body"); @@ -707,7 +721,8 @@ public class WireMockServerProxyTests RequestUri = new Uri($"{server.Urls[0]}{path}") }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - var response = await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + var response = await httpClient.SendAsync(requestMessage); // Assert Check.That(response.Headers.Contains("Location")).IsTrue(); @@ -738,7 +753,8 @@ public class WireMockServerProxyTests }; var clientHandler = new HttpClientHandler(); clientHandler.CookieContainer.Add(requestUri, new Cookie("name", "value")); - await new HttpClient(clientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(clientHandler); + await httpClient.SendAsync(requestMessage); // then var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage; @@ -777,7 +793,8 @@ public class WireMockServerProxyTests .RespondWith(Response.Create().WithProxy(serverForProxyForwarding.Urls[0])); // act - var response = await new HttpClient().PostAsync(server.Urls[0], new ByteArrayContent(jpegHeader)); + using var httpClient = new HttpClient(); + var response = await httpClient.PostAsync(server.Urls[0], new ByteArrayContent(jpegHeader)); // assert Check.That(response.StatusCode).IsEqualTo(HttpStatusCode.OK); @@ -806,7 +823,8 @@ public class WireMockServerProxyTests Method = HttpMethod.Get, RequestUri = new Uri($"{server.Urls[0]}{path}") }; - var response = await new HttpClient().SendAsync(requestMessage); + using var httpClient = new HttpClient(); + var response = await httpClient.SendAsync(requestMessage); // Assert string content = await response.Content.ReadAsStringAsync(); @@ -837,7 +855,8 @@ public class WireMockServerProxyTests { { new StringContent("data"), "test", "test.txt" } }; - var response = await new HttpClient().PostAsync(uri, form); + using var httpClient = new HttpClient(); + var response = await httpClient.PostAsync(uri, form); // Assert string content = await response.Content.ReadAsStringAsync(); @@ -913,7 +932,8 @@ public class WireMockServerProxyTests RequestUri = new Uri(server.Urls[0]) }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; - var result = await new HttpClient(httpClientHandler).SendAsync(requestMessage); + using var httpClient = new HttpClient(httpClientHandler); + var result = await httpClient.SendAsync(requestMessage); // Assert result.StatusCode.Should().Be(HttpStatusCode.InternalServerError); diff --git a/test/WireMock.Net.Tests/WireMockServer.Proxy2.cs b/test/WireMock.Net.Tests/WireMockServer.Proxy2.cs index 6addd270..5d128ede 100644 --- a/test/WireMock.Net.Tests/WireMockServer.Proxy2.cs +++ b/test/WireMock.Net.Tests/WireMockServer.Proxy2.cs @@ -1,51 +1,47 @@ // Copyright © WireMock.Net -using NFluent; -using System; -using System.Linq; using System.Net; using System.Net.Http; -using System.Threading.Tasks; +using NFluent; using WireMock.RequestBuilders; using WireMock.ResponseBuilders; using WireMock.Server; -using Xunit; -namespace WireMock.Net.Tests +namespace WireMock.Net.Tests; + +public class WireMockServerProxy2Tests { - public class WireMockServerProxy2Tests + [Fact] + public async Task WireMockServer_ProxyAndRecordSettings_ShouldProxy() { - [Fact] - public async Task WireMockServer_ProxyAndRecordSettings_ShouldProxy() + // Assign + var serverAsProxy = WireMockServer.Start(); + serverAsProxy.Given(Request.Create().UsingPost()) + .RespondWith(Response.Create().WithStatusCode(201).WithBodyAsJson(new { p = 42 }).WithHeader("Content-Type", "application/json")); + + // Act + var server = WireMockServer.Start(); + server.Given(Request.Create().UsingPost().WithHeader("prx", "1")) + .RespondWith(Response.Create().WithProxy(serverAsProxy.Urls[0])); + + var request = new HttpRequestMessage { - // Assign - var serverAsProxy = WireMockServer.Start(); - serverAsProxy.Given(Request.Create().UsingPost()) - .RespondWith(Response.Create().WithStatusCode(201).WithBodyAsJson(new { p = 42 }).WithHeader("Content-Type", "application/json")); + Method = HttpMethod.Post, + RequestUri = new Uri($"{server.Urls[0]}/TST"), + Content = new StringContent("test") + }; + request.Headers.Add("prx", "1"); - // Act - var server = WireMockServer.Start(); - server.Given(Request.Create().UsingPost().WithHeader("prx", "1")) - .RespondWith(Response.Create().WithProxy(serverAsProxy.Urls[0])); + // Assert + using var httpClient = new HttpClient(); + var response = await httpClient.SendAsync(request); + string content = await response.Content.ReadAsStringAsync(); - var request = new HttpRequestMessage - { - Method = HttpMethod.Post, - RequestUri = new Uri($"{server.Urls[0]}/TST"), - Content = new StringContent("test") - }; - request.Headers.Add("prx", "1"); + Check.That(content).IsEqualTo("{\"p\":42}"); + Check.That(response.StatusCode).IsEqualTo(HttpStatusCode.Created); + Check.That(response.Content.Headers.GetValues("Content-Type").First()).IsEqualTo("application/json"); - // Assert - var response = await new HttpClient().SendAsync(request); - string content = await response.Content.ReadAsStringAsync(); - - Check.That(content).IsEqualTo("{\"p\":42}"); - Check.That(response.StatusCode).IsEqualTo(HttpStatusCode.Created); - Check.That(response.Content.Headers.GetValues("Content-Type").First()).IsEqualTo("application/json"); - - server.Dispose(); - serverAsProxy.Dispose(); - } + server.Dispose(); + serverAsProxy.Dispose(); } } \ No newline at end of file