Files
WireMock.Net/src/WireMock.Net.MimePart/Models/MimePartDataWrapper.cs
Stef Heyenrath b0076b4e81 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>
2025-07-12 09:54:18 +02:00

64 lines
1.9 KiB
C#

// Copyright © WireMock.Net
using System.Collections.Generic;
using System.IO;
using MimeKit;
using Stef.Validation;
using WireMock.Models.Mime;
namespace WireMock.Models;
/// <summary>
/// A wrapper class that implements the <see cref="IMimePartData" /> interface by wrapping an <see cref="IMimePart"/> interface.
/// </summary>
/// <remarks>
/// This class provides a simplified, read-only view of an <see cref="IMimePart"/>.
/// </remarks>
public class MimePartDataWrapper : MimeEntityDataWrapper, IMimePartData
{
private readonly IMimePart _part;
/// <summary>
/// Initializes a new instance of the <see cref="MimePartDataWrapper"/> class.
/// </summary>
/// <param name="part">The MIME part to wrap.</param>
/// <exception cref="System.ArgumentNullException">
/// <paramref name="part"/> is <see langword="null"/>.
/// </exception>
public MimePartDataWrapper(IMimePart part) : base(part)
{
_part = Guard.NotNull(part);
}
/// <inheritdoc/>
public string ContentDescription => _part.ContentDescription;
/// <inheritdoc/>
public int? ContentDuration => _part.ContentDuration;
/// <inheritdoc/>
public string ContentMd5 => _part.ContentMd5;
/// <inheritdoc/>
public string ContentTransferEncoding => _part.ContentTransferEncoding.ToString();
/// <inheritdoc/>
public string FileName => _part.FileName;
/// <inheritdoc/>
public IDictionary<string, object?> Content => new Dictionary<string, object?>()
{
{ nameof(MimePart.Content.Encoding), _part.Content.Encoding },
{ nameof(MimePart.Content.NewLineFormat), _part.Content.NewLineFormat },
{ nameof(MimePart.Content.Stream), _part.Content.Stream }
};
/// <inheritdoc/>
public Stream Open() => _part.Content.Open();
/// <inheritdoc/>
public override string ToString()
{
return _part.ToString()!;
}
}