mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-18 23:20:11 +02:00
Fixed logic for FluentAssertions WithHeader (#959)
This commit is contained in:
@@ -149,15 +149,15 @@ public class WireMockAssertions
|
|||||||
|
|
||||||
using (new AssertionScope($"header \"{expectedKey}\" from requests sent with value(s)"))
|
using (new AssertionScope($"header \"{expectedKey}\" from requests sent with value(s)"))
|
||||||
{
|
{
|
||||||
var headerValues = _headers.First(h => h.Key == expectedKey).Value;
|
var matchingHeaderValues = _headers.Where(h => h.Key == expectedKey).SelectMany(h => h.Value.ToArray()).ToArray();
|
||||||
|
|
||||||
if (expectedValues.Length == 1)
|
if (expectedValues.Length == 1)
|
||||||
{
|
{
|
||||||
headerValues.Should().Contain(expectedValues.First(), because, becauseArgs);
|
matchingHeaderValues.Should().Contain(expectedValues.First(), because, becauseArgs);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var trimmedHeaderValues = string.Join(",", headerValues.Select(x => x)).Split(',').Select(x => x.Trim()).ToList();
|
var trimmedHeaderValues = string.Join(",", matchingHeaderValues.Select(x => x)).Split(',').Select(x => x.Trim()).ToList();
|
||||||
foreach (var expectedValue in expectedValues)
|
foreach (var expectedValue in expectedValues)
|
||||||
{
|
{
|
||||||
trimmedHeaderValues.Should().Contain(expectedValue, because, becauseArgs);
|
trimmedHeaderValues.Should().Contain(expectedValue, because, becauseArgs);
|
||||||
|
|||||||
@@ -210,6 +210,36 @@ public class WireMockAssertionsTests : IDisposable
|
|||||||
.Be($"{string.Join(NewLine, missingValue1Message, missingValue2Message)}{NewLine}");
|
.Be($"{string.Join(NewLine, missingValue1Message, missingValue2Message)}{NewLine}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task HaveReceivedACall_WithHeader_ShouldCheckAllRequests()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
using var server = WireMockServer.Start();
|
||||||
|
using var client = server.CreateClient();
|
||||||
|
|
||||||
|
// Act 1
|
||||||
|
await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "/")
|
||||||
|
{
|
||||||
|
Headers =
|
||||||
|
{
|
||||||
|
Authorization = new AuthenticationHeaderValue("Bearer", "invalidToken")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Act 2
|
||||||
|
await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "/")
|
||||||
|
{
|
||||||
|
Headers =
|
||||||
|
{
|
||||||
|
Authorization = new AuthenticationHeaderValue("Bearer", "validToken")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
server.Should().HaveReceivedACall().WithHeader("Authorization", "Bearer invalidToken");
|
||||||
|
server.Should().HaveReceivedACall().WithHeader("Authorization", "Bearer validToken");
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task HaveReceivedACall_AtUrl_WhenACallWasMadeToUrl_Should_BeOK()
|
public async Task HaveReceivedACall_AtUrl_WhenACallWasMadeToUrl_Should_BeOK()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user