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