This commit is contained in:
Stef Heyenrath
2026-02-14 12:56:25 +01:00
parent 80aa55b2df
commit 6094fa4c8b
4 changed files with 38 additions and 30 deletions

View File

@@ -6,6 +6,7 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<IsTestProject>true</IsTestProject> <IsTestProject>true</IsTestProject>
<SonarQubeExclude>true</SonarQubeExclude> <SonarQubeExclude>true</SonarQubeExclude>
<UseVSTest>false</UseVSTest>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View File

@@ -37,7 +37,7 @@ message HelloReply {
// Act // Act
var api = RestClient.For<IWireMockAdminApi>(server.Url); var api = RestClient.For<IWireMockAdminApi>(server.Url);
var getMappingsResult = await api.GetMappingsAsync(); var getMappingsResult = await api.GetMappingsAsync(TestContext.Current.CancellationToken);
await Verify(getMappingsResult, VerifySettings); await Verify(getMappingsResult, VerifySettings);
} }
@@ -50,7 +50,7 @@ message HelloReply {
// Act // Act
var client = server.CreateClient(); var client = server.CreateClient();
var getMappingsResult = await client.GetStringAsync("/__admin/mappings"); var getMappingsResult = await client.GetStringAsync("/__admin/mappings", TestContext.Current.CancellationToken);
await VerifyJson(getMappingsResult, VerifySettings); await VerifyJson(getMappingsResult, VerifySettings);
} }

View File

@@ -70,7 +70,7 @@ public partial class WireMockAdminApiTests
Title = "test 2", Title = "test 2",
Description = "description 2" Description = "description 2"
}; };
var result = await api.PostMappingsAsync(new[] { model1, model2 }); var result = await api.PostMappingsAsync([model1, model2], TestContext.Current.CancellationToken);
// Assert // Assert
Check.That(result).IsNotNull(); Check.That(result).IsNotNull();
@@ -89,7 +89,7 @@ public partial class WireMockAdminApiTests
[InlineData(0, 0)] [InlineData(0, 0)]
[InlineData(200, 200)] [InlineData(200, 200)]
[InlineData("200", "200")] [InlineData("200", "200")]
public async Task IWireMockAdminApi_PostMappingAsync_WithStatusCode(object statusCode, object expectedStatusCode) public async Task IWireMockAdminApi_PostMappingAsync_WithStatusCode(object? statusCode, object? expectedStatusCode)
{ {
// Arrange // Arrange
var server = WireMockServer.StartWithAdminInterface(); var server = WireMockServer.StartWithAdminInterface();
@@ -103,7 +103,7 @@ public partial class WireMockAdminApiTests
Priority = 500, Priority = 500,
Title = "test" Title = "test"
}; };
var result = await api.PostMappingAsync(model); var result = await api.PostMappingAsync(model, TestContext.Current.CancellationToken);
// Assert // Assert
Check.That(result).IsNotNull(); Check.That(result).IsNotNull();

View File

