mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-26 03:11:56 +01:00
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:
@@ -9,6 +9,8 @@ using System.Text;
|
||||
using MimeKit;
|
||||
using Stef.Validation;
|
||||
using WireMock.Http;
|
||||
using WireMock.Models;
|
||||
using WireMock.Models.Mime;
|
||||
using WireMock.Types;
|
||||
|
||||
namespace WireMock.Util;
|
||||
@@ -16,13 +18,13 @@ namespace WireMock.Util;
|
||||
internal class MimeKitUtils : IMimeKitUtils
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public object LoadFromStream(Stream stream)
|
||||
public IMimeMessageData LoadFromStream(Stream stream)
|
||||
{
|
||||
return MimeMessage.Load(Guard.NotNull(stream));
|
||||
return new MimeMessageDataWrapper(MimeMessage.Load(Guard.NotNull(stream)));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public bool TryGetMimeMessage(IRequestMessage requestMessage, [NotNullWhen(true)] out object? mimeMessage)
|
||||
public bool TryGetMimeMessage(IRequestMessage requestMessage, [NotNullWhen(true)] out IMimeMessageData? mimeMessageData)
|
||||
{
|
||||
Guard.NotNull(requestMessage);
|
||||
|
||||
@@ -44,26 +46,14 @@ internal class MimeKitUtils : IMimeKitUtils
|
||||
|
||||
var fixedBytes = FixBytes(bytes, contentTypeHeader[0]);
|
||||
|
||||
mimeMessage = LoadFromStream(new MemoryStream(fixedBytes));
|
||||
mimeMessageData = LoadFromStream(new MemoryStream(fixedBytes));
|
||||
return true;
|
||||
}
|
||||
|
||||
mimeMessage = null;
|
||||
mimeMessageData = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public IReadOnlyList<object> GetBodyParts(object mimeMessage)
|
||||
{
|
||||
if (mimeMessage is not MimeMessage mm)
|
||||
{
|
||||
throw new ArgumentException($"The mimeMessage must be of type {nameof(MimeMessage)}", nameof(mimeMessage));
|
||||
}
|
||||
|
||||
return mm.BodyParts
|
||||
.OfType<MimePart>()
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
private static bool StartsWithMultiPart(WireMockList<string> contentTypeHeader)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user