Fix MimePartMatcher and add more tests (#1389)

* mp

* .

* --return

* Fixed

* --

* ...

* fix

* ...

* .
This commit is contained in:
Stef Heyenrath
2026-01-24 09:15:43 +01:00
committed by GitHub
parent 317fcb1b30
commit 702e156ddc
56 changed files with 665 additions and 263 deletions
@@ -12,6 +12,11 @@ namespace WireMock.Matchers.Request;
/// </summary>
public class RequestMessageMultiPartMatcher : IRequestMatcher
{
/// <summary>
/// The name of this matcher.
/// </summary>
public const string Name = "MultiPartMatcher";
private readonly IMimeKitUtils _mimeKitUtils = LoadMimeKitUtils();
/// <summary>
@@ -22,7 +27,7 @@ public class RequestMessageMultiPartMatcher : IRequestMatcher
/// <summary>
/// The <see cref="MatchOperator"/>
/// </summary>
public MatchOperator MatchOperator { get; } = MatchOperator.Or;
public MatchOperator MatchOperator { get; } = MatchOperator.And;
/// <summary>
/// The <see cref="MatchBehaviour"/>
@@ -54,19 +59,20 @@ public class RequestMessageMultiPartMatcher : IRequestMatcher
/// <inheritdoc />
public double GetMatchingScore(IRequestMessage requestMessage, IRequestMatchResult requestMatchResult)
{
var score = MatchScores.Mismatch;
var matchDetail = MatchResult.From(Name).ToMatchDetail();
Exception? exception = null;
if (Matchers?.Any() != true)
if (Matchers == null)
{
return requestMatchResult.AddScore(GetType(), score, null);
return requestMatchResult.AddMatchDetail(matchDetail);
}
if (!_mimeKitUtils.TryGetMimeMessage(requestMessage, out var message))
{
return requestMatchResult.AddScore(GetType(), score, null);
return requestMatchResult.AddMatchDetail(matchDetail);
}
double score = MatchScores.Mismatch;
try
{
foreach (var mimePartMatcher in Matchers.OfType<IMimePartMatcher>().ToArray())
@@ -94,7 +100,7 @@ public class RequestMessageMultiPartMatcher : IRequestMatcher
exception = ex;
}
return requestMatchResult.AddScore(GetType(), score, exception);
return requestMatchResult.AddMatchDetail(MatchResult.From(Name, score, exception).ToMatchDetail());
}
private static IMimeKitUtils LoadMimeKitUtils()