@@ -46,7 +46,7 @@ public class WireMockServerProxyTests
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
using var httpClient = new HttpClient(httpClientHandler); using var httpClient = new HttpClient(httpClientHandler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
Check.That(server.Mappings).HasSize(2); Check.That(server.Mappings).HasSize(2);
@@ -57,6 +57,7 @@ public class WireMockServerProxyTests
public async Task WireMockServer_Proxy_AdminFalse_With_SaveMapping_Is_True_And_SaveMappingToFile_Is_False_Should_AddInternalMappingOnly() public async Task WireMockServer_Proxy_AdminFalse_With_SaveMapping_Is_True_And_SaveMappingToFile_Is_False_Should_AddInternalMappingOnly()
{ {
// Assign // Assign
var cancellationToken = TestContext.Current.CancellationToken;
var settings = new WireMockServerSettings var settings = new WireMockServerSettings
{ {
ProxyAndRecordSettings = new ProxyAndRecordSettings ProxyAndRecordSettings = new ProxyAndRecordSettings
@@ -79,7 +80,7 @@ public class WireMockServerProxyTests
Method = HttpMethod.Get, Method = HttpMethod.Get,
RequestUri = new Uri(server.Url!) RequestUri = new Uri(server.Url!)
}; };
await client.SendAsync(requestMessage); await client.SendAsync(requestMessage, cancellationToken);
} }
// Assert // Assert
@@ -90,6 +91,7 @@ public class WireMockServerProxyTests
public async Task WireMockServer_Proxy_AdminTrue_With_SaveMapping_Is_True_And_SaveMappingToFile_Is_False_Should_AddInternalMappingOnly() public async Task WireMockServer_Proxy_AdminTrue_With_SaveMapping_Is_True_And_SaveMappingToFile_Is_False_Should_AddInternalMappingOnly()
{ {
// Assign // Assign
var cancellationToken = TestContext.Current.CancellationToken;
var settings = new WireMockServerSettings var settings = new WireMockServerSettings
{ {
ProxyAndRecordSettings = new ProxyAndRecordSettings ProxyAndRecordSettings = new ProxyAndRecordSettings
@@ -113,7 +115,7 @@ public class WireMockServerProxyTests
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
using var httpClient = new HttpClient(httpClientHandler); using var httpClient = new HttpClient(httpClientHandler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, cancellationToken);
} }
// Assert // Assert
@@ -168,7 +170,7 @@ public class WireMockServerProxyTests
Content = new StringContent(stringBody) Content = new StringContent(stringBody)
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
await new HttpClient(httpClientHandler).SendAsync(requestMessage); await new HttpClient(httpClientHandler).SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
server.Mappings.Should().HaveCount(2); server.Mappings.Should().HaveCount(2);
@@ -204,7 +206,7 @@ public class WireMockServerProxyTests
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
using var httpClient = new HttpClient(httpClientHandler); using var httpClient = new HttpClient(httpClientHandler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
server.Mappings.Should().HaveCount(1); server.Mappings.Should().HaveCount(1);
@@ -241,7 +243,7 @@ public class WireMockServerProxyTests
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
using var httpClient = new HttpClient(httpClientHandler); using var httpClient = new HttpClient(httpClientHandler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
server.Mappings.Should().HaveCount(1); server.Mappings.Should().HaveCount(1);
@@ -281,7 +283,7 @@ public class WireMockServerProxyTests
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
using var httpClient = new HttpClient(httpClientHandler); using var httpClient = new HttpClient(httpClientHandler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
server.Mappings.Should().HaveCount(1); server.Mappings.Should().HaveCount(1);
@@ -313,7 +315,7 @@ public class WireMockServerProxyTests
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
using var httpClient = new HttpClient(httpClientHandler); using var httpClient = new HttpClient(httpClientHandler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
server.Mappings.Should().HaveCount(2); server.Mappings.Should().HaveCount(2);
@@ -324,6 +326,7 @@ public class WireMockServerProxyTests
public async Task WireMockServer_Proxy_Should_proxy_responses() public async Task WireMockServer_Proxy_Should_proxy_responses()
{ {
// Assign // Assign
var cancellationToken = TestContext.Current.CancellationToken;
string path = $"/prx_{Guid.NewGuid()}"; string path = $"/prx_{Guid.NewGuid()}";
var server = WireMockServer.Start(); var server = WireMockServer.Start();
server server
@@ -338,8 +341,8 @@ public class WireMockServerProxyTests
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
using var httpClient = new HttpClient(httpClientHandler); using var httpClient = new HttpClient(httpClientHandler);
var response = await httpClient.SendAsync(requestMessage); var response = await httpClient.SendAsync(requestMessage, cancellationToken);
string content = await response.Content.ReadAsStringAsync(); string content = await response.Content.ReadAsStringAsync(cancellationToken);
// Assert // Assert
Check.That(server.Mappings).HasSize(1); Check.That(server.Mappings).HasSize(1);
@@ -380,7 +383,7 @@ public class WireMockServerProxyTests
requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain"); requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");
requestMessage.Content.Headers.Add("bbb", "test"); requestMessage.Content.Headers.Add("bbb", "test");
using var httpClient = new HttpClient(); using var httpClient = new HttpClient();
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage; var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage;
@@ -397,6 +400,7 @@ public class WireMockServerProxyTests
public async Task WireMockServer_Proxy_Should_preserve_Authorization_header_in_proxied_request() public async Task WireMockServer_Proxy_Should_preserve_Authorization_header_in_proxied_request()
{ {
// Assign // Assign
var cancellationToken = TestContext.Current.CancellationToken;
string path = $"/prx_{Guid.NewGuid()}"; string path = $"/prx_{Guid.NewGuid()}";
var serverForProxyForwarding = WireMockServer.Start(); var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding serverForProxyForwarding
@@ -429,10 +433,10 @@ public class WireMockServerProxyTests
Content = new StringContent("stringContent", Encoding.ASCII) Content = new StringContent("stringContent", Encoding.ASCII)
}; };
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("BASIC", "test-A"); requestMessage.Headers.Authorization = new AuthenticationHeaderValue("BASIC", "test-A");
var result = await new HttpClient().SendAsync(requestMessage); var result = await new HttpClient().SendAsync(requestMessage, cancellationToken);
// Assert // Assert
(await result.Content.ReadAsStringAsync()).Should().Be("BASIC test-A"); (await result.Content.ReadAsStringAsync(cancellationToken)).Should().Be("BASIC test-A");
var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage; var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage;
receivedRequest.Headers!["Authorization"].ToString().Should().Be("BASIC test-A"); receivedRequest.Headers!["Authorization"].ToString().Should().Be("BASIC test-A");
@@ -476,7 +480,7 @@ public class WireMockServerProxyTests
requestMessage.Headers.Add("foobar", "exact_match"); requestMessage.Headers.Add("foobar", "exact_match");
requestMessage.Headers.Add("ok", "ok-value"); requestMessage.Headers.Add("ok", "ok-value");
using var httpClient = new HttpClient(); using var httpClient = new HttpClient();
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid); var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid);
@@ -524,7 +528,7 @@ public class WireMockServerProxyTests
var handler = new HttpClientHandler { CookieContainer = cookieContainer }; var handler = new HttpClientHandler { CookieContainer = cookieContainer };
using var httpClient = new HttpClient(handler); using var httpClient = new HttpClient(handler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid); var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid);
@@ -569,7 +573,7 @@ public class WireMockServerProxyTests
Content = new StringContent("stringContent"), Content = new StringContent("stringContent"),
}; };
using var httpClient = new HttpClient(); using var httpClient = new HttpClient();
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid); var mapping = server.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid);
@@ -617,7 +621,7 @@ public class WireMockServerProxyTests
var handler = new HttpClientHandler(); var handler = new HttpClientHandler();
using var httpClient = new HttpClient(handler); using var httpClient = new HttpClient(handler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
var mapping = serverForProxyForwarding.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid); var mapping = serverForProxyForwarding.Mappings.FirstOrDefault(m => m.Guid != defaultMapping.Guid);
@@ -650,7 +654,7 @@ public class WireMockServerProxyTests
}; };
requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain"); requestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("text/plain");
using var httpClient = new HttpClient(); using var httpClient = new HttpClient();
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage; var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage;
@@ -663,6 +667,7 @@ public class WireMockServerProxyTests
public async Task WireMockServer_Proxy_Should_preserve_content_header_in_proxied_response() public async Task WireMockServer_Proxy_Should_preserve_content_header_in_proxied_response()
{ {
// Assign // Assign
var cancellationToken = TestContext.Current.CancellationToken;
string path = $"/prx_{Guid.NewGuid()}"; string path = $"/prx_{Guid.NewGuid()}";
var serverForProxyForwarding = WireMockServer.Start(); var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding serverForProxyForwarding
@@ -683,10 +688,11 @@ public class WireMockServerProxyTests
RequestUri = new Uri($"{server.Urls[0]}{path}") RequestUri = new Uri($"{server.Urls[0]}{path}")
}; };
using var httpClient = new HttpClient(); using var httpClient = new HttpClient();
var response = await httpClient.SendAsync(requestMessage); var response = await httpClient.SendAsync(requestMessage, cancellationToken);
// Assert // Assert
Check.That(await response.Content.ReadAsStringAsync()).IsEqualTo("body"); string content = await response.Content.ReadAsStringAsync(cancellationToken);
Check.That(content).IsEqualTo("body");
Check.That(response.Content.Headers.Contains("Content-Type")).IsTrue(); Check.That(response.Content.Headers.Contains("Content-Type")).IsTrue();
Check.That(response.Content.Headers.GetValues("Content-Type")).ContainsExactly("text/plain"); Check.That(response.Content.Headers.GetValues("Content-Type")).ContainsExactly("text/plain");
} }
@@ -718,7 +724,7 @@ public class WireMockServerProxyTests
}; };
var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false };
using var httpClient = new HttpClient(httpClientHandler); using var httpClient = new HttpClient(httpClientHandler);
var response = await httpClient.SendAsync(requestMessage); var response = await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// Assert // Assert
Check.That(response.Headers.Contains("Location")).IsTrue(); Check.That(response.Headers.Contains("Location")).IsTrue();
@@ -750,7 +756,7 @@ public class WireMockServerProxyTests
var clientHandler = new HttpClientHandler(); var clientHandler = new HttpClientHandler();
clientHandler.CookieContainer.Add(requestUri, new Cookie("name", "value")); clientHandler.CookieContainer.Add(requestUri, new Cookie("name", "value"));
using var httpClient = new HttpClient(clientHandler); using var httpClient = new HttpClient(clientHandler);
await httpClient.SendAsync(requestMessage); await httpClient.SendAsync(requestMessage, TestContext.Current.CancellationToken);
// then // then
var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage; var receivedRequest = serverForProxyForwarding.LogEntries.First().RequestMessage;
@@ -790,7 +796,7 @@ public class WireMockServerProxyTests
// act // act
using var httpClient = new HttpClient(); using var httpClient = new HttpClient();
var response = await httpClient.PostAsync(server.Urls[0], new ByteArrayContent(jpegHeader)); var response = await httpClient.PostAsync(server.Urls[0], new ByteArrayContent(jpegHeader), TestContext.Current.CancellationToken);
// assert // assert
Check.That(response.StatusCode).IsEqualTo(HttpStatusCode.OK); Check.That(response.StatusCode).IsEqualTo(HttpStatusCode.OK);
@@ -800,6 +806,7 @@ public class WireMockServerProxyTests
public async Task WireMockServer_Proxy_Should_set_BodyAsJson_in_proxied_response() public async Task WireMockServer_Proxy_Should_set_BodyAsJson_in_proxied_response()
{ {
// Assign // Assign
var cancellationToken = TestContext.Current.CancellationToken;
string path = $"/prx_{Guid.NewGuid()}"; string path = $"/prx_{Guid.NewGuid()}";
var serverForProxyForwarding = WireMockServer.Start(); var serverForProxyForwarding = WireMockServer.Start();
serverForProxyForwarding serverForProxyForwarding
@@ -820,10 +827,10 @@ public class WireMockServerProxyTests
RequestUri = new Uri($"{server.Urls[0]}{path}") RequestUri = new Uri($"{server.Urls[0]}{path}")
}; };
using var httpClient = new HttpClient(); using var httpClient = new HttpClient();
var response = await httpClient.SendAsync(requestMessage); var response = await httpClient.SendAsync(requestMessage, cancellationToken);
// Assert // Assert
string content = await response.Content.ReadAsStringAsync(); string content = await response.Content.ReadAsStringAsync(cancellationToken);
Check.That(content).IsEqualTo("{\"i\":42}"); Check.That(content).IsEqualTo("{\"i\":42}");
Check.That(response.Content.Headers.GetValues("Content-Type")).ContainsExactly("application/json; charset=utf-8"); Check.That(response.Content.Headers.GetValues("Content-Type")).ContainsExactly("application/json; charset=utf-8");
} }