using System.Reflection;

namespace AsbCloudWebApi.IntegrationTests;

internal static class AssemblyExtensions
{
   internal static Stream GetFileCopyStream(this Assembly assembly, string templateName)
   {
      var resourceName = assembly
         .GetManifestResourceNames()
         .FirstOrDefault(n => n.EndsWith(templateName));

      if (string.IsNullOrWhiteSpace(resourceName))
         throw new ArgumentNullException(nameof(resourceName));

      using var stream = Assembly.GetExecutingAssembly()
         .GetManifestResourceStream(resourceName);

      var memoryStream = new MemoryStream();
      stream?.CopyTo(memoryStream);
      memoryStream.Position = 0;

      return memoryStream;
   }
}