using System.IO.Abstractions; namespace Recyclarr.TestLibrary; public static class MockFileSystemExtensions { public static void AddFileFromEmbeddedResource( this MockFileSystem fs, IFileInfo path, Type typeInAssembly, string embeddedResourcePath) { fs.AddFileFromEmbeddedResource(path.FullName, typeInAssembly, embeddedResourcePath); } public static void AddFileFromEmbeddedResource( this MockFileSystem fs, string path, Type typeInAssembly, string embeddedResourcePath) { embeddedResourcePath = embeddedResourcePath.Replace("/", "."); var resourcePath = $"{typeInAssembly.Namespace}.{embeddedResourcePath}"; fs.AddFileFromEmbeddedResource(path, typeInAssembly.Assembly, resourcePath); } public static void AddSameFileFromEmbeddedResource( this MockFileSystem fs, IFileInfo path, Type typeInAssembly, string resourceSubPath = "Data") { fs.AddFileFromEmbeddedResource(path, typeInAssembly, $"{resourceSubPath}.{path.Name}"); } public static void AddFilesFromEmbeddedNamespace( this MockFileSystem fs, IDirectoryInfo path, Type typeInAssembly, string embeddedResourcePath) { embeddedResourcePath = $"{typeInAssembly.Namespace}.{embeddedResourcePath.Replace("/", ".")}"; fs.AddFilesFromEmbeddedNamespace(path.FullName, typeInAssembly.Assembly, embeddedResourcePath); } }