Implement IMimeMessageData (#1326)

* Implement IMimeMessageData

* 1

* Update src/WireMock.Net.MimePart/Util/MimeKitUtils.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* v1

* v2

* e

* ?

* fix

* if (Array.TrueForAll(_funcs, func => func(value).IsPerfect()))

* Update src/WireMock.Net.Shared/Util/IMimeKitUtils.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/WireMock.Net.Minimal/Matchers/Request/RequestMessageMultiPartMatcher.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/WireMock.Net.MimePart/Models/MimeEntityDataWrapper.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Models.Mime.IMimeMessageData? BodyAsMimeMessage { get; }

* Update src/WireMock.Net.MimePart/Util/MimeKitUtils.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/WireMock.Net.MimePart/Models/MimePartDataWrapper.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/WireMock.Net.MimePart/Models/MimeMessageDataWrapper.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/WireMock.Net.Shared/Util/IMimeKitUtils.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* .

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Stef Heyenrath
2025-07-12 09:54:18 +02:00
committed by GitHub
parent 6c61f87ef3
commit b0076b4e81
18 changed files with 851 additions and 49 deletions

View File

@@ -1,5 +1,7 @@
// Copyright © WireMock.Net
using WireMock.Models.Mime;
namespace WireMock.Matchers;
/// <summary>
@@ -33,5 +35,5 @@ public interface IMimePartMatcher : IMatcher
/// </summary>
/// <param name="value">The MimePart.</param>
/// <returns>A value between 0.0 - 1.0 of the similarity.</returns>
public MatchResult IsMatch(object value);
public MatchResult IsMatch(IMimePartData value);
}

View File

@@ -1,8 +1,8 @@
// Copyright © WireMock.Net
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using WireMock.Models.Mime;
namespace WireMock.Util;
@@ -12,24 +12,16 @@ namespace WireMock.Util;
public interface IMimeKitUtils
{
/// <summary>
/// Loads the MimeKit.MimeMessage from the stream.
/// Loads the <see cref="IMimeMessageData"/> from the stream.
/// </summary>
/// <param name="stream">The stream</param>
/// <returns>MimeKit.MimeMessage</returns>
object LoadFromStream(Stream stream);
IMimeMessageData LoadFromStream(Stream stream);
/// <summary>
/// Tries to get the MimeKit.MimeMessage from the request message.
/// Tries to get the <see cref="IMimeMessageData"/> from the request message.
/// </summary>
/// <param name="requestMessage">The request message.</param>
/// <param name="mimeMessage">The MimeKit.MimeMessage</param>
/// <param name="mimeMessageData">A class MimeMessageDataWrapper which wraps a MimeKit.MimeMessage.</param>
/// <returns><c>true</c> when parsed correctly, else <c>false</c></returns>
bool TryGetMimeMessage(IRequestMessage requestMessage, [NotNullWhen(true)] out object? mimeMessage);
/// <summary>
/// Gets the body parts from the MimeKit.MimeMessage.
/// </summary>
/// <param name="mimeMessage">The MimeKit.MimeMessage.</param>
/// <returns>A list of MimeParts.</returns>
IReadOnlyList<object> GetBodyParts(object mimeMessage);
bool TryGetMimeMessage(IRequestMessage requestMessage, [NotNullWhen(true)] out IMimeMessageData? mimeMessageData);
}